You are on page 1of 164

Arch Linux

Die Grundinstallation und mehr


Farid Msbahi

Arch Linux: Die Grundinstallation und mehr


Farid Msbahi Version 1.0 Verffentlicht 03.07.2011 Copyright 2008, 2009, 2010, 2011 Farid Msbahi Zusammenfassung Eine Sammlung eigener Notizen rund um Arch Linux und anderen Themen.
Das Buch ist unter der Creative Commons-Lizenz BY-NC-ND [http://creativecommons.org/licenses/by-nc-nd/3.0/de/] gestellt, davon ausgenommen sind die Codebeispiele, die unter der Creative Commons-Lizenz BY [http://creativecommons.org/licenses/by/3.0/de/] stehen.

Widmung
Fr meine Frau Andre.

Inhaltsverzeichnis
Vorwort ............................................................................................................ vii I. Einleitung ....................................................................................................... 1 1. Der Internetzugang ................................................................................ 3 2. Fr welche Rechnertypen ist Arch Linux geeignet? .................................. 4 3. Fingerarbeit ........................................................................................... 5 4. Aufbau .................................................................................................. 6 5. Dialog ................................................................................................... 7 6. Eltern haften fr Ihre Kinder .................................................................... 8 II. Arch Linux ..................................................................................................... 9 7. Die Grundinstallation von Arch Linux ..................................................... 11 7.1. Das Installationsmedium ............................................................ 11 7.2. Der erste Bootvorgang ............................................................... 11 7.3. Das Setup ................................................................................. 13 7.3.1. Willkommen ................................................................... 13 7.3.2. Das Setup-Hauptmen ................................................... 14 7.4. Ergnzungen zur Grundinstallation von Arch Linux ...................... 33 7.4.1. Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk) 33 7.4.2. Der Einsatz von grub2 .................................................... 36 8. Die Arch Linux-Administration ............................................................... 39 8.1. Die deutsche Lokalisierung mit UTF-8 Untersttzung ................... 39 8.2. Die Kernel-Module .................................................................... 41 8.3. Das Netzwerk ........................................................................... 42 8.3.1. Ein einfaches Netzwerkkonzept ....................................... 42 8.3.2. Die Netzwerkkonfiguration .............................................. 43 8.4. Die Dienste ............................................................................... 47 8.5. Die Benutzerverwaltung ............................................................. 48 8.6. Der Paketverwalter Pacman ....................................................... 49 8.6.1. Pacman konfigurieren ..................................................... 50 8.6.2. Mit Pacman arbeiten ....................................................... 53 8.7. Der Bootloader grub2 ................................................................ 55 8.7.1. Voraussetzungen fr grub2 ............................................. 55 8.7.2. Die Installation von grub2 ................................................ 55 8.7.3. Die Konfiguration von grub2 ............................................ 56 8.8. Die Systemzeit .......................................................................... 64 8.8.1. Setzen der Uhrzeit mit dem Befehl date ........................... 64 8.8.2. Setzen der Uhrzeit mit dem Befehl ntpdate ....................... 65 8.9. Der Umgang mit Festplatten ...................................................... 65 8.9.1. Festplatten mit GUID Partitionstabellen (GPT) .................. 65 8.9.2. Der Einsatz von Dateisystemen ....................................... 69 8.9.3. Das Arbeiten mit UUIDs .................................................. 70 III. Anwendungsbereiche .................................................................................. 73 9. Der eigene Arbeitsplatzrechner ............................................................. 75 9.1. X.org ........................................................................................ 75 9.1.1. Die Installation von X.org ................................................ 75 9.1.2. Die Konfiguration der X.org-Umgebung ............................ 78 9.1.3. Stapellauf ...................................................................... 81 9.2. Die Desktop-Umgebung ............................................................. 82 9.2.1. Die Gnome-Installation ................................................... 82 9.2.2. Die KDE-Installation ....................................................... 83 9.2.3. Die Xfce-Installation ........................................................ 84 9.3. Starten der Desktop-Umgebungen ............................................. 85 9.3.1. startx ............................................................................. 86 9.3.2. Login-Manager ............................................................... 87 10. Ein einfacher Dateiserver .................................................................... 91 10.1. Die Serverausstattung ............................................................. 91 10.1.1. Eine Festplatte im System ............................................. 91 ii

Arch Linux

10.1.2. Mehrere Festplatten im System ..................................... 92 10.2. Die notwendigen und hilfreichen Softwarepakete ....................... 95 IV. Dienstprogramme ....................................................................................... 97 11. Iptables ............................................................................................. 98 11.1. Die Installation von Iptables ..................................................... 99 11.2. Firewall fr einen Arbeitsplatzrechner ....................................... 99 11.3. Firewall fr einen Server .........................................................101 11.4. Kurze Zusammenfassung .......................................................103 11.5. Regeln speichern und prfen ..................................................104 11.5.1. Dateiarbeit ..................................................................104 11.5.2. Skript ausfhren ..........................................................104 11.5.3. Ketten prfen ..............................................................105 11.5.4. Finale Arbeit ................................................................105 11.6. Logbuch fhren ......................................................................106 11.6.1. Anpassen der Iptables-Konfiguration fr Ulogd ..............106 11.7. Iptables als Dienst ..................................................................108 12. Samba .............................................................................................109 12.1. Ein Beispiel - Die Agentur "Alpenglas" .....................................109 12.2. Die Installation von Samba ......................................................109 12.3. Die Konfiguration von Samba ..................................................110 12.4. Die Vorbereitungen .................................................................114 12.5. Die Samba-Benutzerverwaltung ..............................................118 12.6. Der Samba-Stapellauf ............................................................118 12.7. Der Zugriff auf die Samba-Freigaben .......................................119 12.7.1. Unter Apple Mac OS X .................................................119 12.7.2. Unter Linux (Gnome) ...................................................121 12.7.3. Unter Linux (Shell) .......................................................123 12.7.4. Unter Windows ............................................................127 12.8. Der Nachschliff .......................................................................128 13. SSH (Secure-Shell) ...........................................................................129 13.1. Die Installation von SSH .........................................................129 13.2. Die Vorbereitungen auf dem Zielrechner (Server) .....................130 13.2.1. Die Konfiguration des SSH-Dienstes .............................130 13.2.2. Den Systemzugriff erlauben .........................................132 13.2.3. Vorbereiten einer Firewall ............................................133 13.2.4. Der richtige Benutzer ...................................................133 13.3. Die Vorbereitungen auf dem Arbeitsplatzrechner (Client) ..........133 13.3.1. Die Konfiguration des SSH-Clients ................................133 13.3.2. Der Schlsselbund ......................................................134 13.4. Zusammenfassung und Ergnzungen ......................................135 13.4.1. Kopieren des ffentlichen Schlssels per Datentrger (USB-Speicherstick) ................................................................136 13.4.2. Kopieren des ffentlichen Schlssels per Secure Copy (SCP) ...............................................................................................137 13.4.3. Die Eigentumsverhltnisse ...........................................139 13.5. Der Verbindungsaufbau ..........................................................139 14. Ulogd ...............................................................................................141 14.1. Die Installation von Ulogd .......................................................141 14.2. Ulogd und Iptables .................................................................141 14.3. Ulogd als Dienst .....................................................................141 V. Programme und Werkzeuge ........................................................................142 15. Der Editor Nano ................................................................................144 A. Kurzreferenz - Linux-Befehle .......................................................................145 A.1. Befehle ...........................................................................................145 B. Kurzreferenz - Berechtigungen bei Verzeichnissen und Dateien ....................148 B.1. Der oktale Weg ................................................................................148 B.1.1. Von Objekten, Kategorien und Attributen ................................148 B.1.2. Weitere Steuer-Attribute ........................................................149 B.1.3. ber Dateien ........................................................................150 B.1.4. Die Werkzeuge .....................................................................150 Literaturverzeichnis .........................................................................................152 iii

Arch Linux

Stichwortverzeichnis .......................................................................................153

iv

Abbildungsverzeichnis
7.1. Bootvorgang ............................................................................................. 12 7.2. Erste Eingabeaufforderung ........................................................................ 12 7.3. Willkommen .............................................................................................. 14 7.4. Hauptmen ............................................................................................... 14 7.5. Installationsquelle ...................................................................................... 15 7.6. Netz-Installation ........................................................................................ 16 7.7. TCP/IP-Adressen ...................................................................................... 17 7.8. Server ...................................................................................................... 18 7.9. Partitionsbeispiel ....................................................................................... 20 7.10. Richtige Festplatte auswhlen .................................................................. 21 7.11. cfdisk ...................................................................................................... 23 7.12. Zugriffsmethode ...................................................................................... 24 7.13. Dateisystem und Einhngepunkt 1 ........................................................... 25 7.14. Dateisystem und Einhngepunkt 2 ........................................................... 25 7.15. Dateisystem und Einhngepunkt 3 ........................................................... 26 7.16. Dateisystem und Einhngepunkt 4 ........................................................... 26 7.17. Software-Pakete auswhlen ..................................................................... 27 7.18. Auswahl der Softwarepakete .................................................................... 28 7.19. System-Konfiguration .............................................................................. 29 7.20. Bootloader Grub ...................................................................................... 30 7.21. Grub-Konfiguration .................................................................................. 31 7.22. Grub und der MBR .................................................................................. 32 7.23. Partitionsbeispiel fr grub2 ....................................................................... 34 8.1. Netzwerkkonzept ....................................................................................... 42 8.2. Partitionsschema mit einer BIOS-Boot-Partition ........................................... 57 8.3. grub2 Boot-Men mit Hintergrundbild ......................................................... 61 8.4. gdisk - Kommandoliste .............................................................................. 67 8.5. gdisk - Partitionen ..................................................................................... 69 8.6. UUIDs von Partitionen ............................................................................... 71 9.1. Window-Manager twm ............................................................................... 81 9.2. Gnome ..................................................................................................... 82 9.3. KDE ......................................................................................................... 83 9.4. Xfce ......................................................................................................... 84 10.1. Serverpartitions-Beispiel 1 ....................................................................... 91 10.2. Serverpartitions-Beispiel 2 ....................................................................... 92 11.1. iptables ................................................................................................... 98 11.2. Firewall-Skriptdatei .................................................................................104 11.3. Iptables Ausgabe ...................................................................................105 12.1. Samba-Symbiose ...................................................................................114 12.2. List (/mnt) ..............................................................................................115 12.3. List (/mnt/fbase) .....................................................................................116 12.4. Mac OS X - Finder ..................................................................................119 12.5. Mac OS X - Mit dem Server verbinden .....................................................120 12.6. Gnome - Dialog 1 ...................................................................................121 12.7. Gnome - Dialog 2 ...................................................................................122 12.8. Shell - Mount-Vorbereitung .....................................................................123 12.9. Shell - Mount-Ergebnis ...........................................................................125 12.10. Gesetzte Attribute (Beispiel) ..................................................................125 13.1. dmesg Ausgabe .....................................................................................136 B.1. Berechtigung - Verzeichnis/Datei ..............................................................148 B.2. Berechtigungsdarstellung .........................................................................150

Tabellenverzeichnis
7.1. bersichtstabelle - Dateisysteme und Einhngepunkte ................................ 27 7.2. bersichtstabelle - Partition, Einhngepunkte und Dateisysteme .................. 35 8.1. Gruppen-bersicht .................................................................................... 48 8.2. Kleine Parameter-bersicht zu Pacman ...................................................... 53 8.3. Grub2-Farbtabelle ..................................................................................... 59 8.4. Grub2-Grafikformate .................................................................................. 60 8.5. Dateisystem-bersicht ............................................................................... 70 10.1. fstab Aufbau ............................................................................................ 94 12.1. Samba-Freigaben-Parameter ..................................................................113 12.2. Kleine pdbedit-bersicht .........................................................................118 12.3. Mount - Parameter .................................................................................124 13.1. SSH-Verzeichnis ....................................................................................135

vi

Vorwort
Warum ich gerade Arch Linux benutze ist einfach zu sagen. Es war Zufall. Ich suchte einfach eine Linux-Distribution, die fr meine Belange eine Installation zur Verfgung stellt, wo ich von Vornherein Einflu habe. Ein Linux von grundauf aufbauen zu knnen, allerdings aus Zeitgrnden nicht gleich von ganz unten starten zu mssen. Keine ballastbehafteten vorinstallierten Prozesse, keine vorinstallierte grafische Oberflche. Einfach ein schnelles Basissystem, welches ich selbst erweitern kann. Und einfach sollte es sein. Der hier vorliegende Inhalt zu Arch Linux, also zur Grundinstallation und weiteren Mglichkeiten entsammte aus einer Schulungs-Dokumentation von mir, die nun quasi ein Teil von diesem Buch geworden ist. Viele kleine ergnzende Notizen habe ich im Laufe der Jahre hier einfach mal zusammen getragen, um den Einstieg zu erleichtern aber auch den einen oder anderen Anwendungsfall zu beschreiben. Und damals htte ich mir eine solche Dokumentation gewnscht. Also viel Spa ...

vii

Teil I. Einleitung

Inhaltsverzeichnis
1. Der Internetzugang ........................................................................................ 3 2. Fr welche Rechnertypen ist Arch Linux geeignet? .......................................... 4 3. Fingerarbeit ................................................................................................... 5 4. Aufbau .......................................................................................................... 6 5. Dialog ........................................................................................................... 7 6. Eltern haften fr Ihre Kinder ............................................................................ 8

Kapitel 1. Der Internetzugang


Im Zeitalter der Kommunikation ist ein Internetzugang kaum noch weg zu denken. Auch fr die beschriebenen Beispiele werden oftmals ganze Softwarepakete herunter geladen. In weiteren Kapiteln wird kurz der Netzwerkbetrieb beschrieben, bei dem sich mehrere Personen zu Hause oder in einem kleinen Bro einen Internetzugang teilen. Daher kann ich eine schnelle Anbindung zum Internet (z.B. per DSL oder Kabel) nur empfehlen. Achten Sie bitte auch darauf, dass Sie bei groen Paketen auch mal leicht einen Volumentarif sprengen knnten, denn fr die eine oder andere Vorgehensweise werden gleich mehrere Megabytes verschlungen. Planen Sie daher auch ein, wieviele Personen den Zugang zum Internet nutzen und wie gro das Volumen sein knnte. Eine Flatrate ist dann oftmals sehr zu empfehlen.

Kapitel 2. Fr welche Rechnertypen ist Arch Linux geeignet?


Arch Linux ist fr i686 CPUs optimiert, also etwa erst lauffhig ab Pentium Pro von Intel und entsprechenden Alternativen. Das bedeutet wiederum einen Geschwindigkeitsvorteil gegenber gngigen Linux-Distributionen, dessen Softwarepakete auch fr ltere CPU-Generationen kompiliert wurden. Aktuell werden also Installations-CDs fr i686 und x86 mit 64 Bit Untersttzung zur Verfgung gestellt.

Kapitel 3. Fingerarbeit
Fr die Installation gibt es eine Installationsroutine. Fr weitere Konfigurationen am System selbst und fr viele Softwarepakete gibt es keine Konfigurationsprogramme. Hier muss dann der klassische Weg genommen werden: Mit einem Editor die entsprechende Konfigurationsdatei zu ffnen, um bestimmte Parameter zu setzen. Man-Pages, die zu Programmen gehrende Hilfe in Textform, geben das notwendige Wissen weiter. Dies soll keine Abschreckung sein, sondern eine Ermutigung. Denn ich selbst habe auf diesen Weg viel gelernt. Also nur Mut.

Kapitel 4. Aufbau
Der Aufbau dieses Buches ist Modular gestaltet, um schnell das Eine oder Andere zum Nachschlagen wieder zu finden. Das Auflisten oder Zitieren aller Parameter zu bestimmten Programmen ist nicht mein Ziel. Eher verfolge ich einen praktischen Bezug, um die notwendigen EInstellungen besser zu verstehen. Ich habe mal irgendo wo den Satz gehrt: "Im Wort Begreifen steckt das Greifen", also einen praktischen Bezug zu etwas haben, um das Theoretische zu verstehen. Bedingt durch eine feste Seitenbreite dieses Buches in Papierform, sind mache Konfigurationszeilen mit einem Zeilenumbruch gekennzeichnet. Erscheint also am Ende einer Zeile ein "==>" so muss in der Praxis die Folge-Zeile einfach dahinter gesetzt werden. Beispiel: Aus: Hallo Welt, das ==> ==>ist ein Beispiel. Wird: Hallo Welt, das ist ein Beispiel.

Kapitel 5. Dialog
Auch ich bin nicht vor Fehlern gefeit. Einige Lsungen knnen zu Diskussionen fhren, warum gerade dieser oder jener Weg favorisiert wurde. Oder ich habe weitere Fragen bei Ihnen angestoen. Tragen Sie mir einfach Ihr Anliegen per Mail (mes/t/schreibdichte/punkt/de) zu. Haben Sie bitte Verstndnis, dass ich Fragen auerhalb dieser Zusammenstellung nicht beantworten kann. Hier dient das Internet als groe Hilfestellung in Form von Foren (http://www.archlinux.de oder http://www.archlinux.org), Newsgroups und dergleichen.

Kapitel 6. Eltern haften fr Ihre Kinder


Wer hat nicht schon solch eine Warnung vor Baustellen gesehen? Ich mchte dieses Beispiel als Aufhnger dafr benutzen, dass smtliche Projekte und Bespiele zwar von mir getestet sind, allerdings zum Teil Einfluss auf das System nehmen. Auf die Gefahren und Folgen weise ich hiermit ausdrcklich hin. Und daher gilt:

Warnung
Alles was Sie umsetzen, geschieht auf eigene Gefahr !

Teil II. Arch Linux

Inhaltsverzeichnis
7. Die Grundinstallation von Arch Linux ............................................................. 11 7.1. Das Installationsmedium ............................................................ 11 7.2. Der erste Bootvorgang ............................................................... 11 7.3. Das Setup ................................................................................. 13 7.3.1. Willkommen ........................................................................... 13 7.3.2. Das Setup-Hauptmen ........................................................... 14 7.4. Ergnzungen zur Grundinstallation von Arch Linux ...................... 33 7.4.1. Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk) ....... 33 7.4.2. Der Einsatz von grub2 ............................................................ 36 8. Die Arch Linux-Administration ....................................................................... 39 8.1. Die deutsche Lokalisierung mit UTF-8 Untersttzung ................... 39 8.2. Die Kernel-Module .................................................................... 41 8.3. Das Netzwerk ........................................................................... 42 8.3.1. Ein einfaches Netzwerkkonzept ............................................... 42 8.3.2. Die Netzwerkkonfiguration ...................................................... 43 8.4. Die Dienste ............................................................................... 47 8.5. Die Benutzerverwaltung ............................................................. 48 8.6. Der Paketverwalter Pacman ....................................................... 49 8.6.1. Pacman konfigurieren ............................................................. 50 8.6.2. Mit Pacman arbeiten ............................................................... 53 8.7. Der Bootloader grub2 ................................................................ 55 8.7.1. Voraussetzungen fr grub2 ..................................................... 55 8.7.2. Die Installation von grub2 ........................................................ 55 8.7.3. Die Konfiguration von grub2 .................................................... 56 8.8. Die Systemzeit .......................................................................... 64 8.8.1. Setzen der Uhrzeit mit dem Befehl date ................................... 64 8.8.2. Setzen der Uhrzeit mit dem Befehl ntpdate ............................... 65 8.9. Der Umgang mit Festplatten ...................................................... 65 8.9.1. Festplatten mit GUID Partitionstabellen (GPT) .......................... 65 8.9.2. Der Einsatz von Dateisystemen ............................................... 69 8.9.3. Das Arbeiten mit UUIDs .......................................................... 70

10

Kapitel 7. Die Grundinstallation von Arch Linux


Das Ziel ist eine komplette Neuinstallation des Systems unter Bercksichtigung der physischen Trennung von Betriebssystem, Anwendungsprogrammen sowie den persnlichen Daten. Also der Idealfall ohne das parallele Vorhandensein eines anderen Betriebssystems.

7.1. Das Installationsmedium


Aktuelle Installations-Medien knnen am schnellsten von http://www.archlinux.de oder http://www.archlinux.org als ISO-Image kostenlos herunter geladen werden. Dabei werden zwei Varianten fr die Rechnertypen mit 32 und 64 Bit angeboten, wobei die 32 Bit Version auch auf einem Rechnertyp mit 64 Bit installiert werden kann: Die Netinstall-Installation ist das kleinste Medium von wenigen Megabytes Gre. Hierbei wird das Installationgerst zur Verfgung gestellt. Alle weiteren Softwarepakete fr ein Grundsystem werden wrend der Installation ber das Internet herunter geladen. Die Core-Installation beinhaltet alle Basis-Softwarepakete, die also whrend der Installation nicht mehr herunter geladen werden mssen. Als ISO-Image entsprechend grer. Eine Netinstall-Installation ist aber auch mit dieser Variante mglich.

Anmerkung
Alle ISO-Images knnen mit einem beliebigen Brennprogramm unter Mac OS X, Linux oder Windows gebrannt werden. Zum Zeitpunkt dieser Beschreibung wurde die Version 2010.05 benutzt. Zustzlich wird die 32Bit- zusammen mit der 64 Bit-Version von Arch Linux, jeweils als Netinstall- und Core-Installation, als Dual-Medium angeboten. So hat man ein Installationsmedium fr beide Rechnerarchitekturen greifbar, das ISO-Image ist aber dafr am grten. Da hier die Installation mit Hilfe der Core-Installation (32 Bit) beschrieben wird, um auch ohne einer Internet-Verbindung Arch Linux installieren zu knnen, sollte mindestens dieses Installationsmedium fertig vor liegen.

7.2. Der erste Bootvorgang


Damit von CD gebootet werden kann, ist es notwendig, dass im BIOS des Rechners die Bootreihenfolge stimmt. Oftmals ist das CD/DVD-Laufwerk als Letztes in der Kette aufgelistet. Beim Versuch zu booten wird evtl. noch ein Altsystem von der Festplatte gestartet, anstatt jetzt direkt von der neuen CD zu booten. Bei einer neuen oder leeren Festplatte wird vom BIOS sowieso jedes erdenkliche Boot-Medium abgeklappert. Dennoch sollte, um den ersten geschilderten Fall zu umgehen, das CD/DVD-Laufwerk an erster Stelle im BIOS gesetzt werden. Nach erfolgreichem Bootvorgang sollte der folgende Startbildschirm erscheinen. 11

Die Grundinstallation von Arch Linux

Abbildung 7.1. Bootvorgang

An dieser Stelle stehen verschiedene Punkte fr den Installationsstart, Tools (z.B. ein Speichertest) und weitere Mglichkeiten zur Verfgung. Interessant ist hier der Erste, wobei Im Normalfall allerdings eine Besttigung mit der Enter-Taste ausreicht, damit der Vorgang mit "Boot Arch Linux" fortgesetzt wird. Am Ende der Prozedur mit Hardwareerkennung, Laden der entsprechenden Treibermodule u.s.w., sollte eine Aufforderung erscheinen, welcher Benutzer angemeldet werden soll. Fr eine Installation wird hier root eingegeben und mit Enter besttigt. Der ersten richtigen Eingabe eines Befehles steht nun nichts mehr im Weg.

Abbildung 7.2. Erste Eingabeaufforderung

12

Die Grundinstallation von Arch Linux

7.3. Das Setup


Damit die nchsten Eingaben etwas einfacher werden, sollte man vom amerikanischen zum deutschen Tastaturlayout wechseln. Dazu einfach das Programm Keyboardmanager, kurz km in der Eingabeaufforderung eingeben und mit Enter besttigen: km Der darauf folgende Dialog bezieht sich darauf, das entsprechende Tastaturlayout zu whlen. Fr ein deutsches Tastaturlayout wird i386/qwertz/de-latin1.map.gz mit den Pfeiltasten gewhlt und mit OK besttigt. Der nchste Dialog zur Auswahl eines Konsolenfonts kann mittels Skip bersprungen werden. Nun sollten smtliche Tastatureingaben, besonders das "z" und "y" richtig dargestellt werden. Das eigentliche Setup-Programm zum Installieren von Arch Linux wird ber die Eingabe von: /arch/setup gestartet.

7.3.1. Willkommen
Auch hier darf ein Willkommenbildschirm nicht fehlen. Und es werden gleich ein paar Hinweise mit geliefert. Ein kleiner aber wichtiger Hinweis von mir, es wird eine Installation beschrieben ohne eine Parallelanwesenheit wie z.B. von Windows. Im Prinzip wird die Festplatte gelscht, falls dies noch nicht der Fall ist.

Warnung
13

Die Grundinstallation von Arch Linux

Daher wenn notwendig hier die Installation abbrechen, um wichtige Daten vorher zu sichern.

Abbildung 7.3. Willkommen

Interessant ist die Information ber die Bildschirmausgabe. Verschiedene Ausgaben werden nicht nur im Installationsdialog gezeigt, sondern auf der Konsole Nr. 7 ausgegeben. Im Prinzip entgeht Ihnen in der Standardprozedur nichts, detaillierte Angaben sind dann ber die Tastaturkombination ALT+F7 erreichbar. Der Standardbildschirm ist wieder ber ALT+F1 vorhanden. Das Prinzip ist wohl erkannt. Die einzelnen Konsolen (im Standard VC1 bis VC6) sind durchnummeriert und mit der entsprechenden Tastaturkombination erreichbar. Das ist ein ganz hilfreicher Punkt, der das sptere Arbeiten mit der Shell untersttzt. Denn hierbei kann die Multitaskingfhigkeit von Linux besser genutzt werden. Wird z.B. in der ersten Konsole ein lngerer Prozess gestartet, kann in der Zweiten weiter gearbeitet werden.

7.3.2. Das Setup-Hauptmen


Das Hauptmen gibt eine strukturierte Installation in acht Hauptschritten vor.

Abbildung 7.4. Hauptmen

14

Die Grundinstallation von Arch Linux

7.3.2.1. Die Installationsquelle (1)


Es gibt zwei Wege, die zur Wahl stehen. Der eine Weg geht davon aus, dass smtliche Software-Pakete vom Datentrger stammen (CD-Installation). Der Andere, dass alle notwendigen Pakete aus dem Internet zum Zeitpunkt der Installtion selbst herunter geladen werden (Netz-Installation). Beides hat Vor- und Nachteile und die Wahl selbst wird vermutlich durch die eigene aktuelle Situation bestimmt sein. Vermutlich sofort erkennbar ist, dass mit der Netz-Installation aktuelle Software-Pakete genutzt werden, als bei der CD-Installation. Da das Alter der Pakete vom Verffentlichungszeitpunkt der Installations-Images abhngt. Ein weiterer Vorteil ist, dass bestimmte Werkzeuge, die wrend der Installations nicht zur Verfgung stehen, aus dem Internet nachgereicht werden knnen. Hat man allerdings keinen Internet-Zugang, kommt man an der CD-Variante wohl nicht vorbei. Eine komplette Arch Linux Installation selbst ist aber mit wenigen Handgriffen auf den aktuellen Stand gebracht, auch wenn erst spter der Internet-Zugang zur Verfgung steht. Dies ist nach einer erfolgreichen Grundinstallation von Arch Linux ein Thema und wird spter mit bercksichtigt (siehe Kapitel: Die Arch Linux-Administration). Wurde also der Punkt der Installtionsquelle gewhlt, hat man also die Wahl.

Abbildung 7.5. Installationsquelle

15

Die Grundinstallation von Arch Linux

7.3.2.1.1. Die CD als Installationsquelle


Dieser Punkt ist schnell erledigt und bedarf keiner weiteren Einstellung. Wurde die Wahl getroffen, wird sofort nach einer Besttigung des Hinweises in das Hauptmen zurck gesprungen.

7.3.2.1.2. Das Internet als Installationsquelle


An dieser Stelle wird schon etwas von der Administration von Arch Linux vorweg genommen, da hier ein kompletter Internet-Zugang Voraussetzung ist. Die folgenden Schritte beziehen sich daher also auf Inhalte, wie sie im Netzwerk-Kapitel insbesondere zum Konzept (siehe Kapitel: Ein einfaches Netzwerkkonzept) beschrieben sind. Liegen alle Daten (einzusetzende TCP/IP-Adressen fr das eigene Netzwerk) vor, beginnt der Einstieg mit einem Hinweis zur manuellen Konfiguration der entsprechenden Netzwerkkarte. Wurde dieser Hinweis mit OK quittiert, erscheint ein Untermen mit den Punkten laut Abbildung:

Abbildung 7.6. Netz-Installation

16

Die Grundinstallation von Arch Linux

Die eigentliche Konfiguration beschreibe ich in der vorgegebenen Reihenfolge: 1. Konfigurieren des eigenen Netzwerkes. Nach Auswahl des Menpunktes wird das erkannte Netzwerkgert (in der Regel eth0) fr ein kabelgebundenes Netzwerk angezeigt. Wurde diese Meldung mit OK besttigt, lautet die Wahl DHCP einzusetzen (fr die automatische Vergabe von TCP/IP-Adressen von einem entsprechenden Server im eigenen Netzwerk) oder auch nicht. Ich beschreibe den Weg bei der Nutzung von festen Adressen, wie es in der Abbildung zum Netzwerkkonzept (siehe Kapitel: Ein einfaches Netzwerkkonzept) dargestellt wird. Entsprechend wird der Einsatz eines DHCP-Servers verneint. Daraus resultierend wird dirkt in den Folgedialogen nach der eigenen TCP/IP-Adresse des Rechners, der Netmask, der Broadcast-Adresse, die Adresse des Gateways und des Domain-Name-Servers (DNS) abgefragt. Proxy-Server werden hier im Konzept nicht genutzt und sollten natrlich bei Bedarf hier mit eingetragen werden. Als Zusammenfassung werden alle Adressen erneut angezeigt, um ggf. Fehler zu erkennen.

Abbildung 7.7. TCP/IP-Adressen

17

Die Grundinstallation von Arch Linux

2. Wahl des Servers mit den Software-Paketen. An dieser Stelle wird der Server ausgewhlt, der smtliche Softwarepakete fr Arch Linux bereit stellt. Es sollte ein Server sein, der zumindest aus dem gleichen Land stammt, um ein wenig die Last aller Arch Linux Installateure zu verteilen.

Abbildung 7.8. Server

3. Rcksprung zum Hauptmen. Sind alle Einstellungen gettigt, kann nun mit dem nchsten Schritt im Hauptmen begonnen werden.

7.3.2.2. Einstellen der Uhr (2)


Zu diesem Zeitpunkt wird die Systemzeit eingestellt. Im Dialog erfolgt dies in drei Schritten. 18

Die Grundinstallation von Arch Linux

Zuerst ber die Region und Zeitzone (1), z.B. mit Europa und Berlin fr eine deutsche Umgebung. Danach das eigentliche Einstellen der Uhrzeit zusammen mit dem Datum (2). Bedingt durch die alleinige Vorherschaft von Linux (ohne Windows) als Installationsziel, wird als Uhrzeit die UTC (Universal Time, coordinated) ausgewhlt. Entweder sieht die vorgegebene Einstellung gut aus, oder nicht. Im Falle einer Nacharbeit kann dies ber einen Zeitserver (NTP) oder manuell erfolgen. Da sich die vorherige Auswahl der Installations-Quelle auf eine Installations-CD bezog, werden keine Netzwerkparameter abgefragt, die einen Zugang zum Internet ermglichen und somit auch nicht auf einen Zeitserver. Also bleibt in diesem Fall nur die manuelle Bearbeitung brig. Abhngigkeiten zwischen Zentraler-Europischen-Sommer-Zeit (CEST), Zentraler-Europischen-Zeit (CET, Winterzeit) und der koordinierten Weltzeit (UTC) werden im Kapitel: Die Systemzeit) weiter erlutert. Hier im Einstellungsdialog wird die aktuelle lokale Zeit eingetragen.

7.3.2.3. Die Festplattenvorbereitung (3)


Ein wichtiger Schritt, denn hier wird die Festplatte nicht nur in Partitionen aufgeteilt, sondern zum Verwalten der eigentlichen Daten im entsprechenden Dateisystem formatiert. Der Dialog zeigt insgesamt vier Einstellungsmglichkeiten an: 1. Automatische Vorbereitung der Festplatte. 2. Festplatte partitionieren (manuell). 3. Filesystem und Mountpoints festlegen (manuell). 4. Zurcksetzen der letzten Festplatteneinstellungen. In unserem Fall wrde ich das Zepter nicht aus der Hand geben wollen. Denn wir mchten unter ganz bestimmten Voraussetzungen die Partitionen anlegen. Daher kommt der Menpunkt eins nicht in Frage. Also betreten wir den nchsten Dialog ber den Punkt zwei: Festplatte partitionieren. In der nchsten bersicht werden alle im System vorhandenen Festplatten und deren Kapazitt angezeigt.

Anmerkung
Festplatten werden unter Linux mit den Gertenamen sda fr die Erste, sdb fr die Zweite, sdc fr die Dritte u.s.w. eingebunden, und dies unabhngig des Controllersystems. Analog bei optischen Laufwerken mit den Gertenamen sra z.B. fr ein DVD-ROM-Laufwerk. Grundstzlich kann Linux dank des spter beschriebenen Bootloaders Grub von einer beliebigen Festplatte gebootet werden. Im Normalfall wird hier die erste Festplatte im System fr das Betriebssystem gewhlt. Fr eine Partitionierung sollte dann vorweg eine Planung gemacht werden. Dazu ein Beispiel: Laut des beschriebenen Zieles, ergibt sich folgende Lsung: Definiert werden insgesamt vier Partitionen. Da maximal vier primre Partitonen pro System erlaubt sind, wird dies auch genau ausgeschpft. Die ersten drei Partitionen werden nach einigermaen festen Gren fest gelegt. Die Restgre der vierten Partition ist laut Partitionsbeispiel nur noch von der Gesamtkapazitt der Festplatte abhngig. 1. Auf der ersten Partition soll der Linuxkern zusammen mit dem Bootloader-Teil abgelegt 19

Die Grundinstallation von Arch Linux

werden. Beide sind nicht sehr gro, daher kann fr diese Partition eine Gre von ca. 100 MB reserviert werden (/boot). 2. Die zweite Partition beinhaltet spter das gesamte System einschlielich der Anwendungsprogramme. Die Erfahrung hat gezeigt, dass fr ein Arbeitsplatzsystem durchschnittlich 10-20 GB ausreichen. Wem das zu wenig erscheint, der kann nach eigenem Ermessen die Partion definieren (/, Rootverzeichnis oder auch Wurzelverzeichnis genannt). 3. Der dritte Bereich ist fr die Swap-Partition gedacht. Hierbei handelt es sich um eine Erweiterungsmglichkeit fr das System, Daten bei Hauptspeicherengpssen entsprechend auszulagern. Als Richtgre hat sich das Doppelte des Hauptspeichers etabliert. Sollten also 512 MB RAM als Hauptspeicher im System vorhanden sein, so kann die SWAP-Partition auf ein Gigabyte gesetzt werden. Maximal zwei Gigabyte reichen im Normalfall aus. Sollte das System wirklich in die Situation kommen, die Swap-Partition in solch einer Gre (2 GB) komplett zu nutzen, gibt es eher einen Flaschenhals auf ganz anderer Seite (zu wenig Hauptspeicher im Verhltnis der zu nutzenden Programme). Das System verhlt sich dann sehr langsam. 4. Die vierte und letzte Partition ist fr private Daten zustndig (/home). Im Home-Verzeichnis werden die spteren Benutzer-Verzeichnisse angelegt, in denen separiert alle benutzer- und programmspezifischen Daten abgelegt sind. Die Gre entspricht dem was brig geblieben ist. Diese Aufteilung hat den Sinn, wichtige Komponenten von einander zu trennen. Besonders an den eigenen Daten ist es vielleicht besser zu erkennen. Denn wrde alles in einer Partition liegen, wren bei einem Systemfehler die eigenen Daten evtl. nicht mehr erreichbar. So bleibt bei einem Defekt oder Systemwechsel die Datenpartition (/home) unberhrt. Hat die gesamte Festplatte einen physischen Defekt, stellt die weltbeste Partitionierung auch keine Hilfe mehr dar. Da knnte eine zweite oder dritte Festplatte im System diesen Umstand aufheben. Bei Linux/Unix gibt es keine Laufwerksbuchstaben, wie unter Windows. Die spter erstellten Partitionen werden als Verzeichnis sichtbar (bis auf die Swap-Partition, diese wird direkt vom System angesprochen) in den Verzeichnisbaum eingehngt. Dabei ergibt sich eine Struktur mit den fr uns wichtigen Verzeichnissen, denen die Partitionen zugewiesen werden.

Abbildung 7.9. Partitionsbeispiel

20

Die Grundinstallation von Arch Linux

Anmerkung
Es ist Hilfreich sich eine Notiz zu machen, wie in der Abbildung zu sehen. So kann mit Bleistift und Papier im Vorfeld eine Partitionierung und deren Zuweisung in dem Verzeichnisbaum geplant werden. Im Installationsdialog wird die Festplattenbersicht mit OK besttigt und im Folgedialog die erste Festplatte ausgewhlt (in unserem Beispiel /dev/sda). Das "/dev/sda" zeigt, dass Festplatten, oder allgemein gesagt smtliche Gerte als "Systemdatei" im Verzeichnisbaum verwaltet werden. Das Slash (/) ist kein Tippfehler, unter Linux/Unix gibt es kein Backslash (\) wie unter Windows.

Abbildung 7.10. Richtige Festplatte auswhlen

21

Die Grundinstallation von Arch Linux

Nach der Besttigung kommt ein Hinweis, dass jetzt das Konfigurationsprogramm cfdisk gestartet wird. Dies ist ein einfach zu bedienendes Programm, um eine Partitionierung vorzunehmen. Mit Hilfe der Pfeiltasten auf der Tastatur, wird im Menbereich navigiert.

Wichtig
Wer z.B. bedingt durch Festplattenkapazitten jenseits der zwei Terabyte arbeiten mchte, neue Sektorgren mit 4096 Bytes bercksichtigen muss, kommt an den Einsatz von GUID Partitionstabellen (GPT) und entsprechenden Werkzeugen (cfdisk untersttzt keine GPT) nicht vorbei. Hierzu gibt es ein gesondertes Kapitel (siehe Kapitel: Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)), um genau an dieser Stelle einen anderen Weg der Partitionierung whrend dieser Installation einzuschlagen. Aber dann nach getaner Arbeit hier wieder zurck zu kommen. Zu Beginn steht der Balken in der Mitte und zeigt den frei verfgbaren Platz der Festplatte an, sofern keine alten Partitionen vorhanden sind. Alte Partitionen werden mit dem Menpunkt Delete gelscht (wurden vorher Daten gesichert?). Da wir eine neue Partition anlegen wollen, wird dies ber den Menpunkt New erreicht. Im nchsten Schritt wird abgefragt, ob eine primre oder logische Partition angelegt werden soll. Nach unserer Planung sollen primre Partitionen angelegt werden, also den Punkt Primr besttigen.

Anmerkung
Der Linuxkern kann nur von einer primren Partition gebootet werden, dies sollte auf jeden Fall in die Planung mit einbezogen werden. Logische Partitionen werden in einer erweiterten Partition angelegt. Diese erweiterte Partition ist eine Mglichkeit, um die maximale Anzahl von vier primren Partition zu umgehen. Dabei hat die erweiterte Partition den Stellenwert einer Primren. Werden also drei primre und eine erweiterte Partitionen angelegt, knnen zustzlich mehrere logische Partitionen in der Erweiterten angelegt werden. Danach wird die Gre in Megabyte (MB) abgefragt. Hier laut Planung den Zahlenwert 100 (MB) eintragen. Cfdisk ist in der Lage, den Bereich der Partition auf der Festplatte zu bestimmen. Hier bitte den Anfang des freien Bereiches besttigen. Der erste Partitionseintrag ist fast fertig. Zur Erinnerung: Dies soll die Boot-Partition werden, entsprechend muss dies deklariert werden. Dazu gibt es den Menpunkt Bootable mit dem die neue Partition ein Bootflag erhlt. Was jetzt noch fehlt, ist das Format dieser Partition. Dazu den Menpunkt Type whlen. Es erscheint eine Tabelle mit den zur 22

Die Grundinstallation von Arch Linux

Verfgung stehenden Formaten. Fr uns wichtig sind die Formate 83 fr Linux und 82 fr die Swap-Partition. Nun die Schritte:

1. 2. 3. 4.

Neue Partition anlegen [New]. Gre in MB angeben. Partitionstyp beschreiben (Primary/Logical) Schreibposition der Partiton (Beginning)

sooft wiederholen, bis alle notwendigen Partitionen definiert wurden. Zum Schluss werden die Eingaben mit dem Punkt Write finalisiert. Das Schne bei cfdisk ist, dass Partitionen angelegt, definiert und wieder gelscht werden knnen, bis alles stimmt. Erst mit Write werden die Partitionen nach einer Abfrage, die mit dem ausgeschriebenen Wort "yes" besttigt wird, geschrieben. Anschlieend sollte das Ergebnis, bis auf die vierte Partition (da grenabhngig) in etwa wie in der nchsten Abbildung aussehen. In dieser bersicht ist auch gut zu erkennen, dass hier die Partitionen von eins bis vier durch nummeriert sind und den entsprechenden Namen (Erste Spalte: sda1 bis sda4) besitzen.

Abbildung 7.11. cfdisk

Mit Quit wird cfdisk verlassen. Danach den Installationsdialog mit Done beenden. Nun sollte man sich wieder im Vormen befinden, wo es mit dem Punkt 3 Manually Configure block devices, filesystems and mountpoints weiter geht.

7.3.2.3.1. Zuweisen der Dateisysteme und Mountpunkte


Ziel der nchsten Aktion ist, die zuvor erstellten Partitionen dem spteren Linux-System bekannt zu machen. Also welche Partition wie eingesetzt und ggf. im System(-Verzeichnis-)baum eingehngt wird (Mountpoint). Dazu sind die Notizen, aus dem Partitionsbeispiel sehr hilfreich. Denn in den Folgedialogen werden genau diese Partitionen abgefragt, um das entsprechende Dateisystem und deren Einhngepunkt im 23

Die Grundinstallation von Arch Linux

System zu bestimmen. Der erste Dialog fr die Zugriffsmethode der Partitionen, hat auf das sptere System einfluss.

Abbildung 7.12. Zugriffsmethode

Im vorherigen Verlauf, habe ich mich auf den klassischen Zugriff der Festplatten und Partitionen ber die Gertenamen (/dev/sda, /dev/sdb u.s.w.) bezogen. Das bleibt auch so. Es gibt aber Situationen, wo eine konkrete Eindeutigkeit notwendig wird. Hierzu dienen die UUIDs (Universally Unique Identifier, z.B. UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816), die einen eindeutigen Zugriff auf jede Partition erlaubt. Der Umgang mit UUIDs ist ein Thema fr sich und wird daher im Kapitel Das Arbeiten mit UUIDs nher beschrieben. Das Benutzen von UUIDs kann auf jeden Fall im Nachhinein erfolgen. Label, also eine Bezeichung im Klartext fr jede Partition, ist im Vergleich zu den anderen Techniken weit aus schwcher, was die sichere Eindeutigkeit betrifft und ist daher hier nicht zu empfehlen. Denn ein Label kann mehrfach mit der gleichen Bezeichnung vergeben sein. Nun zusammenfassend zielt dieser Dialog darauf ab, welches Verfahren (Gertenamen, Label oder UUID) zur Ansteuerung der Partitionen in den spteren Konfigurationsdateien genutzt werden soll. Da jede Methode fr sich, direkten Einfluss auf die Parameterschreibweise in den Systemdateien hat. Wie schon geschrieben, verfolge ich hier weiterhin den Weg ber die Gertenamen. Die Auswahl des Dateisystems und des Einhngepunktes erfolgt fr jede einzeln aufgelistete Partition. Daher beschreibe ich exemplarisch einen Lauf und zeige am Ende das gesamte Ergebnis. Im ersten Dialog kommt eine Benachrichtigung, dass bestehende Partitionen vorhanden sind (klar, haben wir ja auch zuvor angelegt) und man sich vergewissern sollte, ob diese auch eingesetzt werden drfen. Sind keine Zweifel vorhanden, wird dieser Dialog mit Yes besttigt.

1.

Nun laut Planung gibt es vier Partitionen, die hier auch aufgelistet sind.

24

Die Grundinstallation von Arch Linux

Abbildung 7.13. Dateisystem und Einhngepunkt 1

Die noch nicht zugeordnete Partition wird dann einfach ausgewhlt. 2. Es folgt dann eine Abfrage, welches Dateisystem aus der Liste fr diese Partition eingesetzt werden soll..

Abbildung 7.14. Dateisystem und Einhngepunkt 2

Die gngingsten Dateisysteme fr eine Linux-Installation sind wohl das Second- und Third-Extended-Filesystem (Ext2 und Ext3) bzw. das Fourth-Extended-Filesystem (Ext4) und Reiser3. Dies sind nicht alle und auch nicht die Aktuellsten. Sie sind jedoch erprobt und im Notfall leicht zu erreichen. Ich beziehe mich hier nur auf das Ext2 und Ext4. 3. Im letzten Schritt wird nach dem Einhngepunkt im Verzeichnisbaum gefragt. 25

Die Grundinstallation von Arch Linux

Abbildung 7.15. Dateisystem und Einhngepunkt 3

Die wichtigsten und auch fr unsere Zwecke notwendigsten Einhngepunkte sind schon vorbereitet. Individuell kann aber der Einhngepunkt mit der Option Custom bestimmt werden. Nach der Auswahl des richtigen Ortes, erscheint eine kleine Abfrage nach weiteren Parametern fr den Formatierungsprozess. Diese kann aber fr unsere Zwecke leer gelassen werden. Ebenso habe ich auf die Vergabe von Labeln verzichtet.

Zusammenfassend ergibt sich nach diesen Zuordnungslufen folgende bersicht.

Abbildung 7.16. Dateisystem und Einhngepunkt 4

Die folgende Tabelle zeigt etwas bersichtlicher die Partitionierung samt Dateisystemen 26

Die Grundinstallation von Arch Linux

und Einhngepunkte.

Tabelle 7.1. bersichtstabelle - Dateisysteme und Einhngepunkte


Partition /dev/sda1 Einhngepunkt /boot Dateisystem ext2 Information Diese Partition ist fr den Linux-Kern und Teile des Bootloaders gedacht. Fr diesen Fall, ist das Dateisystem Ext3 zu whlen, da es eine Erweiterung (Journaling) zum Ext2 besitzt und im Arbeitsbetrieb eine weitere Sicherheit mit bringt. Auslagerungspartition mit eigenem Dateisystem. Die letzte Partition wird nun fr unser Home-Verzeichnis bentigt. Dort werden spter das oder die verschiedenen Benutzerverzeichnis(se) angelegt.

/dev/sda2

ext4

/dev/sda3

Swap

Swap

/dev/sda4

/home

ext4

Zur Besttigung der vorherigen Schritte wird dieser Installationspunkt mit OK verlassen. Anschlieend folgt automatisch die Formatierungsprozedur wie definiert. Diese wird zum Schluss mit einem hoffentlich positivem Hinweis beendet. Es wurden nun alle notwendigen Schritte zum Vorbereiten der Festplatte vorgenommen. Im Installationsmen wird mit Punkt 5 zurck zum Hauptmen gesprungen, damit mit dem nchsten Schritt begonnen werden kann.

7.3.2.4. Softwarepakete selektieren (4)


Im nchsten Schritt werden die notwendigen Softwarepakete zu einer Grundinstallation gewhlt.

Abbildung 7.17. Software-Pakete auswhlen

27

Die Grundinstallation von Arch Linux

Wurde der Menpunkt Select Packages besttigt, folgt ein Hinweis, dass die Installation der Software in Gruppen erfolgt. Keine Angst es sind nur zwei, die Basis-Gruppe mit der wichtigen Grundausstattung fr das sptere Linux-System (ganz wichtig) und die Entwicklungsbasis-Gruppe mit den Werkzeugen zur Programmerstellung (z.B. die Gnu Compiler Collection).

Abbildung 7.18. Auswahl der Softwarepakete

Insgesamt erfolgt die Paketauswahl in zwei Schritten:

1. 2.

Auswahl (mit der Leer-Taste) der entsprechenden Software-Pakete (base-devel ist hierbei noch zu empfehlen). Und die folgende Besttigung der zu den Paketen gehrenden Software.

28

Die Grundinstallation von Arch Linux

Ein Feintuning ist zwar in der Programm-bersicht der einzelnen Pakete mglich, also das selektive Herausstreichen und Hinzufgen von Programmen. Das im Moment geschnrte Paketangebot kann aber ohne Weiteres so bernommen werden.

7.3.2.5. Installieren der Softwarepakete (5)


Das Installieren der zuvor gewhlten Softwarepakete ist nun kein groer Schritt mehr. Nach Besttigen des Hinweises, erfolgt die Installation von der CD. Danach geht es zum Hauptmen zurck.

7.3.2.6. Systemkonfiguration (6)


Die Systemkonfiguration ist einer der wichtigsten Punkte, der extra in einem separaten Administrationskapitel beschrieben ist. Daher werden whrend dieser Installation nur die notwendigsten Elemente behandelt. Zur Auswahl des passenden Text-Editors, zum Bearbeiten der unterschiedlichen Konfigurationsdateien, kann ich die Vorgabe "Nano" empfehlen. Fals dies der erste Kontakt mit dem Editor Nano ist, reicht ein Blick in das Kapitel "Der Editor Nano", um die wichtigsten Tastaturkombinationen zum Speichern und Beenden kennen zu lernen. Fr die sptere Bearbeitung der einzelnen Konfigurationsdateien nach dem ersten Neustart, ist zumindest an dieser Stelle das Bearbeiten der Datei rc.conf hilfreich. Denn zu Beginn der Installation half der Keyboardmanager (km), um die entsprechende Tastatur mit Lnderkennung auszuwhlen. Und damit das Suchen bestimmter Zeichen auf einem voreingestellten amerikanischen Tastaturlayout nicht ganz zur Verzweiflung fhrt, nehme ich hier schon ein wenig Bezug zur (deutschen) Lokalisierung. Also die Datei /etc/rc.conf aus dem Dialog auswhlen, wie folgt die Parameter setzen bzw. vergleichen und anschlieend speichern: # -------------------------------------------------------------# LOCALIZATION # -------------------------------------------------------------. LOCALE="de_DE.utf8" . . . KEYMAP="de-latin1" . Danach wird die Konfiguration mit dem Vergeben des Root-Kennwortes (Set the root password) fortgesetzt.

Abbildung 7.19. System-Konfiguration

29

Die Grundinstallation von Arch Linux

Der User root ist der wichtigste User in einem Linux/Unix System. Er besitzt smtliche Berechtigungen. Damit nicht jeder sich gleich als root anmelden kann, sollte ein nicht leicht zu erratendes Kennwort gewhlt und im entsprechenden Dialog eingetragen werden. Im Zusammenhang mit den restlichen Konfigurationsdateien mchte ich auf das Kapitel "Arch Linux-Administration" hinweisen. Dort beschreibe ich im einzelnen die wichtigsten Konfigurations-Dateien. Es kann also hier das restliche Konfigurieren mit dem Punkt Done gestoppt werden, um dies spter nach dem ersten Booten Schritt fr Schritt zu vervollstndigen. Mit der letzten Aktion, mit dem Menpunkt OK den Konfigurations-Dialog zu verlassen, folgt der Eintritt in die automatische Systemkonfiguration. Zusammen mit der Vorkonfiguration der Dateien rc.conf (u.a. notwendig fr die Lndereinstellung des Systems, wie weiter oben schon erfahren) und mkinitcpio.conf (fr die Konfigurtaion der RAM-Disk mit den notwendigen Treibermodulen fr den Systemstart) mittels des Hardwareerkennungsprogramms hwdetect, wird so die Arch Linux-Umgebung geschaffen. Wurde die Konfiguration beendet, wird automatisch in des Hauptmen zurck gesprungen.

7.3.2.7. Der Bootloader (7)


Sehr praktisch, vielleicht nicht gleich logisch bei einem einzigen Betriebssystem, ist ein Bootloader. Dieser kann (wenn vorhanden) verschiedene Betriebssysteme zu Beginn des Rechnerstarts zur Wahl anbieten. Auch bei einer einzelnen Linux-Installation ist dies sinnvoll, um z.B. mehrere Linux-Kerne (Fallback-Kernel!) verwalten zu knnen. Wird dessen Installation mit Hilfe des Menpunktes Install Bootloader aus dem Hauptmen gestartet, werden zwei Punkte angeboten. Entweder wird Grub als Bootloader genommen oder es liegt einem frei, einen anderen zu installieren.

Abbildung 7.20. Bootloader Grub

30

Die Grundinstallation von Arch Linux

Grub ist wohl der bekannteste Bootloader fr Linux, daher wird dieser auch von meiner Seite empfohlen und hier weiter beschrieben. Wer aber schon direkt grub2, den Nachfolger von grub, einsetzen mchte oder sogar muss, sollte an dieser Stelle die Installation mit dem Punkt None abbrechen. Da grub2 noch nicht in der Installationsroutine bercksichtigt wird, gibt es ein ergnzendes Kapitel, um die Installation entsprechend manuell abzuschlieen (siehe Kapitel: Der Einsatz von grub2). Nach der Besttigung, dass grub installiert werden soll, wird dessen Konfiguration mit Hilfe des Editors nano zur Besttigung geffnet. Die Angaben in dieser Datei beruhen auf der Hardware-Erkennung des vorherigen Kapitels.

Abbildung 7.21. Grub-Konfiguration

Hier sollten die Angaben mit den eigenen Notizen zur Partitionierung verglichen werden. Besonders die Eintrge wie in der Abbildung. Exemplarisch habe ich den ersten Block genommen, der spter nach Starten des Rechners unter grub als Menoption mit dem Titel "Arch Linux" zur Verfgung gestellt wird. 31

Die Grundinstallation von Arch Linux

# (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz26 root=/dev/sda2 vga=775 ro initrd /kernel26.img Diese Zeile dient nur als Infotext, wird also nicht von Grub ausgewertet. Der Titel spter im Men. Hier wird die Festplatte und Partition beschrieben, wo der Linuxkern zu finden ist. Da nach der exemplarischen Installation von der ersten Festplatte (0) und Partition (0) alles beschrieben wurde, stimmen hier die Eintrge (hd0,0). Der Zhlstartpunkt ist hierbei nicht beginnend bei Eins, sondern bei Null. Der Linux-Kern-Dateiname (vmlinuz26) und die Partition die dem Root-Verzeichnis zugeordnet ist; hier mit dem Eintrag root=/dev/sda2. Zustzlich wird der Framebuffer-Parameter (vga) eingesetzt, um gleich die Auflsung laut der angegebenen Tabelle zum verwendeten Monitor auf 1280x1024 Bildpunkte bei 256 Farben zu setzen. Da der Linux-Kern modular vorgegeben wird, befinden sich durch die Installation (Hardwareerkennung) ermittelten Treiber als Modul in einer RAM-Disk (kernel26.img). Beim Startvorgang werden die notwendigen Treibermodule von dieser RAM-Disk geladen. Stimmt soweit alles, kann der Editor nano wieder beendet werden. Mussten nderungen vorgenommen werden, so speichern Sie diese bitte vorher ab. Nach dieser kleinen Exkursion verlangt die Installation den Ort, in dem der Master-Boot-Record (MBR) geschrieben werden soll. In diesem Bereich wird der Ladeteil von grub geschrieben, da der MBR automatisch durch das PC-System bei einem Neustart gelesen und somit auch grub geladen wird. Hier wird nicht von einer vorher angelegten Partition ausgegangen, sondern von der Festplatte selbst. Daher sollte der erste und identische Eintrag zu dieser Installationsbeschreibung (/dev/sda) gewhlt werden.

Abbildung 7.22. Grub und der MBR

Wurde der MBR erfolgreich geschrieben, wird dies von einer Information angezeigt.

7.3.2.8. Installation beenden (8)


32

Die Grundinstallation von Arch Linux

Ja, es ist so gut wie alles fertig. Und sind keine Probleme zu erwarten, sollte der erste Bootvorgang positiv verlaufen. Vorher allerdings muss das Installationsmen mit Exit Install verlassen werden. Durch die Eingabe von reboot wird ein Neustart initiiert. reboot Danach sollte automatisch der Rechner neu starten und grub sich melden; vorausgesetzt die Installations-CD wurde vorher aus dem optischen Laufwerk heraus genommen. Nach einigen Sekunden wird der erste Eintrag "Arch Linux" von grub ausgewhlt, oder es wird mit ENTER der Abbruchen des Countdowns herbei gefhrt. Was dann abluft sind verschiedene Initialisierungsprozesse, bis Linux auf die Eingabe des Benutzernamens und dessen Kennwort wartet. Bitte melden Sie sich als root gefolgt mit dem Kennwort, das Sie whrend der Installation vergeben haben an. Anschlieend sollten Sie mit der Administration von Arch Linux (Kapitel: Arch Linux-Administration) weiter machen, um die Grundinstallation abzuschlieen. Hierzu folgen Sie bitte den Konfigurationsschritten: 1. Einstellen der entsprechenden Sprachumgebung (Lokalisierung) des Systems (Kapitel: Die deutsche Lokalisierung mit UTF-8 Untersttzung). 2. Wichtige Kernel-Module abgleichen (Kapitel: Die Kernel-Module). 3. Das Netzwerk einrichten (Kapitel: Das Netzwerk). 4. berprfen, ob die Standard-Dienste eingerichtet sind (Kapitel: Die Dienste). 5. Einen Benutzer fr die tgliche Arbeit einrichten (Kapitel: Die Benutzerverwaltung). 6. Das System auf den aktuellen Softwarestand bringen (Kapitel: Der Paketverwalter Pacman).

7.4. Ergnzungen zur Grundinstallation von Arch Linux


Verschiedene Aspekte haben sich in der Zwischenzeit "eingeschlichen". Da ist zum einen der Einsatz von Festplatten grer zwei Terabyte, mit einer Sektorgre von 4096 Byte zu nennen. Und damit gleich verbunden die Nutzung von grub2. Beide Faktoren mit entsprechenden Werkzeugen, werden so nicht direkt aus dem Installationsprogramm heraus untersttzt. Einiges mehr an Handarbeit ist daher whrend der Installation notwendig, um auch diese Bereiche abzudecken. Die folgenden Kapitel sind daher nur Ergnzungen zum "normalen" Installationsablauf, laut Kapitel "Die Grundinstallation von Arch Linux".

7.4.1. Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)


Im Kapitel "Die Festplattenvorbereitung" wird cfdisk eingesetzt, um Partitionen einzurichten. Cfdisk selbst kann aber nicht mit GUID Partitionstabellen (GPT) umgehen, die zwar nicht nur fr Festplatten grer zwei Terabyte gedacht sind, aber ab solch einer Gre notwendig werden. Das leicht zu bedienende Programm hierzu lautet gdisk. Dieses 33

Die Grundinstallation von Arch Linux

ist leider noch nicht auf den Installationsmedien bercksicht und muss daher nachtrglich whrend der Installationsprozedur nachinstalliert werden. Kommt man also an dem Punkt in der Installation, wo die Partitionen manuell eingerichtet werden sollen, sind folgende Schritte zu bercksichtigen, um mit gdisk arbeiten zu knnen:

1.

Eine Netzwerkumgebung einrichten. Wichtig ist zu erwhnen, dass jetzt ebenfalls eine generelle Installation aus dem Netz erfolgen muss, um nicht nur die Software-Pakete entsprechend whrend der Installation herunter zu laden, sondern um im eigentlichen Sinn die Netzwerkumgebung eingerichtet zu haben, welche die Voraussetzung bildet, gdisk manuell herunter zu laden und installieren zu knnen. Sollte dies noch nicht bercksichtigt sein, ist es am einfachsten den aktuellen Prozess abzubrechen, um ber das Hauptmen die Netz-Installation (siehe Kapitel: Die Installationsquelle) einzurichten. Danach wird dann das Installationsprogramm beendet.

2.

Den Datenbankbestand aktualisieren. Nach dem Beenden des Installationsprogramms steht das Prompt fr die nchsten Eingaben bereit. Notwendig ist nun das Herunterladen und Installieren von gdisk. Da zum Zeitpunkt keine Datenbankbestnde ber alle zur Verfgung stehenden Software-Pakete vorhanden sind, muss dies mit: pacman -Sy nachgeholt werden. Etwaige Aktualisierungsmeldungen zu pacman knnen zum Zeitpunkt vernachlssigt werden.

3.

Bercksichtigen eines angepassten Partitionsbeispiels. Bevor es zur Installation von gdisk geht, wird das Partitionsbeispiel um eine Partition fr grub2 ergnzt, wenn ein normales BIOS (keine EFI-Umgebung) im PC die Arbeit verrichtet.

Abbildung 7.23. Partitionsbeispiel fr grub2

34

Die Grundinstallation von Arch Linux

4.

Einrichten der Partitionen. Jetzt ist es Zeit gdisk zu installieren. Zustzliche Informationen zu GPT und die Arbeit (einschlielich die Installation) mit gdisk sind ab dem Kapitel "Festplatten mit GUID Partitionstabellen (GPT)" nachzuschlagen. Zusammenfassend gibt die folgende Tabelle alle Informationen wieder, die fr Partitionen, Gren, Typ und spteren Gebrauch laut dem neuen Partitionsbeispiel notwendig sind.

Tabelle 7.2. bersichtstabelle - Partition, Einhngepunkte und Dateisysteme


Partition /dev/sda1 Einhngepunkt Partitionstyp (gdisk) kein ef02 Gre Dateisystem / Information

Ein Megabyte / Diese Partition kein ist fr grub2. Ein Einbinden in das System ist nicht notwendig. Diese Partition wird bei der Installation von grub2 bercksichtigt. 100 Megabyte / Diese Partition ext2 ist fr den Linux-Kern und Teile des Bootloaders gedacht. ca. 10 bis 20 Fr diesen Fall, Gigabyte / ext4 ist das

/dev/sda2

/boot

0700

/dev/sda3

/root

0700

35

Die Grundinstallation von Arch Linux

Dateisystem Ext4 zu whlen, da es eine Erweiterung (Journaling) zum Ext2 besitzt und im Arbeitsbetrieb eine weitere Sicherheit mit bringt. /dev/sda4 kein 8200 Doppelter Auslagerungspartition Arbeitsspeicher mit eigenem als Gre Dateisystem. (Richtwert) / Eigenes Dateisystem Die restlich zur Die letzte Verfgung Partition wird fr stehende das Festplatten-Kapazitt Home-Verzeichnis / ext4 bentigt. Dort werden spter das oder die verschiedenen Benutzerverzeichnis(se) angelegt.

/dev/sda5

/home

0700

5.

Fortfhrung der Installation. Wurden alle Partitionen angelegt, kann das Installationsprogramm erneut gestartet werden, um an der Stelle weiter zu machen, wo es zuletzt abgebrochen wurde. Denn jetzt geht es weiter mit dem Erstellen der Dateisysteme und Definieren der Einhngepunkte (Kapitel: Zuweisen der Dateisysteme und Mountpunkte). Bitte bercksichtigen Sie hierbei auch das genderte Partitionsschema mit der bersichtstabelle aus dem Punkt vier. Ist dies erfolgt, werden ganz normal alle weiteren Schritte umgesetzt.

Anmerkung
Ein erneutes Beginnen im Installationsprogramm ab dem Punkt Zuweisen der Installationsquelle ist leider vorher erneut notwendig, da beim Verlassen der Installationsumgebung alle Einstellungen vergessen werden.

7.4.2. Der Einsatz von grub2


Grub wird nicht mehr weiter entwickelt. Hinzu kommen weitere Anforderungen, die grub nicht untersttzt. Um z.B. die Untersttzung von GUID Partitionstabellen (GPT) zu erhalten, ist grub2 aus meiner Sicht die beste Alternative. Wichtig hierbei ist, dass eine Partition bei der Nutzung von GPT bercksichtigt wird, wie es im Kapitel "Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)" beschrieben ist. Grub2 whrend der Grundinstallation von Arch Linux zu installieren, ist mit Handarbeit verbunden, da dieser Bootloader noch nicht in der Installationsroutine von Arch Linux bercksichtigt ist. Der Zeitpunkt grub2 whrend der Installation manuell zu installieren, kann genau bestimmt werden. Nmlich zum Zeitpunkt, wo grub installiert werden soll 36

Die Grundinstallation von Arch Linux

(siehe Kapitel: Der Bootloader), wird der entsprechende Dialog fr die Wahl fr grub verneint und die Installation beendet. Im Prinzip wurde schon alles fr eine Arch Linux Grundinstallation installiert, nur der letzte Schritt hier nun einen Bootloader (grub2) zu installieren fehlt. Folgende Schritte sind notwendig, um die Grundinstallation von Arch Linux mit grub2 zu beenden:

1.

Eine Netzwerkumgebung einrichten. Wie im Fall der manuellen Installation von gdisk (siehe Kapitel: Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)), ist eine konfigurierte Netzwerkumgebung mit Zugang zum Internet notwendig. Bevor also das Installationsprogramm verlassen wird, sollte eine Netz-Installation (siehe Kapitel: Die Installationsquelle) definiert sein, falls noch nicht geschehen, um ber diesen Weg die Netzwerkumgebung zu definieren.

2.

Wechseln der Installationsinstanz (chroot). Durch das Booten vom Installationsmedium (z.B. von einer CD), wird die Installationsinstanz im Speicher platziert. Das heit, das ein gesamtes Arch Linux dort vorgehalten wird, um ber die Installationsprogramme ein Arch Linux auf die Ziellaufwerke zu installieren. Hierzu werden wrend der Installationsschritte eingerichtete Festplatten und Partitionen unter /mnt gemountet, um dort hin alle notwendigen Dateien und Verzeichnisse zu bringen. Ein sofortiges manuelles Installieren von grub2, wrde also nicht die neue eigene Installation bercksichtigen, sondern die Arch Linux Instanz, die sich fr die Installation im Speicher befindet. Damit nun die neue Installation bercksichtigt werden kann, gibt es ein Werkzeug mit dem Nanem chroot, welches ein Wechseln der Instanzen whrend eines aktiven laufenden Linux-Systems erlaubt. Um den "Absprung" vorzubereiten sind folgende Schritte notwendig:

1.

Das Umlenken wichtiger SystemVerzeichnisstruktur der Zielinstanz: mount -t proc proc /mnt/proc/ mount -t sysfs sysfs /mnt/sys/ und mount -o bind /dev/ /mnt/dev/

und

Prozess-Umgebungen

zur

2.

Jetzt das eigentliche Wechseln in die Zielinstanz: chroot /mnt/ /bin/bash

3.

Den Datenbestand aktualisieren. Da die neue Instanz keine Software-Paketbestnde kennt, mssen diese mit dem Paketmanager pacman zuerst nachgereicht werden: pacman -Sy 37

Die Grundinstallation von Arch Linux

4.

Das Installieren und Konfigurieren von grub2. Hierzu gibt es ein gesondertes Kapitel (siehe: Der Bootloader grub2). Bitte bercksichtigen Sie hierbei im ersten Schritt die Installation und die Grundkonfiguration von grub2, um sicher zu gehen, dass der erste Start soweit funktioniert.

5.

Das Verlassen der Instanz (chroot) und Neustart. Die Installationsinstanz wird einfach mit dem Befehl exit verlassen. Somit sollten Sie sich wieder auf der Ebene der Installations-CD-Instanz befinden. Ein Neustart wird mit dem Befehl reboot durchgefhrt, um nun endgltig die Grundinstallation von Arch Linux abzuschlieen. Bitte bercksichtigen Sie aber noch die Tips zur Administration von Arch Linux, die im letzten Kapitel der Grundinstallion aufgelistet sind (siehe Kapitel: Installation beenden).

38

Kapitel 8. Die Arch Linux-Administration


Die gesamte Administration von Arch Linux bezieht sich eigentlich auf wenige Dateien, die mit dem Editor nano (siehe Kapitel "Der Editor Nano") oder einem anderen Lieblings-Editor (z.B. vi) bearbeitet werden. Hinzu kommt der Paketmanager pacman von Arch Linux, mit dessen Hilfe nicht nur Softwarepakete installiert werden, sondern auch das gesamte System auf dem aktuellen Stand gebracht wird. Die Konfigurationsdateien, die wrend der Installation evtl. nicht angetastet wurden, werden in den folgenden Kapiteln mit einbezogen.

Anmerkung
Bitte bedenken Sie, dass Sie hierbei als root angemeldet sein mssen, oder Alternativen (sudo oder su) einsetzen, um berhaupt die entsprechende Berechtigung zu erhalten systemwichtige Dateien zu verndern.

8.1. Die deutsche Lokalisierung mit UTF-8 Untersttzung


Linux untersttzt so gut wie alle Weltsprachen. Wer mchte kann zur englischen Sprachumgebung die Deutsche hinzufgen und smtliche Meldungen von Programmen entsprechend umstellen. Zentral hierzu wird die Datei /etc/rc.conf bearbeitet. Diese wird noch fters fr verschiedene andere Belange genutzt; aber dazu spter mehr. Also zum Bearbeiten folgende Eingabe ttigen: nano /etc/rc.conf Die Datei ist in vier Blcken aufgeteilt und dokumentiert, wovon der Erste fr die Lokalisierung des Linuxsystems wichtig ist. # # /etc/rc.conf - Main Configuration for Arch Linux # # # ----------------------------------------------------------------# LOCALIZATION # ----------------------------------------------------------------# # LOCALE: available languages can be listed with the 'locale -a' # command # HARDWARECLOCK: set to "UTC" or "localtime", any other value will # result in the hardware clock being left untouched (useful for # virtualization) # TIMEZONE: timezones are found in /usr/share/zoneinfo 39

Die Arch Linux-Administration

# KEYMAP: keymaps are found in /usr/share/kbd/keymaps # CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed # for non-US) # CONSOLEMAP: found in /usr/share/kbd/consoletrans # USECOLOR: use ANSI color sequences in startup messages # LOCALE="de_DE.UTF-8" HARDWARECLOCK="UTC" TIMEZONE="Europe/Berlin" KEYMAP="de-latin1" CONSOLEFONT="lat9w-16" CONSOLEMAP= USECOLOR="yes" Vielleicht steht hier noch die US-Einstellung, daher den Eintrag fr die deutsche Umgebung entsprechend bernehmen. Neben den Parametern fr eine landesspezifische Kennung (de_DE), wird mit dem gleichen Eintrag auf eine UTF-8-Zeichenkodierung bezogen. Die Interpretation der Hardware-Uhr wird ber zwei Parameter gesteuert. Entweder mit "localtime" oder "UTC" (Universal Time, coordinated). Linux/Unix-Systeme ohne eine Parallelinstallation von Windows verwenden UTC. Ist Windows parallel auf dem Rechner installiert, sollte man "localtime" als Parameter benutzen, da Windows nicht mit einer UTC-Umgebung arbeitet. Mehr zum Thema wird im Kapitel "Die Systemzeit" beschrieben. Die Zeitzone ist hier sehr wichtig, wenn der unter Punkt zwei beschriebene Fall zu "UTC" verwendet wird. Fr deutsche Einsatzorte bietet sich der Wert "Europe/Berlin" an. Das Tastaturlayout wird mit "de-latin1" oder "de-latin1-nodeadkeys" (fr eine Sonderbehandlung der Eingabe von Sonderzeichen z.B. fr das "") eingerichtet. Um Darstellungsprobleme bei einer UTF8-Zeichenkodierung im Konsolenbereich zu umgehen, kann ich einen entsprechenden Konsolenzeichensatz (lat9w-16) empfehlen. Eine "Consolemap" wird bentigt, wenn eine bestimmte Zeichensatz-Untersttzung nach UTF-8 (z.B. 8859-1_to_uni) bersetzt werden soll. Da die meisten Programme heute UTF-8 untersttzen, ist eine entsprechende Umwandlung nicht notwendig. ANSI-Farbausgaben in der Konsole werden hier mit einem einfachen "yes" zum Paramter USECOLOR untersttzt. Mit der Variable "Locale" in der Konfigurationsdatei rc.conf, werden systemweit bestimmte Umgebungsvariablen fr die entsprechende Sprachumgebung, ergnzt um die jeweilige Zeichenkodierung fr das System und Anwendungsprogramme gesetzt (in unserem Fall mit "de_DE.UTF-8"). Eine dieser Umgebungsvariablen lautet z.B. LC_MESSAGES, sie bestimmt die Ausgabesprache fr Programme. Vorausgesetzt das Programm wertet diese (Locale-)Variable aus. Neben der Bestimmung der entsprechenden "Locale" in den Umgebungsvariablen, muss in der Regel fr die entsprechende Sprache die Locale-Datenumgebung auch fr Systembibliotheken (glibc) generiert werden. Dies erfolgt mit der Datei locale.gen im Verzeichnis /etc. Sie wird mit: nano /etc/locale.gen bearbeitet, um das Generieren der "Locale" vorzubereiten. Dazu einfach das Rautensymbols (#) vor der entsprechenden (Sprach-)Zeile entfernen. . . #de_CH.UTF-8 UTF-8 #de_CH ISO-8859-1 de_DE.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15 40

Die Arch Linux-Administration

#de_LU.UTF-8 UTF-8 #de_LU ISO-8859-1 . . Anschlieend wird das Generieren mit dem Befehl: locale-gen gestartet. Eine bersicht der zur Verfgung stehenden Datenumgebungen fr Locale und eine gleichzeitige berprfung, ob alles erfolgreich angelegt wurde, wird mit: locale -a ausgegeben. Ob die Umgebungsvariablen nun ebenfalls gesetzt sind, wird einfach mit der Eingabe: locale angezeigt. Ein Neustart des Systems ist jetzt notwendig, damit alle nderungen wirksam werden. Dazu folgende Eingabe: reboot

8.2. Die Kernel-Module


Arch Linux ist so ausgerichtet, dass es keinen monolithischen Linux-Kernel gibt, in dem wie sonst blich genau passend zum System alle notwendigen Treibermodule enthalten sein mssen. Vielmehr liegen smtliche Treiber als externe Module vor und werden, abhngig der Hardwareumgebung, geladen. Fr die Modulverwaltung ist der Abschnitt "Hardware" in der Datei rc.conf zustndig:

Anmerkung
Der folgende Ausschnitt aus der Datei rc.conf zeigt eine Momentaufnahme (m)eines Systems und wird mit groer Wahrscheinlichkeit bei Ihnen anders aussehen. Das hngt damit zusammen, dass wrend der Arch Linux-Installation die Datei rc.conf abhngig von der Hardwareumgebung generiert wurde. Die Modulverwaltung unter "Hardware" braucht in der Regel nicht verndert zu werden. nano /etc/rc.conf # ---------------------------------------------------------------# HARDWARE # ---------------------------------------------------------------# # MOD_AUTOLOAD: Allow autoloading of modules at boot and when # needed # MOD_BLACKLIST: Prevent udev from loading these modules # MODULES: Modules to load at boot-up. Prefix with a ! to # blacklist. # # NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the # MODULES array. # MOD_AUTOLOAD="yes" #MOD_BLACKLIST=() #deprecated 41

Die Arch Linux-Administration

MODULES=() # Scan for LVM volume groups at startup, required if you use LVM USELVM="no" Hier ist ein "yes" notwendig, damit wrend der Bootphase das Hardware-Scannen aktiviert wird. Das Nutzen von MOD_BLACKLIST wurde abgekndigt. Um bestimmte Module nicht zu laden, reicht als Vorzeichen zum Modulnamen in MODULES ein "!". Wichtige Option, um whrend der Startphase des Linux-Systems die Treiber-Module (in den runden Klammern) anzugeben, die ggf. durch die automatische Hardwareerkennung nicht ermittelt werden. Klassischer Fall wre ein wichtiger und notwendiger Treiber fr einen (neuen) Festplatten-Controller. Mit dieser Variable und der Wertzuweisung "yes" oder "no" wird fest gelegt, ob der "Logical Volume Manager" mit entsprechenden Festplatten/Partitions-Gruppen genutzt werden soll.

8.3. Das Netzwerk


Ein wichtiger Punkt - nicht nur fr ein Linux-System.

8.3.1. Ein einfaches Netzwerkkonzept


Hierbei verfolge ich das Konzept einen Internetzugang fr mehrere Anwender zu Hause, in einem kleinen Bro oder einer Agentur zur Verfgung zu stellen.

Abbildung 8.1. Netzwerkkonzept

Als Protokoll-Duo werden TCP (Transmission Control Protocol) und IP (Internet Protokoll) zusammen als TCP/IP fr die netzweite Kommunikation eingesetzt. Beide sorgen dafr, 42

Die Arch Linux-Administration

dass Datenpakete zwischen identifizierbaren Rechnern mit einer eindeutigen IP-Adresse unabhngig vom Betriebssystem ausgetauscht werden. Fr den Einsatz eines (privaten) Netzwerkes stehen - laut einer internationalen Definition - folgende IP-Adressbereiche frei zur Verfgung, um genau jedem Rechner in einem (privaten) Netzwerk eine eigene IP-Adresse zu vergeben, ohne dass es zu einer Kollision mit dem Internet kommt: 1. 192.168.0.0 bis 192.168.255.255 (Class C Netz) 2. 172.16.0.0 bis 172.31.255.255 (Class B Netz) 3. 10.0.0.010.255.255.255 (Class A Netz) Etabliert hat sich der Bereich zwischen 192.168.0.0 und 192.168.255.255 (Class C Netz). Wichtig hierbei ist, dass man sich auf die ersten drei Werte (Oktetts) der spteren IP-Adresse einigt, um jedem Rechner (egal ob Workstation, Server und Router) eine eindeutige IP-Adresse aus dem entstandenen Verbund (z.B. 192.168.1.x) zu geben, sonst funktioniert die Kommunikation unter allen Rechnern nicht bzw. dann ist weiterer Aufwand notwendig. Die IP-Adressen mit .0 und .255 in der letzten Wertigkeit spielen eine Sonderrolle und sind vom System reserviert. Somit sind maximal 254 Rechner untereinander erreichbar. Zwecks einer besseren bersicht, kann ich eine Gruppierung der IP-Adressen empfehlen (wie in der Abbildung zu sehen), um z.B. Router und Server von normalen Arbeitsplatzrechnern zu trennen. Auf DHCP (Dynamic Host Configuration Protocol), also den Dienst fr die dynamische Vergabe von sich wechselnden IP-Adressen aus einem bestimmten IP-Adressraum, wrde ich bei diesem Konzept fr vier Rechner komplett verzichten. Besonders bei Server sollte von einer Eindeutigkeit ausgegangen werden, was auf jeden Fall das Finden von Fehlern erleichtert. Bei mehreren Rechnern lohnt sich dann evtl. schon eine kleine Dokumentation. Ein Schaubild, wie bei der Abbildung zum Netzwerk-Konzept veranschaulicht die Thematik. Ein einfacher Router (heute von einigen Internet-Providern als kostenlose Beigabe, in der Regel mit einem eingebauten Switch fr den Anschluss fr vier Rechner per Kabel), verwaltet einen Internetzugang dynamisch bei Bedarf ber ein internes oder externes Modem (z.B. per xDSL- oder Kabelanschluss). Hierbei wird der Datenverkehr zwischen zwei unterschiedlichen Netzwerken, dem eigenen (privaten) LAN (Local Area Network) und dem WAN (Wide Area Network) geroutet. Der Router stellt daher ein Gateway (Verbindungstor) zwischen beiden "Netzwelten" her.

Anmerkung
Es ist schon aus sicherheitstechnischen Grnden sinnvoll, schon bei nur einem Rechner einen Router einzusetzen. Aus der Sicht des Internets ist der Partner der Router und nicht der oder die Rechner hinter dem Selbigen. Zustzlich existiert in den meisten Fllen als erweiterte Funktion in den Routern eine Firewall. Somit werden einfache Angriffsversuche aus dem Internet zum internen Netzwerk blockiert. Zustzlich Als Tip kann ich eine IP-Adresse fr den Router empfehlen, die von der Werkseinstellung abweicht, um etwaige Angriffe von Innen (z.B. per Mail, Stichwort Trojaner) zu erschweren.

8.3.2. Die Netzwerkkonfiguration


Bei Arch Linux erfolgt die Netzwerkkonfiguration ber wenige Dateien; vorausgesetzt der Netzwerkadapter wurde erfolgreich im System eingebunden. Mit dem Befehl: ifconfig

43

Die Arch Linux-Administration

wird eine bersicht der vorhandenen Adapter ausgegeben. Fr die erste Netzwerkkarte eth0, fr die Zweite eth1 und so weiter. Auf jeden Fall sollte das sogenannte Loopback-Interface als lokaler Netzwerkadapter mit der Bezeichnung lo aufgelistet sein, dass fr die programm- und systeminterne, netzwerkprotokollbasierende Kommunikation notwendig ist. Die IP-Adressenzuordnung zu den Adaptern erfolgt mit Hilfe der Datei rc.conf im Abschnitt "Networking", die nun entsprechend des Beispielkonzeptes bearbeitet wird. nano /etc/rc.conf # --------------------------------------------------------------# NETWORKING # --------------------------------------------------------------# # HOSTNAME: Hostname of machine. Should also be put in /etc/hosts HOSTNAME="fasolt" # # # # # # # # # # # Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces. Interfaces to start at Declare each interface - prefix an entry in - no hyphens in your boot-up (in this order) then list in INTERFACES INTERFACES with ! to disable it interface names - Bash doesn't like it

DHCP: Set your interface to "dhcp" (eth0="dhcp") Wireless: See network profiles below

#Static IP example lo="lo 127.0.0.1" eth0="eth0 192.168.1.120 netmask 255.255.255.0 broadcast ==> ==>192.168.1.255" INTERFACES=(lo eth0) # Routes to start at boot-up (in this order) # Declare each route then list in ROUTES # - prefix an entry in ROUTES with a ! to disable it # gateway="default gw 192.168.1.10" ROUTES=(gateway) # Enable these network profiles at boot-up. These are only # useful # if you happen to need multiple network configurations # (ie, laptop users) # - set to 'menu' to present a menu during boot-up # (dialog package required) # - prefix an entry with a ! to disable it # # Network profiles are found in /etc/network.d # # This now requires the netcfg package #NETWORKS=(main) Der Hostname entspricht dem Rechnernamen. Ich halte mich hierbei mal an die Nibelungensage und deren Protagonisten. Daher fllt die Wahl fr diesen Linux-Rechner auf fasolt (ein krftiger Riese). In dieser Zeile erhlt der lokale Adapter lo die entsprechende Standard-IP-Adresse (127.0.0.1). Fr den Adapter eth0 wird die IP-Adresse 192.168.1.120 wie im Beispiel-Konzept vergeben. Die Netmask kann zur Unterteilung der IP-Adressen in Teilnetze (Subnets) dienen, um Datenvolumen (und damit den entsprechenden Datenpakettransport) innerhalb groer Netzwerke kontrolliert verwalten zu knnen. Bei einem Class C Netz, 44

Die Arch Linux-Administration

wie hier im Einsatz, ist daher als Netmask 255.255.255.0 zu benutzen. Somit wird die schon erwhnte Anzahl von maximal 254 Rechnern in diesem Netzwerk angesprochen. Die Broadcast-Adresse ist eine der reservierten Adressen mit dem Wert 255 als letztes Oktett. Da alle Rechner im Verbund somit die gleiche IP-Adresse erhalten, sind sie fr einen Broadcast (Rundruf, nach dem Motto "ich bin da wer noch") erreichbar. Zusammen mit den ersten drei Oktetts aus dem Verbund, ergibt sich dann als Broadcast-Adresse die 192.168.1.255. So wie in diesem Fall von eth0, knnen nach gleichem Schema weitere vorhandene Netzwerkadapter (z.B. eth1) konfiguriert werden. Sollen keine statischen IP-Adressen benutzt, sondern der Dienst DHCP (ist oft als Serverdienst bei Routern vorhanden) in Anspruch genommen werden, ist zum entsprechenden Netzwerkadapter in Anfhrungsstriche die Abkrzung "DHCP" zu setzen. An dieser Stelle wird definiert, welche Netzwerk-Adapter whrend der Bootphase bercksichtigt werden sollen, und zwar in der Reihenfolge wie angegeben. Als voreingestelltes Gateway kommt die IP-Adresse zum Einsatz, die dem Router vergeben wurde. Die unter Punkt 5 gemachten Angaben, werden hier fr das Routing gesetzt. Vor der Variable "gateway" ist zu Beginn als Vorzeichen ein Ausrufezeichen gestellt. Dieses muss entfernt werden, wenn die Einstellungen aktiviert werden sollen.

Anmerkung
Ab ca. mitte Juni 2011 gibt es eine nderung in der Datei rc.config selbst. Hiervon betroffen ist auch die Netzwerkkonfiguration, was sich damit bemerkbar macht, dass nach der Grundinstallation mit der Version 2010.05, die obere Umgebung noch Gltigkeit besitzt, aber nach einem System-Update mit pacman nicht mehr; jeder Bootvorgang erhlt einen Hinweis zur Netzwerkumgebung, dass diese Form der Konfiguration abgesagt ist. Die eigentlichen Zusammenhnge wie oben beschrieben bleiben zwar gleich, nur die Zuweisung hat sich gendert. Zur Orientierung folgende neue Formatierung: # ----------------------------------------------------------------------# NETWORKING # ----------------------------------------------------------------------# # HOSTNAME: Hostname of machine. Should also be put in /etc/hosts # HOSTNAME="fasolt" # Use 'ip addr' or 'ls /sys/class/net/' to see all available interfaces. # # Wired network setup # - interface: name of device (required) # - address: IP address (leave blank for DHCP) # - netmask: subnet mask (ignored for DHCP) # - gateway: default route (ignored for DHCP) # # Static IP example # interface=eth0 # address=192.168.0.2 # netmask=255.255.255.0 # gateway=192.168.0.1 # # DHCP example # interface=eth0 # address= # netmask= # gateway= interface=eth0 address=192.168.1.120 netmask=255.255.255.0 45

Die Arch Linux-Administration

gateway=192.168.1.10 # Setting this to "yes" will skip network shutdown. # This is required if your root device is on NFS. NETWORK_PERSIST="no" # Enable these netcfg profiles at boot-up. These are useful if you happen to # need more advanced network features than the simple network service # supports, such as multiple network configurations (ie, laptop users) # - set to 'menu' to present a menu during boot-up (dialog package required) # - prefix an entry with a ! to disable it # # Network profiles are found in /etc/network.d # # This requires the netcfg package # #NETWORKS=(main) Als nchstes wird die Namensauflsung (z.B. fr www.archlinux.de) untersttzt. Also das bersetzen von Klartextnamen in die entsprechende IP-Adresse. Die Steuerung dazu erfolgt mit Hilfe der Datei resolv.conf: nano /etc/resolv.conf # # /etc/resolv.conf # #serch <yourdomain.tld> #nameserver <ip> domain nibelungen.local search nibelungen.local nameserver 192.168.1.10 # End of file Das eigene LAN bekommt einen bergeordneten eigenen Namen, der als Domne (Domain) bezeichnet wird. Diese Domne beinhaltet alle Rechner, die ber die Netmask zusammen gefasst werden. In unserem Beispiel also maximal 254 Rechner. Zusammen mit dem Domnennamen aus (1), wird ein unvollstndiger Rechnername entsprechend zur Namensauflsung um den Domnennamen zur Suche ergnzt. Aus der Anfrage z.B. an den Rechner sieglinde wird dann sieglinde.nibelungen.local gebildet. Die Suche wird dann auf die eigene Domne eingeschrnkt, was evtl. die Antwortzeit verkrzt, wenn dieser Rechner nicht gefunden wird. Der Internetprovider betreut in der Regel einen oder mehrere Domain-Name-Server (DNS), um Klartextnamen in notwendige IP-Adressen zu bersetzen. In unserem Konzept erhlt der Router bei der automatischen Einwahl vom Internet-Provider alle notwendigen IP-Adressen zurck. Neben der fr die eigene eindeutige Erreichbarkeit aus dem Internet, auch die des oder der DNS. Somit wird als Eintrag die IP-Adresse des Routers gewhlt, der die Anfragen vom eigenen Rechner entsprechend weiter reicht.

Anmerkung
Die Bearbeitung der Datei resolv.conf ist nur bei der Verwendung von statischen IP-Adressen notwendig. Bei der Nutzung von DHCP brauchen keine nderungen vorgenommen werden. 46

Die Arch Linux-Administration

Die letzte der zu bearbeitenden Dateien ist hosts. Sie muss nicht zwingend gendert werden und es macht auch keinen Sinn, wenn keine statischen IP-Adressen fr die Rechner genutzt werden. Die Datei hosts stellt quasi einen eigenen Namen-Service auf dem eigenen Rechner her, um Klartextnamen in IP-Adressen zu bersetzen. Als Beispiel um zu prfen ob der Mac Rechner (laut Netzwerk-Konzept) im Netz erreichbar ist, bruchten Sie lediglich ping fafner als Kommando einzugeben. Das Betriebssystem schaut als erstes in die Datei hosts, um die entsprechende IP-Adresse zu ermitteln. Danach wrde der Befehl ping Datenpakete an den Rechner mit der IP-Adresse 192.168.1.110 senden und auf die Antwort warten. Das Format der Datei ist selbsterklrend. Im Prinzip handelt es sich um eine Tabelle, beginnend mit der eigentlichen IP-Adresse, der Domne und dem Hostnamen als Spalten. Als Domainnamen habe ich mich wieder an dem "Ring der Nibelungen" orientiert, analog zur Datei resolv.conf um dem LAN einen bergeordneten Namen zu vergeben. Wird die Datei zum ersten mal geffnet, befindet sich dort der erste Eintrag zum Loopback-Interface (lo). Analog sind die Eintrge laut Netzwerk-Konzept hinzugefgt. nano /etc/hosts # # /etc/hosts: static lookup table for host names # #<ip-adress> 127.0.0.1 192.168.1.110 192.168.1.120 192.168.1.130 <hostname.domain.org> <hostname> localhost.nibelungen.local localhost fafner.nibelungen.local fafner fasolt.nibelungen.local fasolt hagen.nibelungen.local hagen wotan

192.168.1.20 wotan.nibelungen.local # End of file

8.4. Die Dienste


Mit Dienste (oder auch Daemons genannt) sind Programme gemeint, die nicht unbedingt im Vordergrund mit einer Benutzeroberflche arbeiten, sondern im Hintergrund ttig sind. Die Wichtigsten fr ein Linuxsystem, z.B. zum Protokollieren der Systemergeignisse oder der zeitlichen Steuerung von Aktivitten, werden schon wrend der Arch Linux-Installation bercksichtigt. Zu finden sind diese namentlich in der Konfigurations-Datei rc.conf in der Rubrik Daemons: nano /etc/rc.conf # # ---------------------------------------------------------------# DAEMONS # ---------------------------------------------------------------# # Daemons to start at boot-up (in this order) # - prefix a daemon with a ! to disable it # - prefix a daemon with a @ to start it up in the background # DAEMONS=(syslog-ng network netfs crond) Alle Dienste, die whrend der Startphase geladen werden sollen, werden nacheinander in 47

Die Arch Linux-Administration

den runden Klammern durch ein Leerzeichen getrennt aufgelistet. Wie in der Kurzbeschreibung zu lesen, wird ein Dienst deaktiviert, in dem ein Ausrufezeichen vor dem Namen gesetzt wird. Ein Lschen des Namens htte den gleichen Effekt, nur wre fr eine sptere Reaktivierung die genaue Schreibweise notwendig, die dann vielleicht nicht mehr vorliegt. Das Ad-Zeichen vor dem Namen bewirkt bei jedem Programm ein Starten im Hintergrund.

8.5. Die Benutzerverwaltung


Linux/Unix ist ein Mehr-Benutzersystem. Den wichtigsten User (root) haben Sie schon whrend der Installation angelegt. Da dieser die absolute Macht ber das gesamte System hat, sollte er nicht fr die alltgliche Arbeit genutzt werden. Ein neuer Benutzer fr die tgliche Arbeit wird mit dem Befehl useradd dem Linux-System wie folgt hinzu gefgt: useradd -m -G users,wheel,audio,video,optical,games,storage,power -s /bin/bash neuerBenutzer Der Parameter "-m" bewirkt, dass ein Heimatverzeichnis unter /home mit dem entsprechenden Benutzernamen angelegt wird. Mit "-G" (bitte Gro- und Kleinschreibung beachten) wird der Benutzer den entsprechenden Gruppen zugeordnet. Linux/Unix verwaltet Berechtigungen einzelner Benutzer der Einfachheit halber bergeordent mittels Gruppen. Hinter jeder Gruppe liegen Berechtigungen fr bestimmte Gegebenheiten, in der Regel die Zugriffsberechtigung fr eine bestimmte Hard- und Software und/oder einer administrativen Ttigkeit.

Tabelle 8.1. Gruppen-bersicht


Gruppe users wheel Kurzbeschreibung Standard-Gruppe fr jeden Benutzer. Erweiterte Berechtigung, um zu substituieren (su), also sich als ein anderer Benutzer (einschlielich als root) mit Hilfe des jeweiligen Kennwortes auszugeben/anzumelden. Oder den Befehl sudo fr das Aufhren von Programmen mit der Hoheit von root zu benutzen. Eine Sounduntersttzung erhalten. Erweiterte nutzen. Grafikeigenschaften (2D/3D)

audio video optical games storage power

Zugriff auf optische Laufwerke wie CD/DVD erhalten. Spiele benutzen. Zugriff auf Laufwerke wie Festplatten, USB-Sticks u.s.w. (externe)

Notwendig, um spter in einer Desktop-Umgebung als normaler Benutzer den Rechner herunter fahren oder neu starten zu drfen.

Weitere Gruppen werden dem System ggf. mit dem Installieren von bestimmten Programmen hinzugefgt. Funktioniert z.B. eine bestimmte Gegebenheit nicht, sollte 48

Die Arch Linux-Administration

berprft werden, ob der Benutzer der entsprechenden Gruppe zugeordnet wurde. Das kann auf verschiedenen Wegen funktionieren. Entweder wird der Befehl: groups eingebenen, wenn der Benutzer gerade angemeldet ist. Oder die Datei /etc/group wird geffnet, unabhngig davon ob der Benutzer gearde angemeldet ist oder nicht, um sich eine bersicht zu verschaffen. Das nachtrgliche Hinzufgen eines Benutzers zu einer Gruppe erfolgt mit: gpasswd -a Benutzer Gruppe Entfernt wird ein Benutzer aus einer Gruppe mit: gpasswd -d Benutzer Gruppe Eine vllig neue Gruppe fr eigene Bedrfnisse zu erstellen erledigt der Befehl: groupadd neueGruppe Im nchsten Teil bernimmt der Parameter "-s" die Zuordnung einer Shell zum neuen Benutzer, daher folgt dem Parameter das entsprechende Shell-Programm. Sehr weit verbreitet und eigentlich Standard ist die Bourne-Again-Shell, kurz bash. Daher als Folgeparameter "/bin/bash". Sobald sich der Benutzer am System anmeldet, wird diese entsprechend geladen. Und zuguter Letzt der eigentlich neue Benutzername. Wurde der neue Benutzer erfolgreich angelegt, sollte sofort ein Kennwort vergeben werden. Hierzu dient der Befehl: passwd Benutzer Smtliche hier beschriebenen administrative Aktionen sind dem root vorbehalten, auch das Lschen von Benutzern mit: userdel -r Benutzer

8.6. Der Paketverwalter Pacman


Unter Arch Linux arbeitet Pacman quasi als Schweizer Messer, was die Verwaltung der Softwarepakete betrifft. Softwarepakete werden mit Pacman gesucht, herunter geladen, installiert und bei Bedarf wieder gelscht. Mit einem Handgriff kann das gesamte Arch Linux-System auf den aktuellen Stand gebracht werden. Bei jeder Installation eines Softwarepaketes werden Abhngigkeiten bercksichtigt und entsprechend zur Installation vorgeschlagen. Die Installationspakete werden in Ablagen (Repositories) verwaltet, dabei verhlt es sich ein wenig wie bei Aschenputtel. Die absolut notwendigen Softwarepakte fr ein Arch Linux-Grundsystem befinden sich in der Ablage "Core". Weitere, aktuelle und stabile Pakete (z.B. Samba) in der Ablage "Extra". Daneben gibt es noch als Ablage "Unstable" mit Softwarepaketen, die noch in der Erprobung sind. Diese genannten Ablagen werden von den Arch Linux-Entwicklern betreut. Zustzlich gibt es noch einen "Community" Bereich, mit einer Vielzahl von weiteren Paketen, die von als vertrauenswrdig eingestuften Anwendern gepflegt werden. 49

Die Arch Linux-Administration

Alle Softwarepakete sind kompiliert und liegen entsprechend den Ablagen sortiert als Archivdateien auf (gespiegelte) FTP-Servern auf der ganzen Welt bereit. Welche Software nun zur Verfgung steht, wird mit Pacman lokal geklrt. Dazu existiert auf dem eigenen Rechner eine Datenbank. Natrlich knnen Softwarepakete aus anderen Quellen direkt kompiliert und eingesetzt werden. Sofern diese noch nicht vom Arch Linux-Team zur Verfgung gestellt sind, knnen Installationspakete nach einer APS-Vorgabe (Arch Packaging Standard) selber erstellt und als AUR (Arch Linux User-Community Repository), also der Community-Ablage fr andere Benutzer zur Verfgung gestellt werden.

8.6.1. Pacman konfigurieren


Konfiguriert wird pacman mit der Datei pacman.conf: nano /etc/pacman.conf # # /etc/pacman.conf # # See the pacman manpage for option directives # # GENERAL OPTIONS # [options] # The following paths are commented out with their default values # listed. # If you wish to use different paths, uncomment and update the # paths. #RootDir #DBPath #CacheDir #LogFile HoldPkg = = = = = / /var/lib/pacman/ /var/cache/pacman/pkg/ /var/log/pacman.log pacman glibc

# If upgrades are available for these packages they will be asked # for first SyncFirst #XferCommand #XferCommand #CleanMethod Architecture = = = = = pacman /usr/bin/wget --passive-ftp -c -O %o %u /usr/bin/curl -C - %u > %o KeepInstalled auto

# Pacman won't upgrade packages listed in IgnorePkg and members # of IgnoreGroup #IgnorePkg = #IgnoreGroup = NoUpgrade #NoExtract = /etc/rc.conf =

# Misc options (all disabled by default) #UseSyslog #ShowSize #UseDelta #TotalDownload # # REPOSITORIES # - can be defined here or included from another file # - pacman will search repositories in the order defined here # - local/custom mirrors can be added here or in separate 50

Die Arch Linux-Administration

# files # - repositories listed first will take precedence when # packages have identical names, regardless of version number # # - URLs will have $repo replaced by the name of the current # repo # # Repository entries are of the format: # [repo-name] # Server = ServerName # Include = IncludePath # # The header [repo-name] is crucial - it must be present and # uncommented to enable the repo. # # # # # The testing repositories are disabled by default. To enable, uncomment the repo name header and Include lines. You can add preferred servers immediately after the header, and they will be used before the default mirrors.

#[testing] # Add your preferred servers here, they will be used first #Include = /etc/pacman.d/mirrorlist [core] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist [extra] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist [community] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/mirrorlist # An example of a custom package repository. See the pacman # manpage for tips on creating your own repositories. #[custom] #Server = file:///home/custompkgs Die Konfigurationsdatei wird in zwei Bereiche aufgeteilt. Die Hauptoptionen (General Options) und die Ablageoptionen (Repositories). In den Hauptoptionen wird u.a. beschrieben, welche Dateien (z.B. durch ein komplettes System-Update) nicht aktualisiert (NoUpgrade) werden sollen. Sehr gut zu zeigen an der Zeile, wo die Datei rc.conf ausgeschlossen wird, denn in dieser Datei sind einige schwer erarbeitete Konfigurationen enthalten, die nicht berschrieben werden sollten. Pacman besitzt einen eigenen FTP-Client, um die Softwarepakete herunter zu laden. Wer allerdings nicht auf wget verzichten mchte, muss dies ber die Variable "XFerCommand" steuern: einfach das Rautensymbol vor der vorgeschriebenen Zeile entfernen und schon wird wget eingebunden. In der Beschreibung zu pacman habe ich ber die Verwaltung der Softwarepakete geschrieben. Smtliche (gespiegelte) Server zu einer Ablage (Core, Extra u.s.w.) werden aktuell in einer Datei lokal aufgelistet. Diese Datei mit dem Namen mirrorlist befindet sich im Verzeichnis /etc/pacman.d und sollte so angepasst werden, dass die zur Verfgung stehenden Server am besten zu erreichen sind. Dazu werden entweder die Serverpositionen in der Datei gelscht oder mit dem Rautensymbol (#) auskommentiert. nano /etc/pacman.d/mirrorlist # # $repo: Arch Linux @REPO@ repository # 51

Die Arch Linux-Administration

# United States #Server = ftp://ftp.archlinux.org/$repo/os/i686 #Server = ftp://ftp.nethat.com/pub/linux/archlinux/$repo/os/i686 #Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/i686 #Server = ftp://mirrors.unixheads.org/archlinux/$repo/os/i686 #Server = ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/==> ==>archlinux/$repo/os/i686 #Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/i686 #Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/i686 #Server = ftp://ftp.ibiblio.org/pub/linux/distributions/==> ==>archlinux/$repo/os/i686 #Server = http://holmes.umflint.edu/archlinux/$repo/os/i686 # South America # - Brazil #Server = http://archlinux.c3sl.ufpr.br/$repo/os/i686 #Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/i686 # Europe # - Austria #Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/i686 # - Belgium #Server = ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/i686 # - Czech Republic #Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/i686 # - Estonia #Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/i686 # - Finland #Server = ftp://ftp.sixnix.net/pub/archlinux/$repo/os/i686 # - France #Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/i686 #Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/i686 #Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/==> ==>archlinux/$repo/os/i686 #Server = http://mir.archlinux.fr/$repo/os/i686 #Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/i686 # - Germany Server = ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/==> ==>distributions/archlinux/$repo/os/i686 Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/==> ==>$repo/os/i686 Server = ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/==> ==>os/i686 Server = ftp://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/i686 Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/i686 Server = ftp://ftp.archlinuxppc.org/i686/$repo/os/i686 # - Great Britain #Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/==> ==>$repo/os/i686 # - Greece #Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/i686 # - Hungary #Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/==> ==>$repo/os/i686 # - Ireland #Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/==> 52

Die Arch Linux-Administration

==>os/i686 # - Italy #Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/i686 # - Netherlands #Server = ftp://ftp.nluug.nl/pub/metalab/distributions/==> ==>archlinux/$repo/os/i686 #Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/==> ==>$repo/os/i686 # - Poland #Server = ftp://ftp.icm.edu.pl/pub/Linux/sunsite/==> ==>distributions/archlinux/$repo/os/i686 #Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/i686 # - Portugal #Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/i686 # - Romania #Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/==> ==>$repo/os/i686 # - Russia #Server = ftp://archlinux.org.ru/pub/archlinux/$repo/os/i686 #Server = ftp://mirror.yandex.ru/archlinux/$repo/os/i686 #Server = http://archlinux.freeside.ru/$repo/os/i686 # - Sweden #Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/i686 #Server = ftp://ftp.gigabit.nu/$repo/os/i686 # - Switzerland #Server = ftp://archlinux.puzzle.ch/$repo/os/i686 # - Turkey #Server = http://server.elsistech.com/archlinux/$repo/os/i686 # - Ukraine #Server = ftp://hell.org.ua/archlinux/$repo/os/i686 #Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/==> ==>$repo/os/i686 # Asia # - Israel #Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/i686 # Australia #Server = ftp://mirror.pacific.net.au/linux/archlinux/==> ==>$repo/os/i686 #Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/i686 Alle nicht kommentierten Server werden von pacman von oben nach unten gelesen, wenn der Vorherige nicht erreichbar ist.

8.6.2. Mit Pacman arbeiten


Pacman wird von einer Vielzahl von Parametern gesteuert. Die Wichtigsten sind hier in einer Tabelle zusammen gefasst:

Tabelle 8.2. Kleine Parameter-bersicht zu Pacman


Parameter -Sy -Ss -S Kurzbeschreibung Aktualisieren der lokalen Datenbank. Nach einer Software suchen. Ein bestimmtes Softwarepaket mit ggf. notwendigen abhngigen Paketen installieren. Ein 53 Update der schon installierten

-Su

Die Arch Linux-Administration

Softwarepakete vornehmen. -R -Rs Ein bestimmtes Softwarepaket entfernen. Ein Bestimmtes Softwarepaket zusammen mit abhngigen Paketen entfernen. Dabei werden die Abhngigkeiten deinstalliert, die nicht durch andere Softwarepakete benutzt werden. Lschen der herunter geladenen Paket-Archive, welche im Verzeichnis /var/cache/pacman/pkg liegen.

-Scc

Hier einige Beispiele: 1. Systemupdate: Die Parameter sind kombinierbar. Um also in einem Schritt nicht nur die lokale Softwarepaketdatenbank zu aktualisieren, sondern gleich das ganze System mit allen schon installierten Paketen, reicht folgende Eingabe: pacman -Syu

Anmerkung
Dies ist besonders nach einer neuen Installation von Arch Linux zu empfehlen, wenn die Installation z.B. ber eine CD vorgenommen wurde. Da zwischen dem Verffentlichen der Installationsmedien und des Installationszeitpunktes Monate vergehen knnen, sind evtl. die Software-Pakete auf dem Datentrger entsprechend alt. 2. Softwarepaket-Installation: Der Serverdienst samba soll installiert werden, also erst einmal schauen, ob dieser zur Verfgung gestellt wird: pacman -Ss samba Was ist passiert? Die Suche in der lokalen Datenbank hat verschiedene Ergebnisse ausgegeben. Abhngig vom Ablageort (in diesem Fall "extra" und "community"), wurde nicht nur das zu samba passende Paket angezeigt (samba 3.3.1-1), sondern auch einige andere Pakete, die fr andere Zwecke in Bezug zu samba stehen und vielleicht interessant sind. In diesem Beispiel ist nur das eigentliche Paket notwendig, daher folgende Eingabe: pacman -S samba Pacman lst dann die Abhngikeiten auf und stellt die fr samba notwendigen Softwarepakete vor (sofern sie noch nicht installiert sind). Wird die Abfrage mit J besttigt, werden die Pakete vom Server herunter geladen und installiert.

Anmerkung
In diesem Beispiel war es sehr einfach, da eindeutig. Unter Umstnden werden verschiedene Versionen, bzw. Varianten zu einem Softwarepaket zur Verfgung gestellt. Dann ist eine genaue Angabe des Paketnamens , unter Umstnden mit dem gesamten Ablagepfad notwendig: pacman -S extra/samba 3.3.1-1 54

Die Arch Linux-Administration

Um weitere Parameter fr andere Funktionen zu pacman zu benutzen, weise ich auf die Man-Page (also die Linux/Unix interne Beschreibung) zu pacman hin: man pacman

Anmerkung
Auch pacman selbst wird weiter entwickelt. Daher ist es in einigen Fllen notwendig, dass die bestehenden Datenbanken ebenfalls angepasst werden mssen. Sollte also nach einer Aktualisierung von pacman selbst, bei dem anschlieenden Versuch ein Programm zu installieren, die Prozedur mit einen Fehler quittiert werden, reicht i.d.R. das Anpassen der Datenbanken selbst mit: pacman-db-upgrade aus.

8.7. Der Bootloader grub2


Der Bootloader grub wurde ja schon whrend der Installation von Arch Linux kurz behandelt. Da grub aber nicht mehr weiter entwickelt wird, liegt der Schwerpunkt des Entwickler-Teams nun auf grub2. Auch wenn sich grub2 noch im Beta-Stadium befindet, kann dieser Bootloader schon eingesetzt werden. Insbesondere dann, wenn bestimmte Funktionen bentigen werden, die bei grub fehlen. Wie z.B. die Untersttzung von GUID Partitionstabellen (GPT) (siehe Kapitel: Festplatten mit GUID Partitionstabellen (GPT)).

8.7.1. Voraussetzungen fr grub2


Die Voraussetzungen sind die gleichen, wie fr grub auch, sofern keine GUID Partitionstabelle (GPT) eingesetzt wird. Ist dies der Fall, muss eine eigene Partition in der Gre von ca. einen Megabyte fr grub2 vorgesehen werden. Allerdings nur dann, wenn ein normales BIOS im PC vorhanden ist und keine EFI-Umgebung. Die offiziellen Quellen sprechen hier von einer BIOS-Boot-Partition. Wird diese Partition whrend der Grundinstallation von Arch Linux mit bercksichtigt, kann dies sehr einfach in das eigene Partitionsschema mit eingeflochten werden (siehe Kapitel: Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)). Grub2 unter einer EFI-Umgebung konnte ich noch nicht testen, um hierzu genaue Ergebnisse zu beschreiben. Die BIOS-Boot-Partition im Nachhinein zu bercksichtigen wird etwas steiniger, da vermutlich erst Platz geschaffen werden muss, um noch eine zustzliche Partition fr grub2 erstellen zu knnen. Hierfr wird vermutlich gparted helfen, welches neben dem Erstellen von Partitionen auch das Verschieben, Verkleinern und das Vergrern versteht. Zwei Projekte zu gparted habe ich im Kapitel "GPT fdisk - kurz gdisk" erwhnt, wo ich auch das Arbeiten mit gdisk beschreibe. In beiden Fllen, also whrend einer Grundinstallation von Arch Linux oder erst spter, ist darauf zu achten, dass der Partitionstyp "ef02" (bei gdisk) gewhlt wird, damit grub2 beim eigentlichen installieren diese Partition identifizieren kann.

8.7.2. Die Installation von grub2


55

Die Arch Linux-Administration

Anmerkung
Bevor grub2 installiert wird, ist es auf jeden Fall sicherer sich vorher eine Kopie der bisherigen Konfiguration von grub zu erstellen, damit im Falle eines Falles darauf zurck gegriffen werden kann. Die Installation von grub2 erfolgt als erstes mit: pacman -S grub2 Um danach den Bootloader selbst, z.B. auf die erste Festplatte im System zu installieren: grub-install /dev/sda

8.7.3. Die Konfiguration von grub2


Obwohl die Konfigurationsdatei grub.cfg im Verzeichnis /boot/grub/ manuell bearbeitet werden kann, wird ein anderer Weg zur Konfiguration dieser Datei empfohlen. Vielmehr gibt es nun Skript- und eine Konfigurations-Datei, die die verschiedenen Systeminterna bercksichtigen, um "intelligent" eine Konfigurationsdatei zu erstellen. Der Einfluss auf diese Skripte ist eigentlich sehr flexibel, allerdings kommt man nicht drum herum, auch mal manuell direkt in die Konfiguration einzugreifen. Auch wenn es nur die Neugier ist, die einem dazu verleitet ;-) Die folgenden Kapitel beschreiben eigentlich, wie ich mich Schritt fr Schritt an die Konfiguration heran gewagt habe, um so die neue Arbeitsweise von grub2 kennen zu lernen.

8.7.3.1. Die Grundkonfiguration


Mit der Installation selbst, wird eine schon funktionierende Konfigurationsdatei erstellt. Anhand dieser Datei, werden die ersten Gegebenheiten gezeigt: nano /boot/grub/grub.cfg # Config file for GRUB2 - The GNU GRand Unified Bootloader # /boot/grub/grub.cfg # DEVICE Name CONVERSIONS # # Linux Grub # ------------------------# /dev/fd0 (fd0) # /dev/sda (hd0) # /dev/sdb2 (hd1,2) # /dev/sda3 (hd0,3) # # Timeout for menu set timeout=5 # Set default boot entry as Entry 0 set default=0 # (0) Arch Linux menuentry "Arch Linux" { set root=(hd0,1) linux /vmlinuz26 root=/dev/sda1 ro initrd /kernel26.img } 56

Die Arch Linux-Administration

## (1) Windows #menuentry "Windows" { #set root=(0,3) #chainloader +1 #} Direkt im ersten Menblock, welcher spter beim Starten des Rechners als voreingestellter Menpunkt zu sehen ist, wird definiert, an welcher Stelle der Linux-Kern zu finden ist (die eigene Partition fr den Linux-Kern, die spter unter /boot eingehangen wird). Dabei wird bei der ersten Festplatte ab Null hoch gezhlt und bei der ersten Partition ab eins. Laut diesem Eintrag, wrde sich dann der Linux-Kern auf der ersten Festplatte, der ersten Partition (hd0,1) befinden. Nimmt man sich aber das Partitionsschema der Grundinstallation von Arch Linux als Beispiel vor Augen, und dann noch unter der Bercksichtung einer BIOS-Boot-Partition (Stichwort: GUID Partitionstabelle (GPT)):

Abbildung 8.2. Partitionsschema mit einer BIOS-Boot-Partition

Dann verschiebt sich das ganze Konstrukt um eine Partition. Die Festplatte bleibt gleich, nur die Partition hat sich gendert. Das Ergebnis wre dann: . . set root=(hd0,2) . . Analog zum Punkt 1, verschiebt sich ebenfalls die Partitionsreihenfolge fr die Zuordnung des Root-Verzeichnisses (root=/dev/sda1), zusammen mit der Bezeichnung des Linux-Kern-Dateinamens (vmlinuz26): . 57

Die Arch Linux-Administration

. linux /vmlinuz26 root=/dev/sda3 ro . . Sind also alle Laufwerke und Partitionen richtig bercksichtigt, kann im Prinzip mit dieser Grundkonfiguration Arch Linux gebootet werden.

8.7.3.2. Die erweiterte Konfiguration (Auflsung)


Wurde die Grundkonfiguration noch manuell direkt im Editor gendert, wird hier der erste Einfluss auf die Auflsung von grub2 selbst (grafische Konsole) und "unabhngig" der Shell, ber die erweiterten Funktionen von grub2 vorgenommen. Es wird also nicht mehr die eigentliche Konfigurationsdatei grub.cfg direkt bearbeitet, sondern die hierfr vorgesehenen Dateien zusammen mit dem Gebrauch bestimmter Programme, die als Ergebnis eine neue Grub-Konfiguration bauen. Um nun allgemein die Auflsung zu verndern, wie es damals unter grub mit dem Parameter vga (z.B. vga=792) erfolgte, wird die Datei grub im Verzeichnis /etc/default/ bearbeitet. Diese Datei ist generell wichtig, da mit ihr nicht nur das Aussehen von grub2 verndert wird.

Anmerkung
Zur Sicherheit kann ich empfehlen, eine Kopie der bestehenden Datei grub.cfg zu machen, da diese vermutlich schon prima funktioniert. nano /etc/default/grub . . # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command 'vbeinfo' GRUB_GFXMODE=1024x768x24 # Uncomment to allow the kernel use the same resolution used by grub GRUB_GFXPAYLOAD_LINUX=keep . . GRUB_CMDLINE_LINUX_DEFAULT="quiet" . . Dieser Parameter setzt die Auflsung und die Farbtiefe fr das grafische Terminal von grub2. Also die Umgebung, die nach Starten des Rechners geladen wird. Ich denke, dass hier das Prinzip nachvollziehbar ist. Sollte es Darstellungsprobleme geben, oder es wird nicht die gewhlte Auflsung angezeigt, reicht es in der Regel aus, die Farbtiefe zu entfernen und nur die Auflsung anzugeben (GRUB_GFXMODE=1024x768). An dieser Stelle wird eine Auflsung dem Kernel bergeben, also wie die sptere Shell auszusehen hat. Der Wert "keep" sagt aus, dass hier die Einstellung vom Parameter "GRUB_GFXMODE" bernommen wird. Wer eine andere Auflsung wnscht, kann hier unabhngig eine Andere whlen. Sollte der Parameter "GRUB_GFXPAYLOAD_LINUX" nicht vom System untersttzt werden, knnen alternativ mit dem Parameter "GRUB_CMDLINE_LINUX_DEFAULT" bergabewerte dem Linux-Kern bergeben werden (vga), wie es mit grub schon praktiziert wurde (als Beispiel: GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=792", 58

Die Arch Linux-Administration

um die Auflsung auf 1024x768 Bildpunkte zu setzen). Sind alle Einstellungen vorgenommen worden, muss jetzt die Datei grub.cfg generiert werden. Dies erfolgt mit dem Programm grub-mkconfig: grub-mkconfig -o /boot/grub/grub.cfg Es wird also eine neue Konfiguration generiert und das Ergebnis in die allgemein gltige grub2-Konfigurationsdatei geschrieben. Das heit, mit jeder nderung der "Umgebungsdateien" fr grub2, muss dass Programm grub-mkconfig gestartet werden, um die nderung entsprechend in die eigentliche Konfigurtaionsdatei (/boot/grub/grub.cfg) einflieen zu lassen.

8.7.3.3. Menfarben und Hintergrundbilder


Lag der Schwerpunkt im vorherigen Kapitel auf die Darstellungsauflsung, im Zusammenspiel mit den grub2-Umgebungsdateien, wird nun ber den gleichen Weg Einfluss auf die Menfarben und den Hintergrund genommen: nano /etc/default/grub . . # Uncomment to enable Hidden Menu, and optionally hide the timeout count #GRUB_HIDDEN_TIMEOUT=5 #GRUB_HIDDEN_TIMEOUT_QUIET=true . . # Uncomment and set to the desired menu colors. Used by normal and wallpaper # modes only. Entries specified as foreground/background. GRUB_COLOR_NORMAL="light-blue/black" GRUB_COLOR_HIGHLIGHT="light-cyan/blue" # Uncomment one of them for the gfx desired, a image background or a gfxtheme GRUB_BACKGROUND="/path/to/wallpaper" #GRUB_THEME="/path/to/gfxtheme" . . Soll nach dem Rechnerstart berhaupt kein Men angezeigt werden, hilft hierzu der Parameter "GRUB_HIDDEN_TIMEOUT" mit der Dauer in Sekunden, wann dann nach Ablauf der Zeit gebootet werden soll. Der Parameter "GRUB_HIDDEN_TIMEOUT_QUIET" mit der Zuweisung "true/false" ermglicht zudem die Anzeige des gesetzten Countdowns (true). Ist ein unsichtbares Men gesetzt, hat dies ebenfalls Einfluss auf eine vorhandene Hintergrundgrafik, sie wird ebenfalls nicht mit angezeigt. Men und evtl. vorhandene Hintergrundgrafik sind mit der ESC-Taste erreichbar. Mit dem Parameter "GRUB_COLOR_NORMAL" wird die Schrift- und Schrifthintergrundfarbe definiert. Desweiteren wird ber "GRUB_COLOR_HIGHLIGHT" die Farbgebung gesetzt, um einen ausgewhlten Menpunkt hervorzuheben. Folgende Tabelle zeigt fr beide Parameter die zur Auswahl stehenden Farben.

Tabelle 8.3. Grub2-Farbtabelle


Farbe 59

Die Arch Linux-Administration

black blue brown cyan dark-grey green light-blue light-cyan light-green light-grey light-magenta light-red magenta red white yellow Fr einen Bildschirmhintergrund (Wallpaper) bietet sich der Parameter "GRUB_BACKGROUND" an. Hierbei wird der komplette Pfad samt Dateiname der Grafik angegeben. Die nchste Tabelle zeigt die untersttzten Grafikformate.

Tabelle 8.4. Grub2-Grafikformate


Grafikformate PNG JPG JPEG TGA Die Grafik sollte sich an die gesetzte Auflsung mit Hilfe des Parameters "GRUB_GFXMODE" (z.B. 1024x768x24) orientieren. Das folgende Beispiel verdeutlicht die oben aufgefhrten Zusammenhnge. 1. Geplant ist ein Men zusammen mit einer Hintergrundgrafik. Daher werden die Parameter "GRUB_HIDDEN_TIMEOUT" und "GRUB_HIDDEN_TIMEOUT_QUIET" kommentiert, das Men soll sofort erscheinen. . . # Uncomment to enable Hidden Menu, and optionally hide the timeout count #GRUB_HIDDEN_TIMEOUT=5 #GRUB_HIDDEN_TIMEOUT_QUIET=true . . 2. Da das Hintergrundbild einen grauen Hintergrund hat, werden die Schriftfarben mit den Parametern "GRUB_COLOR_NORMAL" und "GRUB_COLOR_HIGHLIGHT" wie folgt belegt. . 60

Die Arch Linux-Administration

. # Uncomment and set to the desired menu colors. Used by normal and wallpaper # modes only. Entries specified as foreground/background. GRUB_COLOR_NORMAL="white/black" GRUB_COLOR_HIGHLIGHT="black/black" . . Bedingt durch den Einsatz einer Hintergrundgrafik im Zusammenspiel mit meinem Testsystem, wird der Text-Hintergrund (black) nicht bercksichtigt. Die Textfarbe ist wei, der selektierte Menpunkttext wird schwarz dargestellt. 3. Was jetzt fehlt, ist die Hintergrundgrafik. Der Ort der Datei ist eigentlich egal. In meinem Beispiel habe ich diese Datei (al_1024_768.png) im Verzeichnis wallpaper im grub2-Verzeichnis abgelegt. . . # Uncomment one of them for the gfx desired, a image background or a gfxtheme GRUB_BACKGROUND="/boot/grub/wallpaper/al_1024_768.png" #GRUB_THEME="/path/to/gfxtheme" . . 4. Zum Abschluss muss jetzt die Konfigurationsdatei mit: grub-mkconfig -o /boot/grub/grub.cfg generiert werden. Das Beispiel sollte dann nach einem Neustart wie folgt aussehen.

Abbildung 8.3. grub2 Boot-Men mit Hintergrundbild

61

Die Arch Linux-Administration

8.7.3.4. Eigene Meneintrge


Wurde in den vorherigen Kapiteln Schritt fr Schritt das Aussehen verndert, und die Meneintrge ohne eigenen Einfluss ber die Skripte erstellt, sind manchmal eigene Meneintrge z.B. fr bestimmte Einflsse in das Bootverhalten von Arch Linux notwendig. Die Skripte, die die eigene Arch Linux Umgebung ermitteln, befinden sich im Verzeichnis /etc/grub.d. Fr eigene Meneintrge ist die Datei 40_custom vorgesehen. Um jetzt konforme Eintrge zu erhalten, ohne jetzt selbst alle wichtigen Daten zu ermitteln, bedient man sich am einfachsten der schon vorhandenen grub2-Konfigurationsdatei als Vorlage und fgt deren Inhalt an die existierenden Datei 40_custom an. Danach werden alle nicht bentigten Passagen entfernt, bis nur noch die eigenen Meneintrge vorliegen. Im Folgenden die Einzelschritte:

1.

Anfgen der bestehenden grub2-Konfigurationsdatei an die Datei 40_custom: cat /boot/grub/grub.cfg >> /etc/grub.d/40_custom

2.

Anpassen der Datei bis nur noch die eigenen Eintrge vorhanden sind. Die Boot-Meneintrge werden durch das Skript 10_linux erstellt und in der grub2-Konfigurationsdatei entsprechend ausgewiesen. Somit sollten die Meneintrge schnell zu finden sein, um daraus sein eigenen Meneintrag zu erstellen: nano /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the 62

Die Arch Linux-Administration

# menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/40_custom ### menuentry 'Arch Linux (Shell)' --class archlinux --class gnu-linux --class gnu --class os { load_video set gfxpayload=keep insmod part_gpt insmod ext2 set root='(hd0,gpt2)' search --no-floppy --fs-uuid --set=root 0918dec5-f69c-4237-a282-ce36716335a4 echo 'Loading Linux vmlinuz26 ...' linux /vmlinuz26 root=/dev/disk/by-uuid/dd07a651-18bf-4d38-b9de-987297bdadc4 ro 3 echo 'Loading initial ramdisk ...' initrd /kernel26.img } ### END /etc/grub.d/40_custom ### An diese Stelle wurde der kopierte Eintrag um die eigene Bezeichnung "Arch Linux (Shell)" des Meneintrages gendert, der auch spter im grub2-Men zu sehen ist. Hier in diesem Beispiel gibt es eine kleine Ergnzung zur Bekanntmachung, welche Partition die Root-Partition ist. Nmlich der zu nutzende Runlevel (3) fr den Init-Prozess. Dieser Eintrg hat an dieser Stelle eine hhere Prioritt, als die getroffene Definition in der Datei inittab, um so ggf. grafische Login-Manager zu umgehen (siehe Kapitel: Login-Manager - Finialisierung).

8.7.3.5. Zusammenfassung
Zusammenfassend sind folgende Zusammenhnge gltig: Die eigentliche Konfigurationsdatei fr grub2 lautet grub.cfg und liegt im Verzeichnis /boot/grub. Sie sollte nicht direkt bearbeitet werden, weil mit jeder Aktion mit: grub-mkconfig -o /boot/grub/grub.cfg diese ohne Rckfragen berschrieben wird. Fr eine bergeordnete Konfiguration dient die Datei grub im Verzeichnis /etc/default. Alle hier vorhandenen Parameter haben Einfluss auf die gesamte Konfiguration. Einschlielich etwaige Parameter fr Meneintrge. Ist der Wunsch vorhanden individuelle Meneintrge zu definieren, bedient man sich der Steuerung ber Skripte im Verzeichnis /etc/grub.d, die im eigentlichen Sinn die grub2-Konfigurationsinhalte bestimmen und alle Parameter aus der Datei grub bercksichtigen. Fr eigene Zwecke, um z.B. das Bootverhalten mit bestimmte Meneintrge zu 63

Die Arch Linux-Administration

beeinflussen, die auch nicht durch die allgemeinen Konfigurationsmitteln berschrieben werden, steht die Datei 40_custom zur Verfgung.

Anmerkung
Damit sptere Aktualisierungen von grub2 die Skriptdatei 40_custom nicht berschreiben, ist es hilfreich diese vom Update-Lauf auszuklammern. Dies geschieht am einfachsten, indem man in der pacman-Konfiguration /etc/pacman.conf den kompletten Pfad samt Datei (/etc/grub.d/40_custom) dem Parameter "NoUpgrade" zuweist.

8.8. Die Systemzeit


Die Zeit in einem System wird eigentlich kaum wahr genommen. Spielt sie whrend der Installation eher eine kleinere Rolle, ist ihre Abhngigkeit bei verschiedenen Server-Diensten (z.B. bei Mail-Servern, um wichtige Zeitstempel zu setzen) um so grer. Unter Linux selbst wird zudem zwischen der Systemzeit (fr die Verwendung in der gesamten Linux-Umgebung) und der Hardware-Uhr im PC (BIOS) unterschieden. Mit jedem Boot-Vorgang von Linux, wird die Systemzeit mit der PC-Uhr abgeglichen, um ausschlielich mit ihr zu arbeiten. Linux/Unix-Systeme ohne eine Parallelinstallation von Windows verwenden UTC, also die koordinierte Weltzeit, die auch als Greenwich Mean Time bekannt ist und quasi den zeitlichen Nullpunkt der Weltzeit darstellt. Bei Verwendung von UTC, muss die Uhrzeit des Rechners (BIOS) auf die von Greenwich gestellt werden. Fr Deutschland abhngig von Winterzeit (Zentraler-Europischen-Zeit, CET) -1 oder Sommerzeit (Zentraler-Europischen-Sommer-Zeit, CEST) -2 Stunden von der aktuellen Uhrzeit. Die Uhrzeit z.B. fr Dateien und Verzeichnisse wird dann nach UTC gespeichert und dynamisch mit Hilfe der angegebenen Zeitzone (+1 oder +2 Stunden) errechnet und angezeigt. Die Zeitzone zusammen mit der Interpretation der Hardware-Uhr selbst, wird in der Konfigurationsdatei rc.conf behandelt und im Kapitel "Die deutsche Lokalisierung mit UTF-8 Untersttzung" beschrieben.

8.8.1. Setzen der Uhrzeit mit dem Befehl date


Mit dem Befehl date wird die Systemzeit (einschlielich der BIOS-Uhr vom PC) gesetzt. Wird laut Konfiguration auf UTC gebaut, reicht es aus, die aktuelle Uhrzeit als Vorlage ohne Abzug von Sommerzeit- oder Winterzeit-Stunden zu nutzen. Automatisch wird dann die Systemzeit und die PC-Uhr nach UTC (also abzglich der Sommer- oder Winterzeit-Stunden) gespeichert. Die Parameter-Kettenelemente zum Befehl date, um die Uhrzeit und das Datum in einem Schritt zu stellen lauten wie folgt: MM=Monat, DD=Tag, hh=Stunde, mm=Minute und YYYY=Jahr. Und das alles zusammen gesetzt in genau diese Reihenfolge (MMDDhhmmYYYY), wrde als Beispiel mit: date 122320002010 das Datum auf den 23.12.2010 und die Uhrzeit auf 20:00 Uhr stellen. Die Eingabe von date ohne die Angabe von Parametern gibt die Systemzeit aus; laut dem vorherigen Beispiel: Do 23. Dez 20:00:00 CET 2010 Mit der Eingabe von: date -u 64

Die Arch Linux-Administration

wird wiederum die tatschliche (BIOS) Uhrzeit nach UTC zusammen mit dem Datum angezeigt: Do 23. Dez 19:00:00 CET 2010

8.8.2. Setzen der Uhrzeit mit dem Befehl ntpdate


Um sehr genau die Uhrzeit zu stellen, kann die Hilfe eines Zeitservers in Anspruch nehmen. Hierbei wird mit Hilfe des Befehls ntpdate auf einen Zeitserver ber das Network Time Protocol (NTP) zugegriffen, der dann fast atomgenau die Uhrzeit und das Datum zurck gibt. Dabei reicht es vllig aus, eine einzelne Adresse eines bestimmten Zeitservers dem Befehl ntpdate als Parameter mit zu geben, oder die Adresse eines sogenannten NTP-Pools. Der NTP-Pool bildet hierbei einen Zusammenschluss von verschiedenen Zeitservern, um automatisch die Zugriffslast von tausenden von Zeitsuchenden zu verteilen. Auf der NTP-Pool-Projektseite (http://www.pool.ntp.org) besteht die Mglichkeit, fr seine Region die passende Pool-Adresse zu ermitteln. Die Eingabe von: ntpdate 0.de.pool.ntp.org wrde auf einen Zeitserver-Pool aus Deutschland zugreifen, um die genauen Zeitdaten zu ermitteln. Voraussetzung ist allerdings, dass auch ntpdate installiert ist.

Anmerkung
Das NTP ist evtl. bei der Konfiguration einer Firewall (Kapitel: iptables) zu bercksichtigen, damit auch der Zeitserver erreichbar ist.

8.8.2.1. Die Installation von ntpdate


Das Programm ntpdate ist im Paket ntp enthalten. Hierzu gehrt auch der Dienst ntpd, um u.a. einen eigenen Zeitserver zur Verfgung zu stellen. Installiert wird das Paket mit: pacman -S ntp

8.9. Der Umgang mit Festplatten


Die Kapitelberschrift hrt sich jetzt vielleicht etwas seltsam an. Wird dies ja expliziet schon irgend wie automatisch mit in der Grundinstallation von Arch Linux behandelt und auch beim Aufbau eines einfachen Datei-Servers kommt man an das Thema nicht vorbei. In den nchsten Kapiteln habe ich aber verschiedene Themen zusammen getragen, die so nicht direkt wrend einer Grundinstallation von Arch Linux erkennbar sind, aber im Normalbetrieb oder bei weiteren Ergnzungen ntzlich sind.

8.9.1. Festplatten mit GUID Partitionstabellen (GPT)


Beim Apple Mac schon normaler Altag, bei Windows noch ein wenig steinig und mit Linux natrlich ebenfalls mglich, ist der Einsatz der GUID Partitionstabellen (GPT). Ich bin auf das Thema gekommen, da ich an die Grenzen der klassischen Master-Boot-Record (MBR) und zugehrigen Partitionstabellen bei Festplatten grer zwei Terabyte gestoen bin. Denn genau dieser Fall (MBR) erlaubt es Festplatten bis maximal zwei Terabyte zu verwalten. Alles darber hinaus muss mit einer Alternative organisiert werden und die heit 65

Die Arch Linux-Administration

fr mich GPT als Standard. Dieser Umstieg hat aber auch zwei Seiten. Obwohl GPT BIOS-kompatibel sind, also mit aktuellen PCs genutzt werden knnen, gibt es evtl. Probleme Datentrger mit GPT als Boot-Laufwerk zu nutzen. Insbesondere fr Windows werden hier die Voraussetzungen nach oben geschraubt. Wird doch ein 64-Bit Windows (Vista, 7 oder die Server-Varianten) mit einer Hardware unter der Leitung einer EFI-Umgebung (Kein Standard-BIOS) vorausgesetzt. Worauf ich hinaus mchte ist, dass ein eventueller Parallbetrieb mit Windows im Zusammenspiel mit GPT dann genau geplant sein sollte. Windows untersttzt aber von Haus aus auch als 32 Bit Variante mit GPT versehene Festplatten, um zumindest mit ihnen als Datentrger arbeiten zu knnen. Ja und der Bootloader grub kommt vllig ins Schleudern, da er GPT nicht untersttzt, sofern Festplatten mit GPT zum Einsatz kommen, von denen auch gebootet werden soll. Hier gilt es dann ebenfalls direkt auf grub2 umzusteigen, was ebenfalls mit einigen Steinchen auf dem Weg versehen ist, da grub2 noch nicht als Bootloader wrend der Grundinstallation von Arch Linux angeboten wird. Hierbei gilt es dann einige Sonderschritte einzuplannen, die ich gesondert in einem separaten Kapitel als Ergnzung (siehe Kapitel: Ergnzungen zur Grundinstallation von Arch Linux) beschreibe. GPT knnen also mit Festplatten jenseits der Zwei-Terabyte-Grenze (einschlielich mit 4096 Byte groe Sektoren) umgehen und sind somit schon einmal zukunftssicher. Das heit natrlich nicht, dass kleinere Festplatten-Kapazitten von den Vorteilen ausgeschlossen sind. Dann wird das Sonderspiel mit klassischen primren und erweiterten Partitionen Dank der Struktur von GPT aufgehoben, es knnen maximal 128 primre Partitionen pro Festplatte angelegt werden. Und die gesamte GPT-Struktur ist auf der Festplatte gespiegelt (primre und sekundre GPT), was das Rekonstruieren von fehlerhaften Eintrgen erleichtert. Die Standard-Dateisysteme (z.B. ext2, ext3, ext4 u.s.w.) werden weiterhin untersttzt.

Anmerkung
Einen Artikel zum Thema GUID Partitionstabellen, mit mehr technischen Hintergrnden, kann man bei Wikipedia [http://de.wikipedia.org/wiki/GUID_Partition_Table] finden.

8.9.1.1. GPT fdisk - kurz gdisk


Aktuell gibt es wenige Werkzeuge, die zum Erstellen von GUID Partitionstabellen (GPT) geeignet sind. Da wre parted zu nennen, das auch mit auf den Installations-Medien von Arch Linux zu finden ist. Natrlich kann auch die grafische Variante von parted eingesetzt werden, die z.B. auf zwei unabhngige Projekte (Parted Magic [http://partedmagic.com] und Gnome Partition Editor [http://www.gparted.org/]) mit Bootmedien zu finden ist. Parted funktioniert prima, ist aber aus meiner Sicht ein wenig zu sperrig in der Bedienung. Daher habe ich mich auf GPT fdisk (gdisk) verstanden. Nicht nur, dass es von der Bedienung her sehr an fdisk erinnert und daher fr viele Anwender nicht fremd sein wird. Es hat aus meiner Sicht den Vorteil, dass auch im Nachhinein Festplatten mit gdisk konvertiert werden knnen. Die Konvertierung selbst geschieht mit der bernahme der bestehenden Daten. Generell muss ich aber erwhnen, dass dies mit Vorsicht zu genieen ist, denn in einen von drei Fllen ging dies bei mir schief.

Anmerkung
Daher hier ein Hinweis von mir, Vorsicht walten zu lassen. Denn jeder Eingriff in die Partitionsstruktur lscht Daten, daher eigene Daten vorher sichern bevor etwas 66

Die Arch Linux-Administration

verloren geht. Fdisk oder cfdisk, bestimmt aus der Grundinstallation von Arch Linux bekannt, knnen nicht mit GPT umgehen. Auch wird gdisk (noch) nicht auf den Arch Linux Installationsmedien bercksichtigt, sofern man direkt wrend einer Arch Linux Grundinstallation mit gfdisk arbeiten mchte. Dann kommt man nicht an der Netinstall-Variante von Arch Linux vorbei, weil gdisk wrend der Installation aus dem Netz nachgereicht werden muss.

8.9.1.2. Die Installation von gdisk


Die Installation von gdisk erfolgt mit: pacman -S gdisk

8.9.1.3. Das Arbeiten mit gdisk


Das Anlegen der GUID Partitionstabellen (GPT) mit gdisk geschieht mit der bergabe des entsprechenden Gertenamens der Festplatte, z.B. mit: gdisk /dev/sda Gleich zu Beginn wird automatisch auf vorhandene Partitionstabellen hin geprft. Wird ein Master-Boot-Record (MBR) einschlielich vorhandener Partitionen gefunden, kann sofort mit der Eingabe von w ein Konvertierungsvorgang gestartet werden (Hinweise hierzu sind im Kapitel GPT fdisk - kurz gdisk aufgefhrt). Eine bersicht der untersttzten Tastatur-Kommandos erfolgt u.a. mit der Eingabe des ?.

Abbildung 8.4. gdisk - Kommandoliste

67

Die Arch Linux-Administration

Im Prinzip ist das Erstellen der GPT zusammen mit den Partitionen mit wenigen Kommandos erledigt. Alle Vorgnge knnen komplett durchgefhrt werden, ohne sofort einen Einfluss auf die Festplatte zu nehmen. Erst durch den finalen Abschluss mit der Eingabe des Kommandos w, werden alle Vorgnge auf den Datentrger geschrieben. Im Folgenden erstelle ich als Beispiel eine GPT zusammen mit vier primren Partitionen, unter der Bercksichtigung des Sektor-Alignments fr Festplatten, die intern mit 4096 Bytes pro Sektor arbeiten:

1. 2.

Als erstes wird eine leere GPT mit dem Eingabe-Kommando o erstellt. Fr eine bersicht der erstellten GPT gilt das Kommando p. Besonders interessant ist der Hinweis, dass das Sektor-Alignment ab dem Sektor 2048 erfolgt. Dies ist der Standardwert von gdisk. Wer einen anderen Wert bevorzugt, muss dazu in das Experten-Men mit dem Kommando x springen, um dort den Alignment-Wert mit dem Kommando l zu ndern. Ich habe gute Erfahrungen mit diesem Wert (2048) gesammelt, zumal die Festplattenhersteller ebenfalls diesen Wert bevorzugen. Daher nehme ich keine nderung vor.

3.

Die folgenden Schritte wiederholen sich enstprechend der Anzahl der zu erstellenden Partitionen. In meinem Beispiel also vier mal. Vorschlagswerte von gdisk sind einfach mit der Enter-Taste zu bernehmen.

1.

Eine neue Partition wird mit dem Kommando n erstellt. Die fortlaufende Partitionsnummer wird automatisch von gdisk vorgeschlagen.

2.

Dann wird nach dem Start-Sektor gefragt. Am Anfang wird zwar der Start-Sektor mit 34 vorgegeben, eine Plausibilittsprfung zum definierten Sektor-Alignment (2048) wird aber erst nach einer Besttigung mit der Enter-Taste automatisch bercksichtigt. Der eingegebene Start-Wert wird dann laut Alignment-Definition gendert. Natrlich kann auch direkt der Wert mit 2048 eingegeben werden. Ansonsten kann ich mit jeder nchsten Partition empfehlen, den Vorschlagswert von gdisk zu bernehmen.

3.

Der End-Sektor braucht nicht in der Sektor-Gre eingegeben zu werden. Zum Glck funktioniert die Eingabe eines Wertes zusammen mit der Einheit in Kilobyte (k), Megabyte (m), Gigabyte (g), Terabyte (t) oder Petabyte (p). Zu beachten ist, dass vor dem Wert zusammen mit der Einheit ein Pluszeichen vorangestellt wird, um gdisk mitzuteilen, dass die angegebene Gre angefgt werden soll. Hier als Beispiel +2g, um eine zwei Gigabyte groe Partition zu erstellen. Um bei der letzten Partition, den restlichen zur Verfgung stehenden Platz der Festplatte in Anspruch nehmen zu knnen, reicht die einfache bernahme des Vorschlagwertes.

4.

Zur bestimmung des Partitionstyps, wird hier ebenfalls ein Vorschlag unterbreitet. Gngig sind die Werte 0700 (Linux) und 8200 (Linux Swap). Fr eine BIOS-Boot-Partition (siehe Kapitel: Der Bootloader grub2) der Wert ef02. Eine Liste weiterer Typen wird mit dem Kommando l an dieser Stelle ausgegeben.

4.

Sind alle Partitionen angelegt, kann ich einen erneuten berblick mit dem Kommando 68

Die Arch Linux-Administration

p empfehlen.

Abbildung 8.5. gdisk - Partitionen

Sollte sich ein Fehler eingeschlichen haben, kann die entsprechende Partition mit dem Kommando d wieder gelscht werden. Um allerdings bei Grennderungen keine Lcken zu hinterlassen, sollten erst alle Folgepartitionen einschlielich der betroffenen Partition gelscht werden, um dann wieder nahtlos von vorne zu beginnen. 5. 6. Das finale Schreiben der gewnschten Struktur, erfolgt mit dem Kommando w. Mit dem Kommando q wird gdisk verlassen.

Anmerkung
Bedingt durch den Generationswechsel der Festplatten mit 4096 Bytes pro Sektor, setzen einige Hersteller auf einen Kompatibilittsmodus, um Programme weiterhin 512 Bytes vorzugaukeln. Obwohl intern mit 4096 Bytes gearbeitet wird. Daher zeigt gdisk in diesem Fall ebenfalls 512 Bytes pro Sektor in der bersicht mit dem Kommando p an.

8.9.2. Der Einsatz von Dateisystemen


Wurden die Partitionen mit cfdisk, fdisk oder gdisk angelegt, ist es wichtig diese mit dem gewnschten Dateisystem zu formatieren. Es werden einige Dateisysteme angeboten, aber wie ich es schon zur Grundinstallation erwhnt habe, sind die Second- und Third-Extended-Filesysteme (Ext2 und Ext3) bzw. das Fourth-Extended-Filesystem (Ext4) die Gebruchslichsten. Eine Formatierung erfolgt ausschlielich im nicht eingehangenen Zustand (Beispiel: 69

Die Arch Linux-Administration

umount /dev/sdb1). Die folgende Tabelle zeigt einige Beipiele auf, wobei die eingesetzten Parameter untereinander funktionieren:

Tabelle 8.5. Dateisystem-bersicht


Befehl mkfs.ext2 -c /dev/sda1 Kurzbeschreibung Formatiert die erste Partition des ersten Laufwerkes mit dem ext2 Dateisystem. Der Parameter -c aktiviert die vorherige Prfung des Datentrgers auf schlechte Datenblcke. Formatiert die erste Partition des ersten Laufwerkes mit dem ext3 Dateisystem und bindet die Nutzung eines Journales gleich mit ein. Formatiert die erste Partition des ersten Laufwerkes mit der Weiterentwicklung von ext3, dem ext4 Dateisystem und bindet die Nutzung eines Journales gleich mit ein. Formatiert die erste Partition des ersten Laufwerkes mit dem ext4 Dateisystem. Obwohl mkfs.ext(3/4) schon abhngig der Partitionsgre optimiert an den Einstellungen schraubt, erzwingt der Parameter -T zusammen mit der Angabe "largefile4" eine Optimierung zu Gunsten von berwiegend groen Dateien (vier Megabyte), die sich spter auf dem Datentrger befinden werden. Die Angabe "largefile" zum Parameter -T, geht durchschnittlich von einen Megabyte groen Dateien aus.

mkfs.ext3 /dev/sda1

mkfs.ext4 /dev/sda1

mkfs.ext4 -T largefile4 /dev/sda1

Anmerkung
Werden die Laufwerke spter in der fstab-Datei bercksichtigt, ist ebenfalls darauf zu achten, das entsprechende Dateisystem mit anzugeben (siehe Kapitel: UUIDs in der Datei fstab zur Veranschauung).

8.9.3. Das Arbeiten mit UUIDs


Universally Unique Identifier kurz UUID ist ein Standard, um eine Eindeutigkeit in verschiedenen Bereichen herzustellen. Insbesondere bei der Zuordnung von Festplatten und Partitionen ist der Einsatz einfach nachvollziehbar. Sind z.B. im System zwei Festplatten-Controller unterschiedlicher Typen und/oder Hersteller im Betrieb, kann vor und wrend des Bootvorganges nicht bestimmt werden, welcher Treiber zum passenden Controller zuerst geladen werden soll. Der Effekt ist, dass wrend einer Installation /dev/sda1 als Gertenamen zwar zur gerade gewhlten Partition gehrt, dann aber beim nchsten Booten der Festplatte am anderen Controller zugewiesen wird, und das Ganze im zuflligen Wechsel mit jedem neuen Bootvorgang. Hierbei wrde Linux im unglcklichsten Fall nicht mehr die Systempartition finden knnen und den Boot-Vorgang mit einem Fehler quittieren. Man msste also in diesem konkreten Beispiel so oft erneut booten, bis die Hardware-Erkennung die ursprngliche Controller-Reihenfolge und somit das Laden des 70

Die Arch Linux-Administration

passenden Treibers trifft. Mit Hilfe der UUIDs bekommt jede Partition einmalig eine eindeutige unabhngige technische Identifikation errechnet (z.B. UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816). Diese Identitt ist einmalig vergeben und hilft genau bei Problemen, wie ich es beim Beispiel mit den unterschiedlichen Festplatten-Controllern selber erfahren habe. Die UUIDs zu Partitionen lassen sich mit dem Befehl blkid ausgeben: blkid Analog zum Installationbeispiel aus der Arch Linux Grundinstallation, zeigt die folgende Abbildung, was genau der Befehl ausgibt.

Abbildung 8.6. UUIDs von Partitionen

Sehr schn zu sehen ist die Gegenberstellung von Gerteschreibweise und passender UUID. Wie geschrieben, sind UUIDs einmalig. Alle hier gezeigten Beispiele, drfen sich also nicht mit Ihren eigenen Ausgaben wiederholen. Der Einsatz der UUIDs sollte entsprechend konsequent in allen Konfigurations-Dateien vorgenommen werden, wo geziehlt auf Partitionen einfluss genommen wird. Damit die Arbeit nicht ganz so umstndlich wird, also vorher das Abschreiben der UUIDs auf einen Zettel notwendig ist, kann die Ausgabe von blkid anstelle auf dem Bildschirm auch direkt an die jeweilge Ziel-Datei "angefgt" werden. Z.B. mit: blkid >> /etc/fstab wird die Ausgabe an die Datei fstab angefgt. Man braucht also nur noch im Editor die UUIDs zu kopieren und an passender Stelle einzufgen.

8.9.3.1. UUIDs in der Datei fstab


Die Datei fstab ist in der Hinsicht wichtig, da mit ihr whrend der Boot-Phase alle Laufwerke und Partitionen in das System eingebunden werden. Fr den Vergleich, zwischen der Gerte- und UUID-Schreibweise, habe ich im folgenden Beispiel die "alten" Eintrge stehen gelassen, aber dafr auskommentiert. # # /etc/fstab: static file # # <file system> <dir> none /dev/pts none /dev/shm system information <type> devpts tmpfs <options> defaults defaults <dump> <pass> 0 0 0 0 0 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide /dev/dvd /media/dvd auto ro,user,noauto,unhide 0

#/dev/sda1 /boot ext2 defaults 0 1 UUID=20a01a55-0c58-4a14-a5eb-d7bb3b3d9894 /boot ext2 defaults 0 1 71

Die Arch Linux-Administration

#/dev/sda2 / ext3 defaults 0 1 UUID=26376b5f-3af8-472e-99fb-e85887694026 / ext4 defaults 0 1 #/dev/sda3 swap swap defaults 0 0 UUID=d3f95e73-ec00-4b1d-9f99-3e6a618cfa7f swap swap defaults 0 0 #/dev/sda4 /home ext3 defaults 0 1 UUID=fdb9d5b4-0414-4358-987c-aec1d6ea00dd / ext4 defaults 0 1

8.9.3.2. UUIDs in der Konfiguration von grub und grub2


Der Bootloader grub selbst kann ebenfalls mit UUIDs umgehen. In der folgenden Konfiguationsdatei menu.lst von grub, ist der Einsatz gut zu erkennen. Wie im vorherigen Kapitel lasse ich beide Schreibweisen stehen, kommentiere aber die Gerteschreibweise aus. # (0) Archlinux title Archlinux root (hd0,0) #kernel /vmlinuz26 root=/dev/sda2 vga=775 ro kernel /vmlinuz26 root=/dev/disk/by-uuid/==> ==>26376b5f-3af8-472e-99fb-e85887694026 vga=775 ro initrd /kernel26.img Bei grub2 wird automatisch die Untersttzung von UUIDs mit bercksichtigt. Eine manuelle Anpassung ist nur in Ausnahmefllen notwendig.

72

Teil III. Anwendungsbereiche

Inhaltsverzeichnis
9. Der eigene Arbeitsplatzrechner ..................................................................... 75 9.1. X.org ........................................................................................ 75 9.1.1. Die Installation von X.org ........................................................ 75 9.1.2. Die Konfiguration der X.org-Umgebung .................................... 78 9.1.3. Stapellauf .............................................................................. 81 9.2. Die Desktop-Umgebung ............................................................. 82 9.2.1. Die Gnome-Installation ........................................................... 82 9.2.2. Die KDE-Installation ............................................................... 83 9.2.3. Die Xfce-Installation ................................................................ 84 9.3. Starten der Desktop-Umgebungen ............................................. 85 9.3.1. startx ..................................................................................... 86 9.3.2. Login-Manager ....................................................................... 87 10. Ein einfacher Dateiserver ............................................................................ 91 10.1. Die Serverausstattung ............................................................. 91 10.1.1. Eine Festplatte im System ..................................................... 91 10.1.2. Mehrere Festplatten im System ............................................. 92 10.2. Die notwendigen und hilfreichen Softwarepakete ....................... 95

74

Kapitel 9. Der eigene Arbeitsplatzrechner


Ist die Installation von Arch Linux abgeschlossen, stehen nun verschiedene Wege frei zur Verfgung. Einerseits weiter zu machen, um evtl. einen Datei-, Web- oder Mail-Server auf Shell-Ebene zu bauen oder fr dieses Kapitel wichtig fr die tgliche Arbeit lieber mit einer grafischen Desktop-Umgebung zu arbeiten. Arch Linux stellt keine Vorgaben auf. Es liegt einem vllig frei, ob spter Gnome, KDE oder eine andere Desktop-Umgebung Einsatz findet. In den folgenden Kapiteln mchte ich beschreiben, welche Bausteine notwendig sind, um ein grafisches Fensterwerk fr den eigenen Arbeitsplatzrechner aufzubauen. Dabei ist es Hilfreich die Kapitel in der Reihenfolge zu bercksichtigen, wie sie hier zur Verfgung stehen.

9.1. X.org
Aktuell als Quasistandard, bildet das X-Window-System (XWS) der X.org Foundation die Grundlage fr eine grafische Benutzeroberflche. Wer noch nie direkt mit dem XWS zu tun hatte, und nun die Installation von Arch Linux hinter sich gebracht hat, wird vermutlich direkt das Bild von Gnome, KDE oder einer anderen Benutzeroberflche vor Augen haben. Das aber eine Schicht darunter, ein sogenanntes X-Window-System seine Arbeit verrichtet, um genau fr diese grafischen Benutzeroberflchen die Grundlage zu bilden, fllt in der Regel unter den Tisch. Nicht nur zum Verstndnis, auch aus technischer Sicht ist es notwendig, erst mit der Installation und Konfiguration des XWS zu beginnen.

Anmerkung
Fr die sptere Konfiguration, beziehe ich mich auf eine Umgebung, die sich ausschlielich auf frei und "offen" zur Verfgung stehenden Grafiktreibern bezieht, um eine optimale Integration in das Linux-System zu gewhrleisten. Von vielen Herstellern werden "geschlossene" Treiber zur Verfgung gestellt, die zwar ein Optimum der Grafikleistleistung zeigen (insbesondere bei der 3D-Leistung), aber nicht immer eine weitere Kompatibilitt in anderen Bereichen untersttzen. Fr den Groteil der verschiedenen Installationen sollte man sich als root angemeldet haben, um die notwendigen Berechtigungen zu erhalten.

9.1.1. Die Installation von X.org


Das gesamte Projekt ist Modular aufgebaut und besitzt bergeordnet eine Versionsnummer in der Form wie z.B. X11R7.6 . Zu den Modulen gehren fr eine Standardinstallation der X.org-Server kurz X-Server, welcher fr den Dialog mit dem Linux-Kern, aber auch fr den direkten Zugriff auf die Grafikkarte zustndig ist. Daneben gibt es einen Window-Manager, der in Zusammenarbeit mit dem X-Server die eigentlichen spteren Fenster "zeichnet" und verwaltet. Aber auch die freien Grafikkartentreiber, Zusatzprogramme und Zeichenfonts sind Bestandteil des gesamten Pakets. Eine bersicht verschafft die Tabelle unter: http://wiki.x.org/wiki/Releases/ModuleVersions.

9.1.1.1. Die Installation des X-Servers


75

Der eigene Arbeitsplatzrechner

Der wohl wichtigste Teil der Umgebung ist der X-Server selbst. Die Installation desselben zusammen mit Initialisierungswerkzeugen und einfachen Programmen erfolgt mit: pacman -S xorg-server pacman -S xorg-server-utils pacman -S xorg-xinit pacman -S xorg-utils pacman -S xorg-twm pacman -S xorg-xclock pacman -S xterm

9.1.1.2. Der Grafikkartentreiber


Der zweite wichtige Teil ist die Wahl des richtigen Treibers fr die verwendete Grafikkarte. Wenn man sich nicht sicher ist, welche Grafikkarte verbaut wurde, reicht in der Regel die Ausgabe der Gerte am PCI-Bus mit Hilfe des Befehls lspci: lspci Als Beispiel die Ausgabe wie: "VGA compatible controller: nVidia Corporation ION VGA (rev b1)", gibt den Hersteller und Typ des eingesetzten Grafikprozessors wieder. Mittlerweile bieten sich mehr oder weniger zwei drei Hersteller ein Kopf an Kopf Rennen, mit entsprechend groen Verbreitungsgrad, so dass mit groer Wahrscheinlichkeit eine der folgenden Treiberinstallationen auch fr Ihre Umgebung zutreffen wird: AMD (ATI) - Fr Grafikchips von AMD (frher ATI) gibt es einen passenden Treiber: pacman -S xf86-video-ati pacman -S ati-dri Intel - Fr Grafikkarten mit einer Intel-Umgebung wird der Treiber mit folgender Eingabe installiert: pacman -S xf86-video-intel pacman -S intel-dri nVidia - Auch fr nVidia steht ein Open-Source Treiber mit der Bezeichnung "Nouveau" zur Verfgung. Mit folgender Eingabe wird dieser installiert: pacman -S xf86-video-nouveau pacman -S nouveau-dri

76

Der eigene Arbeitsplatzrechner

Vesa - Dieser Treiber, zum gleichnamigen Video-Standard, stellt Grundfunktionen bereit, die von vielen (alten) Grafikchips untersttzt werden. pacman -S xf86-video-vesa

definierte

Da einige Grafikchips auch eine 3D-Untersttzung besitzen, wird bei den oben aufgefhrten Treibern der passende Mesa-DRI-Treiber gleich mit installiert. Bei Mesa handelt es sich um eine Open-Source OpenGL Implementation zusammen mit der Direct Rendering Infrastructure (DRI), als Schnittstellenerweiterung fr den X-Server, zur direkten Ansteuerung der Grafikhardware im 3D-Bereich. Daher werden zum Treiber selbst die notwendigen Bibliotheken ebenfalls bentigt und installiert: pacman -S libgl pacman -S mesa Sollte die Ausgabe von lspci einen anderen Hersteller auflisten, hilft die Liste aller zur Verfgung stehenden Grafiktreibern, um sich den Passenden heraus zu suchen. Folgende Eingabe bereitet die Liste auf: pacman -Ss xf86-video | less Ist der passende Treiber gefunden und nach dem gleichen Muster wie bei der AMD/Intel/nVidia-Umgebung installiert: pacman -S xf86-video-meineGrafikkarte kann es gleich mit der Suche nach der passenden Mesa/DRI-Erweiterung weiter gehen: pacman -Ss mesa | less Sollte kein Name wie z.B. meineGrafikkarte-dri aufgefhrt sein, wird entweder noch kein passender Treiber angeboten oder es fehlt die 3D-Untersttzung bei der eingesetzten Grafikkarte.

Anmerkung
Es ist zu empfehlen, vorher die Grafikkartenumgebung zu installieren, bevor es mit der Konfiguration weiter geht. Denn die automatische Generierung der Konfigurationsdatei fr den X-Server bindet die passenden Eintrge nur dann ein, wenn vorher die richtigen Treiber installiert wurden.

9.1.1.3. Schriften
Schriften (Fonts) sind wichtig, um auch auf grafischer Ebene ein gewohntes Schriftbild zu erhalten. Fr den Standardfall sind folgende Schriften zu installieren: pacman -S xorg-fonts-75dpi pacman -S xorg-fonts-100dpi pacman -S xorg-fonts-type1 Danach fr den tglich Einsatz: 77

Der eigene Arbeitsplatzrechner

pacman -S ttf-dejavu pacman -S ttf-inconsolata pacman -S ttf-liberation

9.1.2. Die Konfiguration der X.org-Umgebung


Ist die Installation der notwendigen Module aus den vorherigen Kapiteln abgeschlossen, steht der Konfiguration nichts im Wege. Eigentlich wird alles soweit automatisch erkannt und man bruchte keine Konfigurationsdateien, z.B. fr den X-Server zu erstellen. Aber wie so oft, liegt es an einigen Details, um dennoch an einigen Stellen "schrauben" zu mssen. Besonders in diesem Stadium, sollten alle mglichen Voraussetzungen stimmen, bevor es zur finalen Installation der gewnschten grafischen Benutzeroberflche geht.

9.1.2.1. Notwendige Dienste


Fr den spteren Solostart (Stapellauf) des X-Window-Systems (XWS) und spter zusammen mit der Desktop-Umgebung, ist die Hardware-Erkennung und die Systemintegration wichtig. Aber auch Dialoge zwischen Hard- und Software, mssen gesteuert werden. Im Folgenden werden die notwendigen Dienste beschrieben, die es zu installieren und zu konfigurieren gilt. Fr die Einbindung dieser in den Systemstart, mit einem Zusatzeintrag in der Datei rc.conf im Bereich Daemons, ist evtl. ein Blick in die Administration von Arch Linux (siehe Kapitel: Die Dienste) hilfreich.

9.1.2.1.1. Der Dienst D-Bus


Der Dienst D-Bus (dbus) ist fr eine standardisierte Kommunikation zwischen erkannter Hard- und Software zustndig. Mit der Installation des X-Servers wurde auch gleich D-Bus mit installiert. Es fehlt die Einbindung in den Systemstart, der mit einem Zusatzeintrag in die Datei rc.conf im Bereich Daemons erfolgt: nano /etc/rc.conf # # -----------------------------------------------------------------------# DAEMONS # -----------------------------------------------------------------------# # Daemons to start at boot-up (in this order) # - prefix a daemon with a ! to disable it # - prefix a daemon with a @ to start it up in the background # # If something other takes care of your hardware clock (ntpd, dualboot ...) # you should disable 'hwclock' here. # DAEMONS=(hwclock syslog-ng network netfs crond dbus)

9.1.2.1.2. Der Dienst ACPID


Das Advanced-Configuration-and-Power-Interface kurz ACPI, ist fr die standardisierte Energieverwaltung der entsprechenden Hardware zustndig. Einfach installiert wird dieser Dienst mit: 78

Der eigene Arbeitsplatzrechner

pacman -S acpid um spter beim Systemstart mit der vorherigen Bearbeitung der Datei rc.conf (Bereich Daemons): nano /etc/rc.conf # # -----------------------------------------------------------------------# DAEMONS # -----------------------------------------------------------------------# # Daemons to start at boot-up (in this order) # - prefix a daemon with a ! to disable it # - prefix a daemon with a @ to start it up in the background # # If something other takes care of your hardware clock (ntpd, dualboot ...) # you should disable 'hwclock' here. # DAEMONS=(hwclock syslog-ng network netfs crond dbus acpid) bereit zu stehen.

9.1.2.2. Notwendige Konfigurationsdateien


Die Erkennung der vorhandenen Gerte erfolgt berwiegend automatisch mit Untersttzung des Dienstes udev, welcher beim Starten und im Betrieb angesteckte Gerte erkennt (Hotpluggin) und dem Linux System bekannt gibt. Bei xorg wohl am wichtigsten, gehren dazu die Grafikkarte und die Eingabegerte, zu denen im einfachsten Fall die Tastatur und auch die Maus gehren. Jeder dieser Eingabegerte unterliegt aber einer bestimmten Annahme. Bei der Tastatur ist es z.B. ein deutsches Tastaturlayout, bei der Maus evtl. die Untersttzung von mehr als drei Maustasten u.s.w. . Um genau diese Annahmen zu erfllen, sind bestimmte Konfigurationsdateien notwendig. Diese Dateien werden einzeln fr sich in das Verzeichnis /etc/X11/xorg.conf.d/ geschrieben und besitzen als Suffix ein ".conf". Die Verarbeitung der Dateien durch den X-Server, erfolgt sequenziell auf Basis der Dateinamen. Daher beginnen diese i.d.R. mit Ziffern; die Beispiele in den nchsten Kapitel verdeutlichen das Schema. Damit aber auch die richtigen Eintrge gewhlt und in die entsprechenden Konfigurationsdateien geschrieben werden, gibt es die Mglichkeit, sich der automatischen Erkennung und Erstellung einer Hauptkonfigurationsdatei zu bedienen. Die Eingabe von (achtung groes "X"): X -configure erstellt im Verzeichnis /root (die Anmeldung als root ist hier Vorraussetzung) eine gesamtheitliche Konfigurationsdatei, mit dem Namen xorg.conf.new . Diese eine Datei war frher der Weg, um xorg zu konfigurieren, bis das Projekt sich entschloss, die Aufsplittung vorzunehmen. Nun aber in diesem Fall eine Hilfe, wie in den folgenden Kapiteln gezeigt wird.

9.1.2.2.1. Einbinden des Grafikkartentreibers


Wurde erfolgreich die gesamtheitliche Konfigurationsdatei durch die automatische Erkennung (siehe Kapitel: Notwendige Konfigurationsdateien) erstellt, wird diese einfach in das Zielverzeichns mit neuen Namen kopiert: 79

Der eigene Arbeitsplatzrechner

cp /root/xorg.conf.new /etx/X11/xorg.conf.d/20-grafikkarte.conf Anschlieend werden alle Eintrge, bis auf die Wichtigen fr die Grafikkarte, aus dieser Datei gelscht. nano /etx/X11/xorg.conf.d/20-grafikkarte.conf Am Beispiel einer nVidia-Umgebung mit installiertem Nouveau-Treiber, sollte dann die neue Konfigurationsdatei wie folgt aussehen: # Grafikkarten-Treiber nouveau fuer eine nVidia-Umgebung Section "Device" ### Avaible Driver options are:### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz", ### <percent>: "<f>%" ### [arg]: arg optional #Option "SWcursor" # [<bool>] #Option "HWcursor" # [<bool>] #Option "NoAccel" # [<bool>] #Option "ShadowFB" # [<bool>] #Option "VideoKey" # <i> #Option "WrappedFB" # [<bool>] #Option "GLXVBlank" # [<bool>] #Option "ZaphodHeads" # <string> #Option "PageFlip" # [<bool>] Identifier "Card0" Driver "nouveau" BusID "PCI:3:0:0" EndSection Die Anzahl der notwendigen Optionen und mglichen Parameter hngt von der eingesetzen Grafikkarte ab.

9.1.2.2.2. Ein Tastaturlayout fr die eigene Lokalisierung


Bei der Tastatur (und weiteren Eingabegerten) funktioniert der Weg leider nur eingeschrnkt, die Vorgaben aus der automatisch erstellten Datei xorg.conf.new zu entnehmen (wichtige Optionen knnen aber bernommen werden). Vielmehr werden nun Eingabegerte in Gruppen (Klassen) zugeordnet, auf die im Einzelnen dann eingegangen wird. Um nun ein deutsches Layout der hoffentlich schon erkannten Tastatur zuzuordnen, wird folgende Datei bentigt: nano /etx/X11/xorg.conf.d/20-tastatur.conf # Deutsches Tastaturlayout Section "InputClass" Identifier "keyboard" MatchIsKeyboard "yes" Option "XkbLayout" "de" #Option "XkbVariant" "nodeadkeys" EndSection Das Prinzip ist i.d.R. immer das Gleiche. Als erstes wird Bezug zu einer Eingabeklasse (InputClass) genommen. Um alle Eingabegerte bis auf die Tastatur ausschlieen zu knnen, erfolgt die Identifizierung auf Tastaturen (keyboard) zusammen mit der Klausel "MatchIsKeyboard" mit "yes". Danach werden dann die passenden Optionen, wie in diesem Fall ein deutsches Tastaturlayout gesetzt. Weitere Infos findet man u.a. im Ubuntu-Wiki zur Konfiguration der Eingabegerte mit xorg.conf.d-Dateien (siehe Link: 80

Der eigene Arbeitsplatzrechner

Ubuntu-Wiki [http://wiki.ubuntuusers.de/xorg.conf.d]).

9.1.3. Stapellauf
Wurde die Installation (siehe Kapitel: Die Installaion von X.org) von xorg zusammen mit notwendigen Konfigurationen (siehe Kapitel: Die Konfiguration der X.org-Umgebung) abgeschlossen, steht einem ersten Stapellauf eigentlich nichts mehr im Weg. Der erste Lauf zeigt eigentlich, ob alles soweit richtig installiert und konfiguriert wurde. Bevor es aber los geht, hilft ein Neustart des Rechners, um sicher zu gehen, dass alle neu eingerichteten Dienste auch wirklich gestartet wurden. Auch die Anmeldung als root ist hier im ersten Schritt erforderlich. Die Eingabe von: startx initialisiert und startet den X-Server. Alle notwendigen Treiber und Bibliotheken werden automatisch gesucht und geladen. Danach wird der minimalistisch wirkende Window-Manager twm gestartet, um gleich zwei drei Terminalfenster und ein Fenster mit einer Uhr zu zeigen. Ist dies geglckt, ist man schon ber den Berg. Beendet wird der X-Server durch die Eingabe von "exit" im ersten groen Terminal-Fenster.

Abbildung 9.1. Window-Manager twm

Anmerkung
Im Installationskapitel wurde ja schon darauf hingewiesen, dass xorg modular aufgebaut ist. Hinzu kommt die freie Wahl eines Window-Managers, als Verwalter fr die eigentlichen Fenster. Gnome und KDE, um mal zwei der bekanntesten groen Desktop-Umgebungen zu nennen, nutzen ihre eigenen Window-Manager 81

Der eigene Arbeitsplatzrechner

(Metacity und Kwin). Es gibt eine Vielzahl von freien Window-Managern (siehe Link: Window Manager for X [http://wiki.ubuntuusers.de/xorg.conf.d]), die fr jeden Geschmack und Notwendigkeit zur Verfgung stehen. Das macht u.a. die Flexibilitt von Linux aus. Der bergang zur kompletten Desktop-Umgebung erfolgt aus meiner Sicht, wenn zusammen mit dem Window-Manager ein komplettes Paket aus einem einheitlichem Design, Technik (Benutzerschnittstelle) und Anwendungsprogrammen zur Verfgung gestellt werden. Aber was ist, wenn der Startvorgang abgebrochen wurde. Interessant wird dann die Ausgabe von Fehlern und Warnungen aus dem xorg-Protokoll auszuwerten. Der Gebrauch des Befehls grep dient genau zu diesem Zweck, um aus Textdateien, die notwendigen Informationen heraus zu schneiden. Fehler werden im xorg-Protokoll pro Zeile mit einem "EE" und Warnungen mit einem "WW" vorangestellt. Die folgende Eingabe nimmt davon Gebrauch: grep -e EE -e WW /var/log/Xorg.0.log und extrahiert aus der Logbuchdatei die Fehler und Warnungen, um z.B. auf fehlende Komponenten zur Grafikkarte oder Bibliotheken hinzuweisen.

9.2. Die Desktop-Umgebung


Es gibt eine ganze Reihe von Desktop-Umgebungen, die Ihre Vor- und Nachteile haben, was auch stark vom eigenen Geschmack bzw. der Arbeitsweise abhngt. Da der Bekanntheitsgrad besonders bei zwei dieser Kandidaten (Gnome und KDE) sehr gro ist, mchte ich diese einschlielich einer evtl. weniger bekannten Umgebung (Xfce) mit einbeziehen. Ich bercksichtige hierbei alle zur Verfgung stehenden Programme (Anwendungen und Werkzeuge) zur jeweiligen Desktop-Umgebung. So kann jeder erst einmal selbst die Erfahrungen sammeln, was bentigt wird oder nicht.

Anmerkung
Die Parallelinstallation von unterschiedlichen Desktop-Umgebungen funktioniert nur eingeschrnkt. Es kann also der Fall sein, dass z.B. Gnome und Xfce zusammen existieren drfen. Aber eine Koexistenz unterschiedlicher Versionen einer Desktop-Umgebung, z.B. bei Gnome 2 mit Gnome 3, Probleme bereitet. Voraussetzung fr die Installation ist wie meistens die Anmeldung als root.

9.2.1. Die Gnome-Installation


Abbildung 9.2. Gnome

82

Der eigene Arbeitsplatzrechner

Gnome wird mit wenigen Schritten installiert. Hierzu reichen folgende Eingaben. Als erstes fr die Grundumgebung: pacman -S gnome Pacman wird hierzu eine Auflistung aller in Gruppen zugeordnete Pakete bekannt geben. Ich kann fr den Anfang empfehlen, alle Pakete zu installieren, was auch die Voreinstellung bei der Abfrage ist. Diese wird einfach mit Enter besttigt. Danach erfolgt die Installation der Systemverwaltungswerkzeuge mit: pacman -S gnome-system-tools Die Grundausstattung mit den ersten Programmen fr Gnome wird mit: pacman -S gnome-extra installiert.

9.2.2. Die KDE-Installation


Abbildung 9.3. KDE

83

Der eigene Arbeitsplatzrechner

Die Installation von KDE erfolgt ebenfalls einfach, wie bei Gnome. Mit der folgenden Installationsanweisung wird die gesamte KDE-Umgebung bercksichtigt: pacman -S kde gefolgt von der deutschen Lokalisierung: pacman -S kde-l10n-de

9.2.3. Die Xfce-Installation


Abbildung 9.4. Xfce

84

Der eigene Arbeitsplatzrechner

Xfce hat den Ruf, zu den leichtgewichtigen Desktop-Umgebungen zu gehren. Was sich nicht auf einen Programmumfang, sondern eher auf den Resourcen schonenden Umgang mit dem System bezieht, so dass auch ltere PCs auf eine grafische Umgebung nicht verzichten brauchen. Installiert wird Xfce in wenigen Schritten, unter Bercksichtigung der gesamten Umgebung mit: pacman -S xfce4 Weitere Extras werden mit: pacman -S xfce4-goodies hinzugefgt.

9.3. Starten der Desktop-Umgebungen


Es gibt verschiedene Mglichkeiten die Desktop-Umgebung seiner Wahl zu starten. Einmal mit dem Befehl startx, vielleicht schon bekannt durch den Stapellauf der X.org-Umgebung (siehe Kapitel: X.org Stapellauf). Oder mit Hilfe eines Login-Managers. Beide Varianten werden in den folgenden Kapiteln beschrieben.

Anmerkung
Der Benutzer root sollte am besten garnicht mit einer Destop-Umgebung arbeiten, um die Angriffsflche so klein wie mglich zu halten. Bedenkt man, dass eine Desktop-Umgebung aus vielen Programm-Modulen besteht, ist es fr einen Angreifer am einfachsten, ber einen Fehler an root-Rechten zu gelangen, wenn dieser gleich schon angemeldet ist. 85

Der eigene Arbeitsplatzrechner

9.3.1. startx
Die Mglichkeit mit startx den Desktop zu starten, wrde ich vorziehen, bevor ein Login-Manager zum Einsatz kommt. Denn so knnen noch etwaige Fehler erkannt und beseitigt werden, bevor eine weitere Fehlerquelle (der Login-Manager selbst) dazu kommt. Fr eine startx-Umgebung bedient man sich den voreingestellten Skripten und kopiert sich diese in sein Benutzerverzeichnis, sofern dies nicht schon beim Anlegen des Benutzers passiert ist. Voraussetzung ist diesmal die Anmeldung mit seinem Benutzername und nicht als root: cp /etc/skel/.xinitrc ~ Danach wird diese Datei fr seine Desktop-Umgebung angepasst: nano ~/.xinitrc #!/bin/sh # # ~/.xinitrc # # Executed by startx (run your window manager from here) if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi exec ck-launch-session dbus-launch --exit-with-session gnome-session # exec ck-launch-session dbus-launch --exit-with-session startkde # exec ck-launch-session dbus-launch --exit-with-session startxfce4 # ...or the Window Manager of your choice Ab diese Stelle, wird das Ausfhren der Desktop-Umgebung gesteuert. Hier am Beispiel von Gnome. Im Prinzip sehen die Eintrge fast alle gleich aus und steuern vorweg: Mit ck-launch-session den Start einer ConsoleKit-Instanz zur Verwaltung von Rechten, fr die Ausfhrung bestimmter Vorgnge (Herunterfahren des Rechners, Einbinden von Laufwerken u.s.w.), die eigentlich nur root vorbehalten sind. Hierbei ist es sinnvoll, das der Benutzer zur Power-Gruppe gehrt, damit er im eigentlichen Sinne die Legitimation zum Steuern des PCs erhlt (siehe Kapitel: Die Benutzerverwaltung) Fr den Fall, dass KDE, Gnome oder Xfce keine dbus-Instanz wrend des Startvorgangs erffnen, sorgt dbus-launch auf jeden Fall dafr. Fr das sorgfltige Schlieen der Session, nachdem die Desktop-Umgebung und damit der Xserver beendet wurde, sorgt der Eintrag --exit-with-session. So gelangt man nach einer Abmeldung aus dem Desktop wieder zum Shell-Prompt. Dann wird einfach mit: startx der X-Server zusammen mit der Desktop-Umgebung gestartet. 86

Der eigene Arbeitsplatzrechner

9.3.2. Login-Manager
Der Login-Manager oder auch Display-Manager genannt, ist der grafische Helfer, sich gleich nach dem Booten von Arch Linux mit seinem Benutzernamen und Kennwort anzumelden. Er regelt danach den Start der Desktop-Umgebung ohne auf Shell-Ebene mit startx (siehe Kapitel: startx) arbeiten zu mssen. Es gibt einige Login-Manager. Gnome und KDE bieten ihre eigenen gut integrierten Manager (GDM und KDM) an. Daneben gibt es unabhngige Login-Manager, die ebenfalls ihren Dienst verrichten (z.B. XDM aus dem X.org-Paket).

9.3.2.1. Der Gnome-Display-Manager (GDM)


Der GDM wird mit: pacman -S gdm installiert, sofern dieser noch nicht mit der kompletten Gnome-Installation bercksichtigt wurde. Ist die Installation beendet, kann nun die Integration des GDM abgeschlossen werden (siehe Kapitel: Die Finalisierung).

9.3.2.2. Der KDE-Display-Manager (KDM)


Dieser Display-Manager (KDM) liegt nicht als eigenstndiges Programmpaket zum installieren vor, sondern ist Bestandteil eines ganzen Pakets der KDE-Umgebung. Falls noch nicht installiert, wird dies einfach mit: pacman -S kdebase-workspace nachgeholt. Abgeschlossen wird die Integration des KDM mit dem Kapitel zur Finaliserung (siehe Kapitel: Die Finalisierung).

9.3.2.3. Der X-Display-Manager (XDM)


Auch die X.org-Umgebung bietet einen allgemeinen Login-Manager (XDM) an, der sowohl fr Gnome, KDE, Xfce und andere Desktop-Umgebungen eingesetzt werden kann. Installiert wid dieser mit: pacman -S xorg-xdm Damit XDM ermittelt, welche Desktop-Umgebung gestartet werden soll, bedarf es wenige Schritte:

1.

Der XDM erwartet im Benutzerverzeichnis die Datei .xsession . Eigentlich ein ausfhrbares Skript, dass wiederum die Konfigurationsdatei .xinitrc auslesen will. Daher wird im ersten Schritt .xsession aus der Skript-Sammlung in das eigene Benutzerverzeichnis kopiert, falls diese noch nicht vorhanden ist: cp /etc/skel/.xsession ~

2.

Danach wird die Ausfhrbarkeit des Skriptes gesetzt und zwar nur fr den eigentlichen Benutzer: 87

Der eigene Arbeitsplatzrechner

chmod 0744 .xsession 3. Hat man die vorherigen Schritte als root erledigt, eine bersicht erfolgt einfach mit: ls -lisa /home/benutzername mssen die Datei-Attribute Eigentmer und Gruppe zum eigentlichen Benutzernamen gendert werden: chown benutzername /home/benutzername/.xsession chgrp benutzername /home/benutzername/.xsession 4. Wie unter Schritt eins beschrieben, wird ebenfalls die Datei .xinitrc bentigt. In dieser werden die Befehle und Startparameter fr die Desktop-Umgebung hinterlegt. Diese existiert ebenfalls schon fr jeden neuen Benutzer als Voreinstellung im Verzeichnis /etc/skel, und im Kapitel startx (siehe Kapitel: startx) wird schon beschrieben, wie diese fr die eigene Umgebung angelegt und angepasst wird, daher ist ein Blick in dieses Kapitel fr den Abschluss wichtig. Der Rest ist im Kapitel Finalisierung zum Thema Login-Manager (siehe Kapitel: Die Finalisierung) beschrieben.

5.

9.3.2.4. Die Finalisierung


Ist der richtige Login-Manager gewhlt und alles soweit eingerichtet, fehlt im Prinzip die Integration in den Linux-Boot-Prozess. Somit entfllt spter die Anmeldung mit seinem Benutzernamen und Kennwort auf Shell-Ebene; der Login-Manager bernimmt diese Aufgabe auf grafischer Ebene und leitet endsprechend alles Weitere ein. Es gibt zwei Wege den Login-Manager in den Boot-Prozess zu bringen. Einmal als Daemon-Prozess selbst, oder aber diesen whrend der Init-Phase des Linux-Systems zu verankern. Ich selbst sehe mehr Vorteile den Init-Prozess zu verwenden, da ich noch ber einen Eintrag im Grub-Men die Steuerung habe, den Login-Manager zu umgehen, um so wieder in eine Standard-Shell-Umgebung zu kommen, ohne dass ein Login-Manager mit der ganzen Desktop-Umgebung gestartet wird (aber dazu spter mehr). Ich beziehe mich also im Folgenden auf den Init-Prozess. Der Einfluss erfolgt ber eine Steuerdatei mit dem Namen inittab im Verzeichnis /etc. Ein Blick in diese Datei zeigt den Aufbau. Fr nderungen in dieser Datei, ist hier wieder die Anmeldung als root Voraussetzung: nano /etc/inittab # # /etc/inittab # # # # # # # # # Runlevels: 0 Halt 1(S) Single-user 2 Not used 3 Multi-user 4 Not used 5 X11 6 Reboot 88

Der eigene Arbeitsplatzrechner

## Only one of the following two lines can be uncommented! # Boot to console id:3:initdefault: # Boot to X11 # id:5:initdefault: rc::sysinit:/etc/rc.sysinit rs:S1:wait:/etc/rc.single rm:2345:wait:/etc/rc.multi rh:06:wait:/etc/rc.shutdown su:S:wait:/sbin/sulogin -p # -8 options fixes umlauts problem c1:2345:respawn:/sbin/agetty -8 -s c2:2345:respawn:/sbin/agetty -8 -s c3:2345:respawn:/sbin/agetty -8 -s c4:2345:respawn:/sbin/agetty -8 -s c5:2345:respawn:/sbin/agetty -8 -s c6:2345:respawn:/sbin/agetty -8 -s on login 38400 tty1 38400 tty2 38400 tty3 38400 tty4 38400 tty5 38400 tty6 linux linux linux linux linux linux

# Serial Virtual Console for KVM and others VMs #s0:2345:respawn:/sbin/agetty -8 -s 9600 ttyS0 linux # Hypervisor Virtual Console for Xen and KVM #h0:2345:respawn:/sbin/agetty -8 -s 38400 hvc0 linux ca::ctrlaltdel:/sbin/shutdown -t3 -r now # Example lines for starting a login manager x:5:respawn:/usr/bin/xdm -nodaemon #x:5:respawn:/usr/sbin/gdm -nodaemon #x:5:respawn:/usr/bin/kdm -nodaemon #x:5:respawn:/usr/bin/slim >/dev/null 2>&1 # End of file Der Init-Prozess ist der erste Prozess, der von einem Linux-System beim Booten initiiert wird. Was mit dieser Initialisierung angestoen wird, ist ber die Datei inittab fest gelegt. Um einen differenzierten Betrieb zu untersttzen, also nicht nur einen einzigen Weg mit einer fest vorgegebenen Liste von zu startenden Diensten zur Verfgung zu stellen, werden eher Varianten mit unterschiedlichen Konfigurationen solcher Ablufe in sogenannte Runlevel fest gelegt. Jeder Runlevel hat eine bestimmte Nummer (ID), mit der ein bestimmter Zustand des Systems selbst (z.B. Single- oder Multi-User), aber auch die Abfolge der zu bootenden System-Dienste hinterlegt ist. Im Standardfall wird der Runlevel 3 genutzt. Dieser ist auch fr spter sehr wichtig, wenn es darum geht, ber das Boot-Men von Grub, Einfluss auf das Startverhalten selbst zu nehmen. Um nun einen Login-Manager in den Init-Vorgang mit einzubinden, wird der Runlevel 5 eingesetzt. Bedeutet, dass die Zeile mit dem ID-3-Eintrag kommentiert und mit dem ID-5-Eintrag auskommentiert wird. Welcher Login-Manager nun zum Einsatz kommt, hngt von der Startzeile zum Runlevel 5 ab. Die vorgefertigten Beispieleintrge sind selbsterklrend. Auch hier alle Zeilen bis auf die Wunschzeile mit einem "#" kommentieren. Im Folgenden der inittab-Auschnitt als Beispielkonfiguration, wenn es darum geht, XDM als Login-Manager einzusetzen. . . . ## Only one of the following two lines can be uncommented! # Boot to console 89

Der eigene Arbeitsplatzrechner

# id:3:initdefault: # Boot to X11 id:5:initdefault: . . . # Example lines for starting a login manager x:5:respawn:/usr/bin/xdm -nodaemon #x:5:respawn:/usr/sbin/gdm -nodaemon #x:5:respawn:/usr/bin/kdm -nodaemon #x:5:respawn:/usr/bin/slim >/dev/null 2>&1 . . .

9.3.2.4.1. Die Hintertr


Login-Manager hin oder her, manchmal mchte oder muss man vielleicht sein System warten. Und das Ganze auch gleich ohne Login-Manager und Desktop-Umgebung. Einfach wieder auf Shell-Ebene schrauben. Es ist relativ einfach, all das zu umgehen, indem man dem Boot-Vorgang mitteilt, welcher Runlevel genutzt werden soll. Hierzu reicht eine Ergnzung im Men von Grub2 mit dem entsprechend zu bercksichtigen Runlevel (3). Die Beschreibung hierzu ist im Kapitel zu Grub2 (siehe Kapitel: Der Bootloader grub2 - Eigene Meneintrge) zu finden.

90

Kapitel 10. Ein einfacher Dateiserver


Ein Dateiserver ist eigentlich ein praktisches Werkzeug, um seine Daten von seinem Arbeitsplatz (endlich mal) auf ein externes Medium zu sichern oder mit anderen zu teilen. Der Server wird einfach in das vohandene LAN eingebunden und steht dann entweder 24 Stunden oder nur dann zur Verfgung, wenn Bedarf ist. Der Kapiteltitel ist eigentlich zweideutig und weist einerseits auf den technisch einfachen Aufbau dieses Servers mit dem von mir gewhlten Namen Wotan hin, ohne erweiterte Manahmen wie ein RAID-System, weiterer Authentifizierungsserver oder einer grafischen Benutzeroberflche. Andererseits ist der Softwareaufbau (relativ) einfach nachzuvollziehen. Alles zusammen betrachtet, habe ich einen Grundaufbau gestaltet, der entsprechend auf die eigenen Bedrfnisse angepasst und erweitert werden kann. Dann auch mit einem RAID-System und vieles mehr.

10.1. Die Serverausstattung


Eigentlich fast schon der wichtigste Punkt und gestaltet sich hier in zwei Mglichkeiten. Beide Mglichkeiten fordern allerdings die gleiche Voraussetzung. Ein Server sollte ausschlielich als Server fungieren und nicht nebenbei als Arbeitsplatzrechner. Wie gut dieser ausgestattet sein soll, hngt von der Anzahl der vielleicht installierten Dienste (Webserver,Mailserver u.s.w.) und spteren Zugriffen ab. Wie schon geschrieben, dient dieser Aufbau ausschlielich zur Veranschaulichung eines einfachen Dateiservers und soll als Ansto fr weitere Mglichkeiten (mit Samba) dienen, um fr eigene Bedrfnisse die entsprechende Einrichtung ableiten zu knnen. Whrend meiner Tests, reichte ein einfacher Rechner im Mini-ITX Format mit einer Festplatte in der Gre von 500 GB aus, auf der neben dem Linux-Grundsystem und den notwendigen Diensten erst einmal nichts weiter installiert war. Bei einem ausgedienten PC mit Platz fr mehrere Festplatten oder sogar einem Server-Rack-System, ist dann mehr mglich. Daher die folgenden zwei Varianten, die einen Groteil der Mglichkeiten abdecken werden.

10.1.1. Eine Festplatte im System


Bei dieser Variante verhlt es sich wie bei meinem Testsystem. Eine Festplatte fr alles, fr das Linux-Grundsystem und den Rest der Festplattenkapazitt fr die Freigaben. Wird die Grundinstallation von Arch Linux verfolgt, kann bei der Festplattenvorbereitung folgendes Partitionsbeispiel bernehmen.

Abbildung 10.1. Serverpartitions-Beispiel 1

91

Ein einfacher Dateiserver

Im Prinzip hat sich gegenber dem Partitionsbeispiel aus der Arch Linux Grundinstallation nicht viel gendert. Wer beides vergleicht wird allerdings feststellen, dass es einen Sprung in der Partitionsnummerierung gegeben hat. Dies beruht auf die Gegebenheit, dass maximal vier primre Partitionen erlaubt sind. Um aber mehr wie vier Partitionen anlegen zu knnen, wurde die erweiterte Partition eingefhrt (in diesem Fall die imaginre /dev/sda4 ber die gesamte Restkapazitt). In dieser erweiterten Partition knnen nun beliebig viele logische Partitionen (soweit die Festplattenkapazitt es zulsst) angelegt werden. Hier fr das Beispiel zwei Partitionen: /dev/sda5 fr die spteren Benutzervezeichnisse und /dev/sda6 fr die Freigaben. Die Partitionierung selbst, die Formatierung mit dem entsprechenden Dateiformat und das Einbinden in das System erfolgt whrend der Archinux-Installation. Ab dem Punkt Festplattenvorbereitung sind dann die entsprechenden Angaben zu machen, wobei darauf zu achten ist, dass die logischen Partitionen /dev/sda5 dem Mountpoint /home und /dev/sda6 /mnt/fbase zugewiesen werden. Die Grenverteilungen sind fr die Partitionen eins bis drei soweit vorgegeben. Fr die spteren Benutzerverzeichnisse in /home bzw. fr die Freigaben in /mnt/fbase, sollten die Partitionsgren nach eigenem Ermessen vergeben werden. Als Dateisystem kann ich ext3 empfehlen.

10.1.2. Mehrere Festplatten im System


Eigentlich ein Idealfall. Wird fr das Linux-Grundsystem eine kleine Festplatte vergeben, so knnte man fr das Home- und das Freigaben-Verzeichnis (/mnt/fbase) jeweils eine groe Festplatte spendieren. Festplatte zwei und drei htten jeweils eine primre Partition ber die gesamte Kapazitt. Die Bezeichnungen wrden dann /dev/sdb1 und /dev/sdc1 lauten.

Abbildung 10.2. Serverpartitions-Beispiel 2

92

Ein einfacher Dateiserver

Alles knnte wie gehabt whrend der Arch Linux-Installation bercksichtigt werden. Ich mchte allerdings die Schritte beschreiben, wenn eine Grundinstallation schon vorhanden ist, also beide Festplatten nachtrglich eingebaut wurden. Fr die folgenden Schritte sollten Sie sich als root anmelden, um die notwendigen Berechtigungen zu erhalten wichtige Systemdateien zu bearbeiten.

Anmerkung
Auch wenn dies fr die Anwender uninteressant sein knnte, die "nur" eine Festplatte einsetzen. Die folgenden Schritte sind hilfreich, um bei einem Fehler die notwendigen Schlsse ziehen zu knnen, selbststndig eigene Partitionen in das System einzubinden.

1.

Prfen ob die neuen Festplatten whrend des Bootens vom System auch bercksichtigt werden. Am einfachsten geht dies fr die zweite Festplatte mit: cfdisk /dev/sdb Wrde eine Fehlermeldung erscheinen, dann wurde die Festplatte nicht richtig erkannt. Andererseits kann jetzt schon die Partition mit dem Programm cfdisk angelegt werden, wie in der Installationsbeschreibung zur Festplattenvorbereitung beschrieben. Dies gilt auch fr die dritte Festplatte mit dem Aufruf: cfdisk /dev/sdc

2.

Die neuen Partitionen mssen formatiert werden. Ich setze hierbei auf das ext4 Dateisystem. Der folgende Befehl mit entsprechenden Parametern startet die Formatierung wie folgt: mkes.ext4 /dev/sdb1 93

Ein einfacher Dateiserver

Identisch fr die einzige Partition der nchsten neuen Festplatte mit: mkfs.ext4 /dev/sdc1 3. Das Anlegen des Verzeichnisses /mnt/fbase ist notwendig, damit die dritte Festplatte einen Mountpunkt erhlt in der sie hineingehangen werden kann. Fr die zweite Festplatte existiert schon der Mountpoint (/home), da wrend der Linux-Installation das Home-Verzeichnis automatisch angelegt wird.

Anmerkung
Bestehende Verzeichnisse, die als Mount-Punkt fr Gerte wie Festplatten eingesetzt werden verlieren nicht ihren Inhalt, sofern welcher vorhanden ist. Allerdings kann nach dem Mounten nicht mehr auf diesen zugegriffen werden, weil das Gert den Inhalt quasi berlagert. Erst das Unmounten des Gertes selbst gibt den Inhalt wieder frei. Daher sollte in diesem Fall vor dem Anlegen von Benutzern, insbesondere fr den spteren Einsatz mit Samba, die Festplatten richtig im System verankert sein, da sonst bestehende Benutzerverzeichnisse unter /home nicht mehr zugnglich wren. Mit dem Befehl mkdir wird nun das Verzeichnis auf der ersten Festplatte angelegt: mkdir /mnt/fbase 4. Die neuen Festplatten sind nun partitioniert und formatiert. Damit beide nach jedem Bootvorgang auch automatisch in das System eingebunden werden, muss hierzu die verantwortliche Datei fstab bearbeitet werden: nano /etc/fstab # # /etc/fstab: static file # # <file system> <dir> none /dev/pts none /dev/shm

system information <type> devpts tmpfs <options> defaults defaults <dump> <pass> 0 0 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0 UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816 /boot ext2 defaults 0 1 UUID=86cf40c7-b4a2-4f61-8b44-8c09610b205d / ext4 defaults 0 1 UUID=72379917-1a7f-4113-befb-2daf516727a1 swap swap defaults 0 0 Die Struktur der Datei fstab gleicht einer Tabelle. Die Eintrge werden durch ein TAB oder Leerzeichen voneinander getrennt.

Tabelle 10.1. fstab Aufbau


Gert /dev/sdb1 /dev/sdc1 Mount-Punkt Dateiformat /home /mnt/fbase ext3 ext3 94 Optionen defaults defaults Backup-Programm Prfreihenfolge (dump) 0 0 2 3

Ein einfacher Dateiserver

Die Spalten Eins bis Drei sind selbsterklrend. Bei der vierten Spalte knnen verschiedene Parameter gesetzt werden; gut zu erkennen bei den Eintrgen der optischen Laufwerke wie read only (ro) oder jeder Benutzer (user) darf das Gert benutzen. Die fnfte Spalte gibt an, ob das Backup-Programm dump bei jedem Systemstart gestartet (1) werden soll oder nicht (0); dump untersttzt nur das Dateisystem ext2, also vorsicht. Wichtig ist u.a. die sechste Spalte, hier wird die Reihenfolge der zu prfenden Partitionen gesetzt, da in regelmigen Abstnden eine berprfung wrend des Bootens erfolgt. Die Angaben laut Tabelle knnen so bernommen werden. Danach sollte fstab so aussehen: # # /etc/fstab: static file system information # # <file system> <dir> <type> <options> none /dev/pts devpts defaults none /dev/shm tmpfs defaults

<dump> <pass> 0 0 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0 UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816 /boot ext2 defaults 0 1 UUID=86cf40c7-b4a2-4f61-8b44-8c09610b205d / ext4 defaults 0 1 UUID=72379917-1a7f-4113-befb-2daf516727a1 swap swap defaults 0 0 /dev/sdb1 /home ext4 defaults 0 2 /dev/sdc1 /mnt/fbase ext4 defaults 0 3 Ob alles funktioniert kann durch einen Neustart, angestoen durch die folgende Eingabe, berprft werden: reboot Oder der Befehl: mount -a erledigt dies ohne einen Neustart. Hier wird das Einlesen und entsprechende Verarbeiten der Datei fstab neu initiiert.

10.2. Die notwendigen und hilfreichen Softwarepakete


Steht die Hardware fr den Dateiserver, ist die folgende Liste hilfreich, die notwendigen Softwarepakete (Dienste) zu installieren: 1. Arch Linux Von der Grundinstallation gehe ich jetzt einfach mal von aus (Kapitel: Die Arch Linux-Grundinstallation). 2. Samba 95

Ein einfacher Dateiserver

Der Datei- und Druckserverdienst. Das wichtigste Element fr den Dateiserver. In diesem Kapitel ist auch das Konzept enthalten, wonach die Festplatten unter bestimmten Kriterien zur Verfgung gestellt werden (Kapitel: Samba). 3. Iptables Der Selbstschutz, insbesondere als Firewall fr den spteren Dateiserver (Kapitel: Iptables). 4. Ulogd Alles muss protokolliert werden. Als Ergnzung zu iptables ist dieser Dienst sehr hilfreich (Kapitel: Ulogd). 5. SSH Die Secure-Shell macht es mglich, den Dateiserver der vielleicht im Keller steht, entsprechend ferngesteuert zu warten (Kapitel: SSH). Fr die Nutzung des Dateiservers ist eine lokale Anmeldung mit Benutzernamen und Kennwort nicht notwendig. Ist alles entsprechend konfiguriert, werden auch die notwendigen Dienste beim Bootvorgang mit gestartet. Also den Server einfach nur einschalten. Wird der Server nicht mehr benutzt, sollte ein Herunterfahren eingeleitet werden. Hierzu bitte als root anmelden, um anschlieend mit: shutdown -h now das Herunterfahren einzuleiten (siehe Anhang: Kurzreferenz - Linux-Befehle). Das funktioniert brigens auch ber eine SSH-Verbindung.

96

Teil IV. Dienstprogramme


Dienstprogramme fr Linux/Unix gibt es eine Menge. Viele bekannte Dienste verrichten ihre Arbeit vierundzwanzig Stunden und das jeden Tag in der ganzen Welt. Die wohl bekanntesten Vertreter sind der Webserver von Apache, Mailserver, das MySQL Datenbanksystem und samba als universeller Datei- und Druckserver.

Kapitel 11. Iptables


Zum Sinn einer Firewall, brauche ich vermutlich wenig zu schreiben. Die Sensibilisierung erfolgte vermutlich schon durch entsprechende Meldungen in den Medien. Iptables ist ein sehr mchtiger Dienst, mit dem unter Linux uerst flexible (und komplexe) Firewallkonfigurationen erstellt werden knnen. Mit Hilfe der folgenden Abbildung, mchte ich den Einstieg zur Arbeitsweise von iptables erleichtern.

Abbildung 11.1. iptables

Analysiert werden die Datenpakete auf Protokollebene (und nicht auf Anwendungsebene). Dass heit, egal welche Anwendung benutzt wird, die ber das Netz kommuniziert, unabhngig ob auf Shell-Ebene oder unter einer grafischen Benutzeroberflche, alle Datenpakete werden analysiert und nach definierten Regeln im einfachsten Fall entweder durch gelassen oder verworfen. Hierzu kooperiert iptables mit den notwendigen Modulen (netfilter) im Linux-Kern. Alle Regeln werden eigentlich wie Teller "untereinander" gestapelt. Die offizielle Quelle zu iptables spricht hier auch von einer Kette (Chain), wobei dann die Perlen die Regeln darstellen. Ein- wie ausgehende Datenpakete durchlaufen diese Regelstapel. Trifft eine Bedingung der Regel zu, erfolgt erst dann die entsprechende Verarbeitung. Wie beschrieben gibt es verschiedene Ketten mit entsprechenden Regeln, von denen hier zwei von drei - INPUT fr eingehende und OUTPUT fr ausgehende Datenpakete - genutzt werden. Der Hintergrund ist, dass die Firewall spter dort eingesetzt wird, wo sie explizit auch schtzen soll, auf dem Arbeitsplatz oder Server selbst. Eine Standalone-Firewall wo Pakete gefiltert durch geschleust, quasi weiter gereicht werden (Kette FORWARD), um evtl. ein ganzes LAN zu 98

Iptables

schtzen, wird hier nicht nher betrachtet. Im Beispiel laut Abbildung ist auf der linken Seite zu sehen, dass der Browser eine Verbindung zum Webserver aufbauen mchte. Dies geschieht in der Regel ber den Port 80, welcher auch so als Bedingung fr eine erlaubte Verbindung in der Regel definiert wurde. Die Verbindung wird also von iptables erlaubt, die Datenpakete werden durch gelassen; ebenfalls die Antwort, die vom Webserver kommt. Die rechte Seite zeigt, dass ein FTP-Programm ber den Port 21 ebenfalls eine Verbindung aufbauen mchte. Eine passende Regel mit der entsprechenden Bedingung existiert nicht. Zwar wird die erste Regel fr den Port 80 durchlaufen, diese fhlt sich aber nicht angesprochen, also geht es weiter zur Nchsten. Hier endet allerdings der Weg; quasi als Endstation oder letzte Instanz wurde eine Regel definiert, die jedes ausgehende Datenpaket verwirft. Die Verbindung wird nicht hergestellt. Iptables bietet neben den statischen Mitteln (Paketfilterung) auch dynamische Werkzeuge an. Hierzu werden z.B. die ausgehenden Verbindungen "gemerkt", erlaubt werden dann nur die eintreffenden Datenpakete, die zu einer Verbindung gehren. Treffen Datenpakete ein, die nicht plausibel sind, werden diese einfach (laut Regel) abgelehnt. Solch ein Werkzeug wird auch Stateful Packet Inspection (SPI) genannt, da abhngig eines bestimmten Verbindungs-Status entsprechend reagiert wird. Oft wird in Internet-Routern solch eine SPI-Firewall integriert, wo im einfachsten Fall alle ausgehenden Datenpakete ungefiltert erlaubt und nur die Antworten von auen akzeptiert werden, die abhngig vom Verbindungsstatus gerechtfertigt sind. In den nchsten Kapiteln mchte ich den Aufbau einer einfachen Firewall mit Hilfe von iptables fr einen Arbeitsplatzrechner und fr einen Server aufzeigen. Beide Beispiele sollten zusammen betrachtet werden, da ich verschiedene Vorgehensweisen verstndlicher Weise nicht doppelt beschreiben mchte. Alles hngt jetzt von iptables ab und sollte sptestens jetzt installiert werden, falls noch nicht geschehen. Voraussetzung fr alle weiteren Schritte und nicht nur fr die Installation ist die Anmeldung als root. Alle spteren Konfigurationsdateien sollten auch nur von root ausfhrbar sein und sich in dessen Heimatverzeichnis befinden.

11.1. Die Installation von Iptables


Pacman als Paketmanager ist hier wieder gefragt. Mit der Eingabe von: pacman -S iptables erfolgt die Installation.

11.2. Firewall fr einen Arbeitsplatzrechner


Ziel ist es einen Basisschutz zu schaffen. Hierbei werden alle eintreffenden Datenpakete abgewiesen. Ebenfalls die, die entweder Fehler aufweisen bzw. nicht plausibel sind. Jeder neuer ausgehender Datenverkehr wird ungefiltert erlaubt. Um die Plausibilitt zu erhalten, werden die dynamischen Werkzeuge von iptables genutzt. Jeder Status z.B. einer ausgehenden Verbindung wird in einer internen Tabelle gespeichert. Passen die eintreffenden Antwortpakte zur selbst initiierten Verbindung, darf weiter unterhalten werden. Die Regeln werden durch die Eingabe des Befehls iptables, gefolgt von verschiedenen Parametern definiert. Smtliche Eingaben werden daher bersichtlich in ein Shell-Skript zusammen erfasst. nano /root/fw_arbeitsplatz.sh 99

Iptables

#!/bin/sh # # Autor: Farid Msbahi # Version: 0.2 # Datum: 21.08.2006 # Letzte Aenderung: 24.11.2007 # Beschreibung: Dieses Skript setzt die Firewall-Regeln # fr einen Arbeitsplatzrechner # Laden notwendiger Kernel-Module modprobe ip_conntrack_ftp # Loeschen aller vorhandenen Regeln und selbst # definierten Ketten iptables -F iptables -X # Regeln (Policy) zum Verwerfen aller nicht # akzeptierten Pakete iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Regel fuer das Erlauben des internen (INPUT) Verkehres iptables -A INPUT -i lo -j ACCEPT # Regel zum Verwerfen eingehender nicht konfomer Datenpakete iptables -A INPUT -p ALL -m state --state INVALID -j DROP # Regel zum Akzeptieren eingehender Datenpakete aus # selbstinitierten Verbindungen iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Regel fuer das Erlauben des internen (OUTPUT) Verkehres iptables -A OUTPUT -o lo -j ACCEPT # Regel zum Akzeptieren neuer ausgehender Verbindungen iptables -A OUTPUT -m state --state NEW -j ACCEPT # Regel zum Weiterfuehren selbstinitiierter Verbindungen iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Jedes Shell-Skript fngt mit dieser Zeile an. Ansonsten dienen Zeilen, die ein Rautensymbol voran gestellt haben zur Dokumentation und werden nicht interpretiert. Es sei denn, dass ein Ausrufezeichen folgt, wie in diesem Fall. Die notwendigen Kernel-Module fr iptables werden eigentlich automatisch geladen. Allerdings nicht das Modul fr das FTP, um hier dynamisch den Datenverkehr zu regeln. Daher wird hier mit dem Befehl modprobe das notwendige Modul "ip_conntrack_ftp" geladen. Hier werden alle Ketten geleert (-F), mit anderen Worten Regeln gelscht und alle ggf. selbst erstellten Ketten ebenfalls (-X), um wirklich bei Null zu beginnen. Alle Regeln werden von oben nach unten, nach und nach abgearbeitet. Trifft eine Bedingung zu, erfolgt die Aktion. Danach bricht iptables die Arbeit an der betreffenden Stelle ab (auer beim Loggen von Ereignissen. Siehe dazu Kapitel "Logbuch fhren"). Was passiert, wenn keine der Regeln im Durchlauf greifen? Eigentlich garnichts. Daher ist es ratsam eine Grundregel, die Policy (-P) zu definieren. Hier zur Sicherheit fr alle drei Ketten. Fr den Fall, das keine Regel greift, werden einfach alle Datenpakete verworfen (DROP). Alle eintreffenden Datenpakete, die ber den lokalen Netzwerkadapter (Loopback Interface) laufen, werden akzeptiert (-j ACCEPT). Hierbei wird der Adapter lo explizit fr die Kette INPUT mit dem Parameter -i (Input device) gebunden. Das diese Regel an die entsprechende Kette angehngt wird, steuert der Parameter -A. Die nchste Regel berprft fr alle Protokolle (-p ALL) die eintreffenden Datenpakete (INPUT) auf fehlerhafte oder nicht identifizierbare Strukturen (-m state --state 100

Iptables

INVALID). Solche Pakete werden sofort verworfen (-j DROP). An dieser Stelle werden eintreffende Pakete (INPUT) nur dann akzeptiert (-j ACCEPT), wenn sie zu einer bestehenden Verbindung gehren (-m state --state ESTABLISHED) und ggf. in einer bestimmten Beziehung zu dieser stehen (-m state --state RELATED). Der letztere Fall kommt dann zum Einsatz, wenn z.B. der FTP-Dialog zwischen Arbeitsplatz und Server neben der ersten Kontaktaufnahme weitere Strecken auf ganz andere Ports aufbaut, die dann durch das Argument RELATED identifiziert und zugeordnet werden. Damit dies funktioniert, mu noch das entsprechende Kernel-Modul geladen sein (siehe Punkt 2). Die Schwester-Regel zum Punkt 5, mit der gleichen Bindung zum lokalen Netzwerkadapter, allerdings fr ausgehende Datenpakete (-o lo). Hier drfen erst einmal nur neue (-m state --state NEW) ausgehende (OUTPUT) Verbindungen ungefiltert aufgebaut (-j ACCEPT) werden. Im direkten Verhltnis steht eigentlich die Regel in Punkt 7. Der weitere Dialog nach Auen (OUTPUT) kann nur dann weiter gefhrt werden (-j ACCEPT), wenn analog zu Punkt 7 die Voraussetzungen auf eine zu identifizierende und ggf. in einer bestimmten Beziehung stehende Verbindung (-m state --state ESTABLISHED,RELATED) stimmen. Zum Verstndnis, wie wichtig diese Regel ist. Es wurde bis jetzt nur der neue Verbindungsaufbau nach Auen akzeptiert (Punkt 9). Soll jetzt im Dialog, nach der ersten eingehenden Antwort (Punkt 7) wieder geantwortet werden, wrde iptables ohne diese Regel es hierbei belassen und durch die Policy (OUPUT) die Datenpakete verwerfen. Falls Sie das Skript soweit geschrieben haben, speichern Sie dieses bitte ab. Eigentlich kann es mit dem Kapitel Regeln speichern und prfen weiter gehen. Allerdings sind einige Aspekte aus der Serverkonfiguration fr einen Arbeitsplatzrechner nicht uninteressant, was im Kapitel Kurze Zusammenfassung nher betrachtet wird.

11.3. Firewall fr einen Server


Der Basisschutz fr einen Server wird etwas straffer definiert. Der Zugriff auf den Server soll nur auf die Dienste erlaubt werden, die auch zur Verfgung stehen. Genauso soll der ausgehende Verkehr kontrolliert gefiltert werden. Das notwendige Skript ist wie folgt aufgebaut: nano /root/fw_server.sh #!/bin/sh # # Autor: Farid Msbahi # Version: 0.5 # Datum: 21.08.2006 # Letzte Aenderung: 15.12.2010 # Beschreibung: Dieses Skript setzt die Firewall-Regeln fr # einen Server # Laden notwendiger Kernel-Module modprobe ip_conntrack_ftp # Loeschen aller vorhandenen Regeln und selbst # definierten Ketten iptables -F iptables -X # Regeln (Policy) zum Verwerfen aller nicht # akzeptierten Pakete iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP

101

Iptables

# Regel fuer das Erlauben des internen (INPUT) Verkehres iptables -A INPUT -i lo -j ACCEPT # Regel zum Verwerfen eingehender nicht # konfomer Datenpakete iptables -A INPUT -i eth0 -p ALL -m state --state ==> ==>INVALID -j DROP # Regel fr neue Verbindungen die wirklich als # solche entsprechen iptables -A INPUT -i eth0 -p tcp ! --syn -m state ==> ==>--state NEW -j DROP # Regel zum Erlauben neuer (INPUT) Verbindungen (Samba) iptables -A INPUT -i eth0 -p tcp -m multiport ==> ==>--dport 137,138,139,445,901 -m state --state NEW ==> ==>-j ACCEPT # Regel zum Erlauben neuer (INPUT) Verbindungen (SSH) iptables -A INPUT -i eth0 -p tcp --dport 22 -m state ==> ==>--state NEW -m hashlimit --hashlimit 1/m ==> ==>--hashlimit-burst 1 --hashlimit-mode srcip ==> ==>--hashlimit-name ssh -j ACCEPT # Regel zum Erlauben von max. einer Ping-Anfrage pro Min. iptables -A INPUT -i eth0 -p icmp --icmp-type ==> ==>echo-request -m state --state NEW ==> ==>-m hashlimit --hashlimit 1/m ==> ==>--hashlimit-burst 1 --hashlimit-mode srcip ==> ==>--hashlimit-name ping -j ACCEPT # Regel zum Akzeptieren eingehender Datenpakete bei # bestehenden Verbindungen iptables -A INPUT -i eth0 -m state --state ==> ==> ESTABLISHED,RELATED -j ACCEPT # Regel fuer das Erlauben des internen (OUTPUT) Verkehres iptables -A OUTPUT -o lo -j ACCEPT # Regel zum Akzeptieren neuer # Verbindungen - DNS iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j (OUTPUT) tcp --dport 53 ==> ACCEPT udp --dport 53 ==> ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT) # Verbindungen - HTTP iptables -A OUTPUT -o eth0 -p tcp --dport 80 ==> ==>-m state --state NEW -j ACCEPT # Regel zum Akzeptieren neuer (OUTPUT) # Verbindungen - FTP iptables -A OUTPUT -o eth0 -p tcp --dport 21 ==> ==>-m state --state NEW -j ACCEPT # Regel zum Akzeptieren neuer # Verbindungen - NTP iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j (OUTPUT) udp --dport 123 ==> ACCEPT tcp --dport 123 ==> ACCEPT

# Regel zum Weiterfuehren aufgebauter Verbindungen iptables -A OUTPUT -o eth0 -m state --state ==>ESTABLISHED,RELATED -j ACCEPT Im Grundaufbau ist das Skript zum Schutz eines Arbeitsplatzrechners identisch. Daher 102

Iptables

beziehen sich die Erluterungen auf neue Regeln und Aspekte. Der erste Unterschied ist hier zu sehen. Diese Regel fngt die Pakete ab, die nicht konform zum Aufbau einer neuen Verbindung sind (! --syn -m state --state NEW). Beim normalen Verbindungsaufbau, beginnt ein Dreiwege-Handshake, wobei beim Initiieren der Verbindung (erster Weg) das SYN-Flag gesetzt sein muss. Mit dieser Abfrage nimmt man also Stellung zu einem von insgesamt sechs verschiedenen Steuerungs-Flags des TCP (-p TCP). Ist dieses Flag nicht gesetzt (! --syn), handelt es sich um keinen einwandfreien Aufbauversuch und die Pakete werden verworfen (-j DROP). Neue (-m state --state NEW) eingehende Verbindungen sind erlaubt (-j ACCEPT), sofern sie sich "nur" auf einen der Zielports (--dport 137,138,139,445,901 fr Samba oder --dport 22 fr SSH) beziehen. Wer den Zugriff noch weiter einschrnken mchte, kann dies auf Basis der Quell-IP-Adresse, also die Adresse vom Dienstbenutzer erledigen. Die Konfiguration fr den eingeschrnkten Zugriff von nur einem Rechner zum SSH-Dienst aus, wrde dann so aussehen: iptables -A INPUT -i eth0 -s 192.168.1.110 -p tcp ==> ==>--dport 22 -m state --state NEW -j ACCEPT Das klappt in diesem Fall nur dann, wenn im LAN feste TCP/IP-Adressen genutzt werden und sich nicht jedes mal durch die dynamische Vergabe (DHCP) aus einem Adressen-Pool heraus ndern. Die Quelladresse hier (-s 192.168.1.110) orientiert sich an dem Netzwerkkonzept zu Beginn des Netzwerk-Kapitels und dient hier als Beispiel. Bei der SSH-Verbindung gibt es noch eine weitere Vorsichtsmanahme. Mit den Parametern "-m hashlimit --hashlimit 1/m" wird der Zugriff pro Quelle (--hashlimit-mode srcip) auf ein mal pro Minute limitiert. Der Paramter "--hashlimit-burst" mit dem Wert "1" dient als Schwellwert, also wann genau das Limit greifen soll. Der Standardwert liegt bei fnf und wrde hierbei ensprechende Verbindungen erlauben, was keinen Sinn macht. Daher ist der Schwellwert auf eins gesetzt, um wirklich nur einen Zugriff pro Minute zu gewhren. Der nchste Parameter (--hashlimit-name ssh) dient der internen Registrierung mit einem frei whlbaren Namen. Ping-Anfragen (Echo Request) sind ein wichtiges Werkzeug, um z.B. zu erfahren, ob ein Rechner (Server) berhaupt noch auf Netzanfragen antwortet. Ein Anwender der vor seinem Arbeitsplatz sitzt, wrde sich rechtzeitig melden, wenn etwas nicht funktioniert. Das hier eingesetzte "Internet Control Message Protocol" (-p icmp) arbeitet nicht mit Ports wie bei TCP, sondern mit definierten Nachrichten-Typen. Einer davon ist der genannte Echo Request, der hier laut Regel ausschlielich akzeptiert wird (--icmp-type echo-request). Dieser Typ ist der Einzige, der vom Protokoll fr den Versender mit einem "Echo Reply" beantwortet wird. Diese Antwort wird vom Ping-Befehl analysiert (z.B. Antwortzeit) und ausgegeben. Wie unter Punkt 2 wird der Zugriff limitiert. Und zwar ebenfalls auf eine Anfrage pro Minute. Die nchsten fnf Regeln kontrollieren neue ausgehende Verbindungungen, gezielt auf bestimmte notwendige Dienste (DNS 53, HTTP 80, FTP 21 und NTP 123).

11.4. Kurze Zusammenfassung


Wenn beide Skripte verglichen werden, fllt vermutlich sofort die konsequente Filterung der Datenpakete bei der Serverkonfiguration auf. Und zwar in beiden Richtungen, egal ob neue Verbindungen zum oder vom Server gehen. Das hat sicherheitstechnische Hintergrnde, um eingehend die Angriffsflche so klein wie mglich zu halten, was hier schon durch die begrenzte Installation auf nur notwendigen Dienste untersttzt wird. In beiden Skripten wird das Kernel-Modul "ip_conntrack_ftp" nach geladen. Dies funktioniert nur fr den Moment, wo das Skript ausgefhrt wird und bis der Rechner neu 103

Iptables

startet. Damit mit jedem Rechnerstart das Modul geladen wird, sollte es namentlich in der Datei rc.conf unter zu ladende Module eingebunden werden. Wie dies funktioniert, steht im Kapitel "Kernel-Module". Wer mchte, kann das Arbeitsplatzrechnerskript ebenfalls so (ohne, dass es sich jetzt negativ liet) konservativ gestalten, dass ausgehende Verbindungen nur zu bestimmten Diensten mglich werden. Vermutlich brauchen Sie dazu weit mehr Regeln. Hierzu kann die Seite unter http://www.iana.org/assignments/port-numbers weiter helfen, um die notwendigen Ports z.B. fr den Mail- oder HBCI Server in Erfahrung zu bringen. Alles zusammen, ob statisch Filtern, dynamisch Filtern oder alles zusammen, gehrt zu einer Firewall-Strategie. Daher sollte das Fr und Wider vorher abgewogen werden, bevor es an das passende Skript geht.

11.5. Regeln speichern und prfen


Die nchsten Beschreibungen beziehen sich zur Veranschaulichung auf das Skript fr den Arbeitsplatzrechner und sind entsprechend identisch zur Serverkonfiguration.

11.5.1. Dateiarbeit
Es sollte nun berprft werden, ob: 1. Aus Sicherheitsgrnden die Berechtigungen nur fr den Benutzer und die Gruppe root gesetzt sind. Wenn nicht, kann dies mit den Eingaben: chown root fw_arbeitsplatz.sh und chgrp root fw_arbeitsplatz.sh erfolgen. 2. Das Skript nur fr den Benutzer root ausfhrbar ist. Auch hier hilft die Eingabe: chmod 0700 fw_arbeitsplatz.sh Ist alles erfolgt sollte das Ergebnis so aussehen.

Abbildung 11.2. Firewall-Skriptdatei

11.5.2. Skript ausfhren


104

Iptables

Gestartet wird das Skript mit: ./fw_arbeitsplatz.sh Werden eventuell Fehler aufgezeigt, gibt iptables zur besseren Diagnose gleich die Zeilennummer der betreffenden Stelle in der Skriptdatei mit an. Bitte achten Sie auf Ground Kleinschreibung, hier schleichen sich am schnellsten die Fehler ein.

11.5.3. Ketten prfen


Alle mit Regeln gefllten Ketten werden von oben nach unten durchlaufen, so wie sie im Skript eingetragen sind. Mit der Eingabe von: iptables vnL listet iptables diese auf. Hier kann sehr gut verglichen werden, in welcher Reihenfolge die Regeln gesetzt sind. Zum Vergleich, wie z.B. die Kette INPUT laut Skript gefllt wird: iptables iptables iptables iptables -P -A -A -A INPUT INPUT INPUT INPUT DROP -i lo -j ACCEPT -p ALL -m state --state INVALID -j DROP -m state --state ESTABLISHED,RELATED -j ACCEPT

Und wie die Ausgabe von iptables vnL dies anzeigt:

Abbildung 11.3. Iptables Ausgabe

Die Policy wird nicht mit aufgefhrt. Allerdings alle Regeln in der Reihenfolge, wie sie im Skript gesetzt sind. Also hat das Skript funktioniert.

11.5.4. Finale Arbeit


Bevor jetzt endgltig iptables als Dienst zum automatischen Laden bei jedem Bootvorgang eingebunden wird, ist die Eingabe: /etc/rc.d/iptables save notwendig. Hiermit werden alle Regeln endgltig fr den Dauerbetrieb in die Datei /etc/iptables/iptables.rules gespeichert. Wrde dieser Schritt ausgelassen werden, htten alle Regeln eine Lebenszeit bis zum nchsten Neustart. Um verschiedene Regeln und Funktionen zu testen (Fehleranalyse), kann ich folgendes 105

Iptables

Vorgehen empfehlen: 1. nderungen am Konfigurationsskript vornehmen. 2. Iptables stoppen: /etc/rc.d/iptables stop 3. Konfigurationsskript ausfhren. ./fw_arbeitsplatz.sh 4. Konfiguration auf Iptables-Ebene speichern: /etc/rc.d/iptables save 5. Und Iptables wieder starten: /etc/rc.d/iptables start

11.6. Logbuch fhren


Wenn Iptables arbeitet, bekommt man in der Regel nichts davon mit. Meistens nur dann, wenn etwas nicht funktioniert. Fr Diagnosezwecke oder wer mehr erfahren mchte, warum im laufenden Betrieb z.B. Datenpakete verworfen werden, kann die Logbuchfunktionen von Iptables einsetzen. Der vorinstallierte Logdienst syslog-ng unter Arch Linux, wird schon fr fast alle Systemereignisse genutzt. Ich hatte allerdings keine guten Erfahrungen in Verbindung mit Iptables sammeln knnen. Als Ergnzung zu Syslog-ng bietet sich Ulogd fr Iptables an; die Installation wird im Kapitel Ulogd beschrieben.

11.6.1. Anpassen der Iptables-Konfiguration fr Ulogd


Die Anpassung ist relativ einfach. Im Prinzip wird die Iptables-Regel, die protokolliert werden soll, im Skript kopiert und dahingehend gendert, dass die Komandos Akzeptieren (-j ACCEPT) und Verwerfen (-j DOP) gegen "-j ULOG" ausgetauscht werden. Das angepasste Serverskript veranschaulicht dies: nano /root/fw_server_ulogd.sh #!/bin/sh # # Autor: Farid Msbahi # Version: 0.5 # Datum: 21.08.2006 # Letzte Aenderung: 15.12.2010 # Beschreibung: Dieses Skript setzt die Firewall-Regeln fr # einen Server mit Logbuch-Funktion # Laden notwendiger Kernel-Module modprobe ip_conntrack_ftp # Loeschen aller vorhandenen Regeln und selbst # definierten Ketten iptables -F iptables -X 106

Iptables

# Regeln (Policy) zum Verwerfen aller nicht # akzeptierten Pakete iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Regel fuer das Erlauben des internen (INPUT) Verkehres iptables -A INPUT -i lo -j ACCEPT # Regel zum Verwerfen eingehender nicht # konfomer Datenpakete iptables -A INPUT -i eth0 -p ALL -m state --state ==> ==>INVALID -j ULOG --ulog-prefix "Input (INVALID Packet): " iptables -A INPUT -i eth0 -p ALL -m state --state ==> ==>INVALID -j DROP # Regel fr neue Verbindungen die wirklich als # solche entsprechen iptables -A INPUT -i eth0 -p tcp ! --syn -m state ==> ==>--state NEW -j ULOG --ulog-prefix "Input ==> ==>(SYN CORRUPTION): " iptables -A INPUT -i eth0 -p tcp ! --syn -m state ==> ==>--state NEW -j DROP # Regel zum Erlauben neuer (INPUT) Verbindungen - Samba iptables -A INPUT -i eth0 -p tcp -m multiport ==> ==>--dport 137,138,139,445,901 -m state ==> ==>--state NEW -j ACCEPT # Regel zum Erlauben neuer (INPUT) Verbindungen - SSH iptables -A INPUT -i eth0 -p tcp --dport 22 -m ==> ==>state --state NEW -m hashlimit --hashlimit 1/m ==> ==>--hashlimit-mode srcip --hashlimit-name ssh -j ACCEPT # Regel zum Erlauben von Ping-Anfragen, sofern diese # nicht berhand nehmen iptables -A INPUT -i eth0 -p icmp --icmp-type ==> ==>echo-request -m state --state NEW ==> ==>-m hashlimit --hashlimit 1/m ==> ==>--hashlimit-burst 1 --hashlimit-mode srcip ==> ==>--hashlimit-name ping -j ACCEPT # Regel zum Akzeptieren eingehender Datenpakete # bei bestehenden Verbindungen iptables -A INPUT -i eth0 -m state --state ==> ==>ESTABLISHED,RELATED -j ACCEPT # Regel zum Verwwerfen von Broadcast-Datenaketen iptables -A INPUT -i eth0 -d 192.168.1.255 -p ALL -j DROP # Regel zum Protokollieren eingehender Datenpakete, # die in letzter Instanz durch die (INPUT) Policy # verworfen werden iptables -A INPUT -i eth0 -j ULOG ==> ==>--ulog-prefix "Input (Others): " # Regel fuer das Erlauben des internen (OUTPUT) Verkehres iptables -A OUTPUT -o lo -j ACCEPT # Regel zum Akzeptieren neuer iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j (OUTPUT) Verbindungen - DNS tcp --dport 53 ==> ACCEPT udp --dport 53 ==> ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - HTTP iptables -A OUTPUT -o eth0 -p tcp --dport 80 ==> ==>-m state --state NEW -j ACCEPT 107

Iptables

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - FTP iptables -A OUTPUT -o eth0 -p tcp --dport 21 ==> ==>-m state --state NEW -j ACCEPT # Regel zum Akzeptieren neuer iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j iptables -A OUTPUT -o eth0 -p ==>-m state --state NEW -j (OUTPUT) Verbindungen - NTP udp --dport 123 ==> ACCEPT tcp --dport 123 ==> ACCEPT

# Regel zum Weiterfuehren aufgebauter Verbindungen iptables -A OUTPUT -o eth0 -m state --state ==> ==>ESTABLISHED,RELATED -j ACCEPT # Regel zum Protokollieren eingehender Datenpakete, # die in letzter Instanz durch die (OUTPUT) Policy # verworfen werden iptables -A OUTPUT -o eth0 -j ULOG ==> ==>--ulog-prefix "Output (Others): " Wie beschrieben, habe ich die Zeile kopiert, voran gestellt und am Ende alles gegen "ULOG" getauscht. Damit sich spter der Logbucheintrag besser erklrt, wird "ULOG" um einen passenden Prfix z.B. ein kleiner Hinweis (--ulog-prefix "Input (INVALID Packet): ") ergnzt. Am Anfang jedes Logbucheintrages wird genau dieser Text dann eingetragen. Die Kopie der Regel erfllt den Zweck, dass genau zum gewnschten Zeitpunkt erst der Protokolleintrag erfolgt und danach die "eigentliche" Regel ihre Arbeit erledigt. Das bedeutet, dass Iptables beim Logbuchfhren hier mit Hilfe von Ulogd den Prozess nicht abbricht, wie es normaler Weise geschieht. Analog zum Punkt 1 erfolgt hier ein Eintrag, allerdings mit einem anderen Prfixtext, da ja ein anderer Fall mit geschrieben werden soll. An dieser Stelle werden alle Broadcast-Datenpakete, also die "Rundrufe" der einzelnen Rechner im LAN, fallen gelassen, um das Protokoll nicht mit unwichtigen Meldungen zu fluten. Interessant sind die Datenpakete, die durch die Input-Policy, also die letzte Instanz, verworfen werden. Daher wird die Regel zum Protokollieren an das Ende der Kette hinzugefgt. Die gleiche Regel wie im Punkt 3, wird hier allerdings fr die Output-Policy eingebunden.

11.7. Iptables als Dienst


Um nun Iptables als Dienst einzubinden, ist nur der Eintrag von "iptables" selbst direkt "hinter" dem Netzwerkdienst network in der Datei rc.conf notwendig (siehe Kapitel: Dienste).

108

Kapitel 12. Samba


Samba ist wohl der bekannteste Datei- und Druckserver, um Festplattenkapazitten bzw. Drucker in einem Netzwerk fr eine bestimmte Anzahl von Anwendern unabhngig des Betriebssystems (sofern dieses das entsprechende SMB/CIFS-Protokoll untersttzt) zur Verfgung zu stellen. Da Samba ein sehr mchtiger Dienst, mit einer Vielzahl von Funktionen ist, will ich hier an Hand eines Beispiels die Konfiguration und die Funktionalitten zeigen.

12.1. Ein Beispiel - Die Agentur "Alpenglas"


Es handelt sich hierbei um eine fiktive Agentur mit drei Anwendern mit den Namen Ida, Emmelie und Marco. Die Anwenderinnen Emmelie und Ida haben darber hinaus die Funktion als Administrator den Server zu warten. Zustzlich ist in der Agentur ein Streaming-Client als Gert im Einsatz, welches ber das Netzwerk ebenfalls auf Inhalte zugreifen soll, die auf dem Server liegen um z.B. fr Kunden Ergebnisse per Video-Beamer zu prsentieren. Da das Gert unter den gleichen technischen Bedingungen auf dem Server zugreift, wie ein Anwender auch, wird als Benutzername Erika vergeben. Der Dateiserver wird somit fr alle drei Mitarbeiter und dem Streaming-Client in einer bestimmten Konfiguration erreichbar sein. Dabei lehne ich mich an das Netzwerkkonzept (siehe Kapitel: Das Netzwerk) an und stelle folgende Voraussetzungen auf: 1. Zugriff auf dem Server von drei Anwendern und einem Streaming-Client. 2. Erreichbar mindestens unter Mac OS X, Linux und Windows. 3. Folgende Freigaben mit entsprechender Zugriffsberechtigung sollen zur Verfgung gestellt werden: a. Jeder Benutzer hat seine eigene Freigabe, nach seinem Benutzernamen benannt auf das nur er/sie lesend und schreibend Zugriff hat. Hier knnen z.B. regelmige Sicherungen abgelegt werden, die nur fr den Anwender von Interesse sind. b. Eine Projekt-Freigabe mit der Bezeichnung "Transfer" soll fr jeden der drei Anwender erreichbar sein. Hier werden z.B. Projektdaten strukturiert abgelegt und ausgetauscht. Entsprechend lauten die Berechtigungen: Lesen und Schreiben. c. Eine Quellen-Freigabe mit dem Namen "Source" soll als Hilfe fr die Administratoren dienen, um ber das Netz auf Programme zugreifen zu knnen, die auf den Arbeitsplatzrechnern zu installieren sind. Der Zugriff erfolgt ausschlielich von den Administratoren, entsprechend haben auch nur sie die vollen Berechtigungen wie Lesen und Schreiben. d. Eine Medien-Freigabe mit dem Namen "Media" dient fr alle Anwender und dem Streaming-Client als Quelle fr Prsentationen, Audioinhalten und Dokumentationen. Alle Anwender erhalten die Berechtigung "nur lesend" darauf zugreifen zu knnen. Das Ablegen und Verwalten der Inhalte erfolgt nur durch die Administratoren.

12.2. Die Installation von Samba


109

Samba

Die Installation erfolgt mit dem Paketmanager pacman, der im Kapitel Arch Linux-Administration beschrieben wird. Entsprechend einfach ist das Installieren mit: pacman -S samba Danach sollte ein neues Verzeichnis mit dem Namen samba unter /etc eingerichtet worden sein.

12.3. Die Konfiguration von Samba


Diese steckt in der Datei smb.conf im Verzeichnis /etc/samba. Als Vorlage wird die Datei smb.conf.default genutzt, die sicherheitshalber vorher kopiert wird: cp /etc/samba/smb.conf.default /etc/samba/smb.conf Folgender Inhalt zeigt fr das Beispiel die notwendige Konfiguration. Bitte lschen Sie smtliche Eintrge aus Ihrer Konfigurationsdatei, die nichts mit der unteren Konfiguration zu tun haben, um ein Fehlverhalten von Samba zu vermeiden: nano /etc/samba/smb.conf # # # # # # # #

smb.conf Autor: Farid Msbahi Version: 0.4 Datum: 21.08.2006 Letzte Aenderung: 01.12.2009 Beschreibung: Konfiguration fuer einen einfachen Dateiserver

# Globale Einstellungen fr Samba [global] workgroup = kreativgruppe server string = wotan security = user encrypt passwords = yes hosts allow = 127.0.0.1 192.168.1.110 192.168.1.120 ==> ==>192.168.1.130 192.168.1.210 #hosts deny = 192.168.1.10 log file = /var/log/samba/%m.log max log size = 1000 log level = 2 interfaces = lo eth0 bind interfaces only = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 wins support = yes wins proxy = no dns proxy = no unix extensions = no invalid users = root bin sys uucp daemon adm sync ==> ==>shutdown halt mail news operator #Benutzerverwaltung fr Samba bis zur Version 3.4.0 #smb passwd file = /etc/samba/private/smbpasswd 110

Samba

#passdb backend = smbpasswd #Benutzerverwaltung fr Samba ab der Version 3.4.0 passdb backend = tdbsam # Verzeichnisfreigaben [homes] comment = Eigenes Laufwerk public = no printable = no browseable = no read only = no writable = yes [media] comment = Medien-Laufwerk path = /mnt/fbase/media valid users = @kreativ public = no printable = no browsable = yes read only = yes writable = no write list = emmelie ida force group = kreativ create mask = 0640 directory mask = 0750 [source] comment = Programm-Laufwerk path = /mnt/fbase/source valid users = emmelie ida marco public = no printable = no browsable = yes read only = yes writable = no write list = emmelie ida force group = kreativ create mask = 0640 directory mask = 0750 [transfer] comment = Projekt-Laufwerk path = /mnt/fbase/transfer valid users = emmelie ida marco public = no printable = no browsable = yes readonly = yes writable = no write list = emmelie ida marco force group = kreativ create mask = 0660 directory mask = 0770 Hier beginnen die bergeordneten globalen Einstellungen fr die gesamte Konfiguration. Manche Einstellungen knnen allerdings individuell z.B. in den Freigaben berschrieben werden. Unter Windows wird die Arbeitsgruppe als Netzwerkunterteilung eingesetzt und als Standard mit "Arbeitsgruppe" benannt. In diesem Fall lautet die Gruppe "kreativgruppe" und sollte in den Netzwerkeinstellungen von Windows bercksichtigt werden (workgroup = kreativgruppe). Der Dateiserver soll mit Namen "wotan" heien (server string = wotan). Hier wird die Art der Autentifizierung eingestellt. In diesem Fall durch Samba selbst, auf Benutzerebene (mit Kennwort) ohne einen separaten Dienst (security = user), mit verschlsselter Kennwortverwaltung (encrypt passwords = yes). 111

Samba

Nur bestimmte Rechner sollen Zugang zum Server erhalten, daher die Zugriffstbestimmungen auf Rechnerebene durch Angabe der entsprechenden IP-Adressen (hosts allow = 127.0.0.1 192.168.1.110 192.168.1.120 192.168.1.130 192.168.1.210). Das Gegenstck zum Punkt fnf ist die Angabe der Rechner, deren Zugriff auf jeden Fall verweigert werden soll (hosts deny = 192.168.1.10).

Anmerkung
In dieser Konfiguration ist die "hosts deny" Option ausgeklammert. Wenn beide Optionen gleichzeitig genutzt werden, besteht nach meinen Erfahrungen die Gefahr, dass trotzdem ein Rechner durch diese Zugriffssteuerung schlpfen kann, der weder in der Liste von "hosts allow" noch in "hosts deny" steht. Daher ist es am sichersten, nur eine Optionsart zu benutzen. Ein Logbuch ber die Vorgnge soll pro Rechner angelegt werden (log file = /var/log/samba/%m.log). Dazu wird die maximale Dateigre in Kilobyte (max log size = 1000) und Detailierungsgrad der Logbucheintrge bestimmt (Log level = 2). In einem Rechner knnen mehrere Netzwerk-Schnittstellen zur Verfgung stehen. Welche fr die Kommunikation bestimmt sind (interfaces = lo eth0) und entsprechend an Samba gebunden werden (bind interfaces only = yes), wird an dieser Stelle definiert. Samba wird dann dazu gezwungen nur auf die IP-Adressen zu "hren", die hinter den Netzwerknamen (lo und eth0) stehen. Fr den Netzwerkverkehr knnen bestehende Datenpuffer vergrert werden, um einen Geschwindigkeitsvorteil zu erhalten (socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192). Samba stellt auch sehr einfach einen WINS-Service zur Verfgung. Als lokaler Namen-Server, wo sich alle (Windows-) Rechner registrieren. Der WINS-Dienst gibt dann bei direkter Anfrage Auskunft wer im Netz ist. Im privaten Umfeld wird vielleicht der Server nicht immer 24 Stunden am Tag laufen, daher also nicht immer den Service bereit stellen knnen. Wird dieser eingesetzt, sollte nur ein WINS-Server im LAN eingesetzt werden, um Probleme auszuschlieen. Ich habe ihn mal mit aktiviert, da er so kein Brot frisst (wins support = yes). Unter Windows wird dann in den Netzwerkeinstellungen als WINS-Server die IP-Adresse vom Samba-Server eingetragen. Auch Proxy-Funktionalitten stellt Samba bereit, die hier allerdings nicht bentigt werden (wins proxy = no) (dns proxy = no). Die "Unix Extensions" sind Erweiterungen im Protokoll, um z.B. eine bessere Untersttzung bei Links zu Dateien zu ermglichen. Ich habe eher die Erfahrung gemacht, dass diese Erweiterungen auch zu Problemen beim Setzen der Berechtigungsattribute fhren knnen. Daher habe ich die "Unix Extensions" ausgeschaltet. Unter Punkt fnf und sechs werden auf Rechnerebene, mit der entsprechenden IP-Adresse, die Zugriffserlaubnis geregelt. An dieser Stelle geschieht dies (zustzlich) auf Benutzerebene (invalid users = root bin sys uucp daemon adm sync shutdown halt mail news operator). Dabei handelt es sich nicht nur um personenbezogene Anwender, sondern auch um Dienste selbst, die durch einen Fehler und einer entsprechenden Attacke "zweckentfremdet" werden knnten. Ab der Version 3.4.0 von Samba hat das Entwickler-Team die Benutzerverwaltung in einer einfach strukturierten Datenbank (TDB =Trivial Database) bergeben und dies als Standardvorgabe fest gelegt. Somit ist die Verwaltung der Benutzer samt Kennwrtern in der ursprnglichen Fassung mittels der Datei smbpasswd hinfllig geworden. Wer dennoch mit der herkmmlichen Methode (smbpasswd) arbeiten mchte, kann die Arbeit mit dem Eintrag "passdb backend = smbpasswd" erzwingen. Wer also in dieser Form (smb passwd file = /etc/samba/private/smbpasswd) die Konfiguration vornimmt, sollte ebenfalls spter darauf achten, dass nur "root" als Eigentmer lesend und schreibend auf diese Datei Zugriff hat. Ob die Entwickler in Zukunft die Nutzung der Datei smbpasswd noch untersttzen werden, steht in den Sternen. Ich mchte den neuen Weg so frh wie mglich einschlagen, daher sind die "alten" Parameter auskommentiert und die Neuen parallel 112

Samba

zur Voreinstellung (ab Version 3.4.0) mit "passdb backend = tdbsam" eingebunden. Der Umstieg mit bernahme der bestehenden Daten ist ohne Probleme mglich und wird u.a. im Kapitel "Die Samba-Benutzerverwaltung" beschrieben. Hier beginnen die Freigaben. Jede Freigabe beginnt mit dem Eigennamen in eckigen Klammern, der fr den Anwender spter als Freigabenamen sichtbar ist. [homes] besitzt hier eine Sonderstellung, dieser wird von Samba besonders interpretiert und veranlasst eine eigene Verarbeitung der Benutzerverzeichnisse. Daher ist eine Angabe des Pfades der entsprechenden Freigabe nicht notwendig. Vielmehr wird der Benutzername des gerade angemeldeten Anwenders interpretiert und dessen Heimatverzeichnis automatisch zugeordnet. Da sich fr die anderen Freigaben die Parameter mehr oder weniger wiederholen, sind die Notwendigen in der folgenden Tabelle aufgelistet:

Tabelle 12.1. Samba-Freigaben-Parameter


Parameter comment Beschreibung Ein Kommentar fr den Anwender erleichtert die Definition der Freigabe. Wird allerdings nicht von jedem Dateibrowser angezeigt. Der genaue Pfad des Verzeichnises, welches frei gegeben werden soll. Angabe der Benutzer. berechtigten Benutzername oder Gruppe (angefhrt durch ein At-Zeichen). Bemerkung

path

valid users

public = no

Mitteilung, dass die entsprechende Freigabe nicht ffentlich, z.B. durch einen Gastzugang erreichbar ist. Hierbei handelt es sich nicht um eine Druckerfreigabe. Soll die Freigabe sichtbar sein oder nicht? Einige Betriebssysteme halten sich allerdings nicht an dem Parameter und zeigen trotzdem die Freigabe an, falls auf "no" gesetzt wurde. Darf nur gelesen werden? Drfen Dateien und Verzeichnisse angelegt werden? Welcher Benutzer oder welche Gruppe darf Dateien und/oder Verzeichnisse anlegen. Identisch zum Parameter "valid users". Hebt fr die angegebenen Benutzer und/oder Gruppen den Schreibschutz durch den Parameter "writable" auf.

printable = no browsable = yes/no

read only = yes/no writable = yes/no

write list

force group

Gibt vor, welche Gruppe beim Anlegen einer Datei oder eines Verzeichnisses vergeben wird. 113

Samba

create mask

Erzwingt Berechtigungsattribute Anlegen neuer Dateien.

die bei

directory mask

Erzwingt die Berechtigungsattribute bei Anlegen neuer Verzeichnisse.

Getestet wird die Konfiguration am besten mit dem Befehl testparm. Dieser liest die Datei smb.conf aus und gibt nach einer Prfung einen Bericht aus. Hier knnen im ersten Schritt eventuelle Tippfehler in der Konfigurations erkannt und beseitigt werden.

12.4. Die Vorbereitungen


Samba setzt auf Linux auf. Das heit, egal welche Freigaben sie in der Konfiguration definieren, es mssen die entsprechenden Freigaben auf Linux-Ebene vorhanden sein. Wrden Sie z.B. ein Verzeichnis einem Benutzer unter Samba zum Lesen frei geben, es allerdings unter Linux vernachlssigen, wird der Zugang verweigert.

Abbildung 12.1. Samba-Symbiose

Anmerkung
Bei der Berechtigungsvergabe werden die meisten Fehler gemacht. Daher empfehle ich mit dem Aufbau der Verzeichnisse - fr die spteren Freigaben - zu beginnen. Mit den entsprechenden Berechtigungen auf Linux-Ebene sollte grozgig begonnen werden, um anschlieend darauf die Samba-Freigaben "konservativer" nach eigener Planung zu montieren. Hierdurch vereinfacht sich die Fehlerdiagnose. Erste Fehler sind dann eher bei der Samba-Konfiguration 114

Samba

einzugrenzen. Luft die Samba-Installation wie man es sich wnscht, knnen im zweiten Schritt die Freigaben auf Linux-Ebene weiter eingeschrnkt werden. Die folgenden Schritte beziehen sich zusammen auf die Serverausstattung laut Kapitel "Ein einfacher Dateiserver" bzw. auf das Beipielkonzept "Die Agentur Alpenglas" zu Beginn des Samba-Kapitels.

1.

Die spteren Verzeichnisse (Freigaben) sind unter fbase anzulegen. Dieses Verzeichnis (/mnt/fbase) sollte schon existieren, da whrend der Ausstattungsvorbereitungen hierhin die Partition gemountet wurde. Eine Prfung sollte folgendes Ergebnis zeigen: ls /mnt

Abbildung 12.2. List (/mnt)

Anmerkung
Fr eine bessere bersicht der Zugriffsbestimmungen fr Verzeichnisse und Dateien kann ich zum Befehl list weitere Parameter empfehlen, die weitere Details wie in der Abbildung zu sehen sichtbar machen (siehe Anhang A). Mehr zum Thema Berechtigungen ist im Anhang B zu finden. Um das Ergebnis auf einen anderen Weg vergleichen zu knnen, gibt es den Weg: a. Sprung in das Verzeichnis mit dem Befehl cd (Change Directory): cd /mnt um anschlieend mit: ls -lisa sich den Inhalt anzeigen zu lassen. b. Oder der Verzeichnispfad wird dem Befehl list mit bergeben, dessen Inhalt angezeigt werden soll: ls -lisa /mnt

Um nun die Freigabe-Verzeichnisse anzulegen, wird in das Verzeichnis fbase gewechselt: 115

Samba

cd /mnt/fbase Nun werden die Verzeichnisse erstellt, die spter unter Samba fr die Anwender frei gegeben werden. Hierzu dienen die folgenden Eingaben: mkdir media mkdir source mkdir transfer Alle drei neuen Verzeichnisse besitzen die Standardberechtigung fr den Eigentmer, die Gruppe und fr jeden anderen Benutzer. Um im ersten Schritt Fehler bei der Konfiguration zu vermeiden, werden auf Linux-Ebene die Berechtigungen recht "locker" definiert. Jedes der drei neuen Verzeichnisse soll fr jeden Benutzer uneingeschrnkte Berechtigungen erhalten. Also in das Verzeichnis berhaupt zu wechseln, Inhalte einzusehen und neue Objekte anlegen zu drfen. Somit gestaltet sich die feinere Zugriffssteuerung ausschlielich auf die darber liegende Samba-Ebene. Mit folgenden Eingaben werden die Zugriffsberechtigungen der drei Verzeichnisse fr "jeden" gelockert. Chmod 757 media Chmod 757 source Chmod 757 transfer

Abbildung 12.3. List (/mnt/fbase)

2.

Nachdem die Verzeichnisse angelegt wurden, wird nun mit der Benutzerverwaltung weiter gemacht. Samba kennt verschiedene Wege fr eine Benutzerverwaltung, ob lokal auf dem Rechner selbst, wo Samba installiert ist oder ber eine Verwaltung auf ausgelagerten Maschinen mit entsprechenden Diensten. Der einfachste Weg ist die lokale Benutzerverwaltung. Hierzu muss unter Linux der Benutzer angelegt sein (fr die Linux-Ebene) und identisch fr Samba (die Samba-Ebene). Mit der Samba-Installation werden neben den Diensten auch einige Werkzeuge installiert. Unter anderem auch, um fr Samba Benutzer anzulegen. Hierbei sollte der Benutzernamen und das Kennwort auf beiden Ebenen (Linux/Samba) identisch sein (nicht gemeint ist: Benutzername = Kennwort). 116

Samba

Damit fr Samba ebenfalls die Benutzer angelegt werden knnen, sollten Sie berprfen, ob das Verzeichnis private unter /etc/samba existiert. Denn dort werden verschlsselt die Samba-Benutzerdaten in einer einfachen Datenbank abgelegt. Existiert dieses Verzeichnis nicht, muss es dort nachtrglich mit: mkdir /etc/samba/private angelegt werden. Bitte achten Sie auch darauf, dass ausschlielich der Eigentmer "root" den Zugriff besitzt und als Gruppe ebenfalls "root" gesetzt ist. Wenn nicht, sollten Sie die entsprechenden nderungen vornehmen. Wrde das Verzeichnis nicht existieren, erhalten Sie eine Fehlermeldung bei dem Versuch einen Samba-Benutzer zu erstellen. Weitere Infos zum Anlegen und Verwalten von Benutzern unter Linux ist im Kapitel "Die Benutzerverwaltung" beschrieben. Fr das Beispielkonzept werden dann folgende Benutzer fr Linux und Samba angelegt. Zuvor allerdings wird eine neue Gruppe zur einfacheren Verwaltung erzeugt, in der spter die Benutzer zugeordnet werden: groupadd kreativ Nun die Benutzer. Die Befehle useradd und passwd sind jeweils fr das Anlegen des Benutzers und die Zuweisung eines Kennwortes unter Linux zustndig. Mit Hilfe von pdbedit geschieht dies in einem Rutsch im Dialog fr Samba: useradd -m -G users,wheel,kreativ,optical,storage -s /bin/bash emmelie passwd emmelie pdbedit -a -u emmelie useradd -m -G users,wheel,kreativ,optical,storage -s /bin/bash ida passwd ida pdbedit -a -u ida useradd -m -G users,kreativ marco passwd marco pdbedit -a -u marco useradd -m -G users,kreativ erika passwd erika pdbedit -a -u erika Wie bestimmt erkannt, sieht das Anlegen der Benutzer fr Marco und Erika anders 117

Samba

aus, als bei den Anderen. Das liegt damit zusammen, da Marco und Erika reine Samba-Freigaben aus der "Ferne" nutzen und sich nicht direkt an den Server anmelden werden. Dem zufolge bentigen solche Benutzer auch keine Shell-Zuweisung bzw. eine eingeschrnkte Gruppenzuordnung; hier in unserem Beispiel nur die Gruppen, die spter fr die Samba-Freigaben notwendig sind. Emmelie und Ida haben darber hinaus administrative Aufgaben und werden sich auch direkt an den Server anmelden. Daher wurde eine Shell-Zuweisung mit entsprechenden Gruppenzugehrigkeiten definiert.

12.5. Die Samba-Benutzerverwaltung


Wie im vorherigem Kapitel beschrieben, ist die Voraussetzung fr Samba analog einen Linux-Benutzer zu haben. Das ist der Grund, warum einerseits fr Linux mit dem Befehl useradd und mit pdbedit fr Samba der selbe Benutzer angelegt werden muss. Eine Synchronisation, ausgehend von pdbedit, um beim Anlegen eines Samba-Benutzers auch sofort einen Linux-Benutzer zu haben gibt es nicht. Der Befehl pdbedit selbst ist vermutlich erst mit der Version 3.4.0 von Samba berhmt geworden, da das Samba-Entwicklerteam die einfache Benutzerverwaltung mit Hilfe der Datei smbpasswd zurck gestellt hat. Und fr gleiche Zwecke zur einfach strukturierten Datenbank (TDB =Trivial Database) bergegangen ist, die nun auch die Voreinstellung ist. Folgende pdbedit-Funktionen, neben dem Anlegen neuer Benutzer, sind wohl die Gebruchlichsten:

Tabelle 12.2. Kleine pdbedit-bersicht


Parameter pdbedit -a -u Benutzername Beschreibung Anlegen eines neuen Benutzers Abfragen des Kennwortes. mit

pdbedit -a -u Benutzername -f "Manfred Anlegen eines neuen Benutzers, mit Musterman" Benutzernamen und kompletten Namen. pdbedit -x -u Benutzername pdbedit -i smbpasswd -e tdbsam Lschen eines Benutzers. Importieren der "alten" Benutzerdaten (aus der Datei smbpasswd) in die neue Datenbankform. bersicht aller vorliegenden Benutzer in der Datenbank.

pdbedit -L -v

12.6. Der Samba-Stapellauf


Sind alle Punkte aus den vorherigen Kapiteln bedacht, kann jetzt der erste Start beginnen. Als Benutzer "root" angemeldet, wird jetzt direkt der Samba-Dienst unter Arch Linux gestartet: /etc/rc.d/samba start Haben Sie vielleicht noch nderungen an der Konfigurationsdatei zu machen, sollten Sie vorher den Dienst stoppen: /etc/rc.d/samba stop

118

Samba

und nach der Bearbeitung neu starten. Samba liest zwar in regelmigen Abstnden die Konfiguration erneut ein, nderungen werden aber am sichersten und schnellsten ber diesen Weg registriert. Um sich nun eine bersicht ausgeben zu lassen, wie Samba konfiguriert wurde und sich nun gegenber den Benutzern prsentiert, wird mit folgender Eingabe am Server angezeigt: smbclient -U% -L localhost

12.7. Der Zugriff auf die Samba-Freigaben


Der Zugriff ist im Allgemeinen unter den verschiedenen Betriebssystemen recht unkompliziert. Im Samba-Beipiel selbst ist allerdings ein Streaming-Gert mit aufgefhrt. Hier sollte auf jeden Fall bedacht sein, dass solch ein Gert Samba-Freigaben (SMB/CIFS) verwalten kann. Wie dann der Zugriff konfiguriert wird, hngt vom jeweiligen Hersteller des Gertes ab. Im Allgemeinen wird der Pfad zur Freigabe mit dem entsprechenden Namen in den jeweiligen Einstellungsdialogen eingetragen. Laut Beispiel sind das: Benutzername (z.B. marco oder emmelie) media source transfer Beim Versuch die Freigabe mit dem System zu verlinken, wird dann nach Benutzername und Kennwort gefragt. Grundvoraussetzung ist hierbei eine funktionierende Netzwerkkonfiguration, wie sie z.B. im Kapitel "Das Netzwerk" beschrieben ist. Das beschriebene Konzept gilt hierbei nicht nur fr Arch Linux, sondern quasi fr fast alle Betriebssysteme, die per TCP/IP im Verbund kommunizieren. Wie nun der Zugang unter Mac OS X, Windows und Linux funktioniert, zeigen die folgenden Kapitel.

12.7.1. Unter Apple Mac OS X


Unter Mac OS X ist der Zugang zu Freigaben sehr einfach. Hierzu wird der Finder gestartet und ber das Men Gehe zu Mit Server verbinden die Verbindung hergestellt.

Abbildung 12.4. Mac OS X - Finder

119

Samba

Im Folgedialog wird nach der Wunschfreigabe verlangt. Der komplette Pfad zur entsprechenden Freigabe (z.B.:smb://192.168.1.20/transfer) ist hier eine Voraussetzung. Mit dem Schalter Pluszeichen knnen die Adressen als Vorlage unter "Bevorzugte Server" abgelegt werden.

Abbildung 12.5. Mac OS X - Mit dem Server verbinden

120

Samba

Da unter Samba der Zugriff auf Benutzername mit Kennwort konfiguriert ist, werden die Zugangsdaten im nchsten Dialog abgefragt. Danach wird die Verbindung, bei erfolgreicher Authentifizierung, als Netzwerklaufwerk im Finder angezeigt.

12.7.2. Unter Linux (Gnome)


Exemplarisch fr alle anderen grafischen Benutzeroberflchen fr Linux ist die Verbindung zu den Freigaben unter Gnome beschrieben. Im Prinzip sind es immer die gleichen Wege; als erstes wird der passende Dialog zum Verbinden eines Servers geffnet. Bei Gnome ber Orte Verbindung zu Server.

Abbildung 12.6. Gnome - Dialog 1

121

Samba

Um anschlieend die Verbindungsdaten einzugeben.

Abbildung 12.7. Gnome - Dialog 2

122

Samba

Wichtig ist zu Beginn den "Dienste-Typ" per Pulldownmen auf die "Windows-Freigabe" zu stellen. Anschlieend reicht es aus die IP-Adresse des Servers, den Namen der Freigabe und den Benutzernamen in die entsprechenden Felder einzutragen. Nach Besttigung mit dem Schalter Verbinden, kommt die Authentifizierung. Ist das richtige Kennwort eingetragen, bindet Gnome die Freigabe ein.

12.7.3. Unter Linux (Shell)


Manchmal ist es notwendig, auch unter einer Shell die Freigaben im System zu verlinken (mounten). Entweder um eben schnell etwas zu sichern oder insbesondere dann, wenn bestimmte Programme oder Skripte mit den Netzwerkverbindungen - innerhalb einer grafischen Benutzeroberflche hergestellt - nichts anfangen knnen. Also die Freigaben berhaupt nicht erreichen, weil sie im Verzeichnisbaum des Systems erwartet aber nicht integriert wurden. Dabei gibt es verschiedene Mglichkeiten dieses zu bewerkstelligen. Fr alle Mglichkeiten gilt als Vorbereitung Samba zu installieren, um alle notwendigen Module und Programme zu erhalten (siehe Kapitel: Die Installation von Samba). Manche Hilfsprogramme untersuchen das Samba-Verzeichnis nach einer vorhandenen Samba-Konfigurationsdatei, die ohne Inhalt mit: nano /etc/samba/smb.conf angelegt wird. Sonst wrde die Arbeit dieser Hilfsprogramme verweigert werden. Als nchstes gilt es den Mountpunkt zu bestimmen, wo spter die Freigaben mit verlinkt werden. Als root angemeldet, wird zu erst mit: mkdir /mnt/ds_wotan ein bergeordnetes Verzeichnis angelegt. Hier als Beispiel mit dem Namen des Dateiservers, da evtl. im Netzverbund nicht nur ein Server vorhanden ist. Darunter werden dann Verzeichnisse mit den Namen angelegt, die analog als Freigabe vom Dateiserver zur Verfgung gestellt werden: mkdir /mnt/ds_wotan/transfer mkdir /mnt/ds_wotan/media mkdir /mnt/ds_wotan/source Da alle neuen Verzeichnisse vom root angelegt wurden, sind diese somit nur fr ihn zugnglich. Damit der Standardbenutzer ebenfalls auf die Verzeichnisse zugreifen kann, mssen als erstes die Gruppe und die Zugriffsattribute zum bergeordnetem Verzeichnis gendert werden: chgrp users /mnt/ds_wotan chmod 0750 /mnt/ds_wotan Hiermit ist der Zugriff zwar vom root und vom Standardbenutzer mglich, aber das Verwalten ist weiterhin nur dem root vorbehalten. Das Ergebnis sollte dann wie in der nchsten Abbildung aussehen.

123

Samba

Abbildung 12.8. Shell - Mount-Vorbereitung

Im Folgenden werden zwei Methoden zum Verbinden der Freigaben beschrieben: 1. Bei der ersten Methode wird mit dem Standardbefehl mount gearbeitet. Das Resultat ist schnell vorhanden und hat hierbei allerdings einen Haken. Das Mounten ist in der Regel nur dem Benutzer root gestattet. Mchte ein Standardbenutzer ebenfalls Freigaben mounten, so muss er entweder die Mglichkeit haben sich als root zu substituieren (Befehl su) oder der Befehl sudo steht zur Verfgung, bzw. die systemweite Berechtigung vom Befehl mount wird angepasst, so dass z.B. die Gruppe users, in der alle Standardbenutzer enthalten sind, mount nutzen drfen. Die letztere Alternative wrde ich aus Sicherheitsgrnden ausschlieen. Also bleiben nur noch su und sudo fr Standardbenutzer brig. In beiden Fllen wird allerdings nach dem root-Kennwort gefragt, was ggf. wiederum zu Komplikationen fhren kann, wenn dieses fr Standardbenutzer aus Sicherheitsbestimmungen nicht bekannt sein darf. Generell darf der Zugriff auf eine Freigabe mit einem anderen Benutzernamen, als zum gerade aktuell Genutzen erfolgen. Was stimmen muss, ist der Benutzername in Verbindung mit dem Kennwort, so wie es auf Serverseite eingerichtet wurde. Eine lokale Prfung durch das Linux-System erfolgt nicht. Also als root angemeldet wird mit:

mount -t cifs //192.168.1.20/transfer /mnt/ds_wotan/transfer - o username=emmelie,password=richtigeskennwort,file_mode=0660,dir_mode=0770,uid=e die Freigabe im Verzeichnisbaum eingebunden. Meldet sich root vom System ab (kein Neustart des Systems) und der Standardbenutzer kommt zum Zuge, sind die Verbindungen noch vorhanden. Gegenber Samba gilt immer noch der vorher serverseitig angemeldete Benutzer mit entsprechender Authentifizierung. Was funktioniert wie:

Tabelle 12.3. Mount - Parameter


Parameter -t cifs //192.168.1.20/transfer /mnt/ds_wotan/transfer 124 Beschreibung Hiermit wird das Dateisystem angegeben. Die komplette Freigabenamen. Adresse samt

Einhngepunkt im Verzeichnisbaum.

Samba

-o

Die Angabe von Optionen, die hintereinander durch ein Komma getrennt angegeben werden.

username=emmelie,password=richtigeskennwort Entsprechende Authentifizierung gegenber dem Samba-Server. file_mode=0660,dir_mode=0770 Berechtigungsattribute fr Dateien (file_mode) und Verzeichnisse (dir_mode) fr den lokalen Einhngepunkt. Benutzer (uid) und Gruppe (gid), die ebenfalls fr den lokalen Einhngepunkt gesetzt weden.

uid=emmelie,gid=users

Die nchste Abbildung zeigt das Ergebnis.

Abbildung 12.9. Shell - Mount-Ergebnis

Interessant ist jetzt, dass eine Bearbeitung wie zuvor fr das bergeordnete Verzeichnis ds_wotan mit den Befehlen chgrp und chmod nicht notwendig war. Sondern dies mit Hilfe der entsprechenden Parametern geschah. Bei den Berechtigungsattributen zhlt allerdings das, was als Ergebnis bei der Verknpfung mit einem logischen "UND" bei beiden Attributen-Seiten (Lokal / Server) resultiert. Daher kann es z.B. nicht mglich sein, sich lokal mehr Berechtigungen zu geben, als auf dem Server definiert wurde. Die Parameter file_mode und dir_mode knnen so auf alle Freigaben laut Beispiel genutzt werden.

Abbildung 12.10. Gesetzte Attribute (Beispiel)

125

Samba

Fr neue Dateien oder Verzeichnisse werden Gruppen- bzw. Benutzernamen mit Zugriffsrechten auf Serverseite so gesetzt, wie es in der Samba-Konfiguration definiert wurde. Alle manuell hergestellten Verbindungen halten solange, bis der Rechner neu gestartet wird. 2. Gegenber dem manuellen Weg, ist vielleicht ein automatisches Verbinden der Freigaben mit jedem Rechnerstart gewnscht. Hier hilft die Datei fstab weiter. Ein Eintrag pro Freigabe wird diese dann mit jedem Rechnerstart verbinden. Exemplarisch und angelehnt an Punkt 1, wird dazu folgende Zeile in die Datei fstab hinzugefgt: nano /etc/fstab . . //192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==> ==>username=emmelie,password=richtigeskennwort, ==> ==>file_mode=0660,dir_mode=0770,uid=emmelie,gid=users 0 0 Der Zusatz des Gruppennamens users in den Optionen, gibt jedem Standardbenutzer die Mglichkeit, nachtrglich diese Freigabe mit: mount /mnt/ds_wotan/transfer zu verbinden, falls zum Zeitpunkt des Rechnerstarts der Dateiserver ausgeschaltet war. Mchte man von vornherein nur die Mglichkeit schaffen, als Standardbenutzer die Freigabe zu mounten, allerdings nicht schon beim Rechnerstart, hilft zustzlich der Parameter noauto weiter: . 126

Samba

. //192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==> ==>noauto,username=emmelie,password=richtigeskennwort, ==> ==>file_mode=0660,dir_mode=0770,uid=emmelie,gid=users 0 0 Insgesamt gibt es allerdings zwei Seiten der Medaille. Einerseits wurde die Klippe umschifft, dass ausschlielich root (Punkt 1) innerhalb einer Shell, Freigaben mit dem lokalen System verbinden kann. Die andere Seite zeigt allerdings, dass fr die hier beschriebene Lsung nur von einem Standardbenutzer neben root ausgegangen wird. Gibt es mehrere Benutzer auf ein und demselben System, so wird denen automatisch die Verbindung unter der einen fest definierten Benutzervorgabe (mit entsprechenden Berechtigungen) auf dem Tablett serviert. In beiden Varianten werden die Zugangsdaten in Klartext, fr Jeden sichtbar benutzt. Etwas sicherer werden Benutzernamen und Kennwort in eine Textdatei (Credentials-Datei) geschrieben und im Benutzerverzeichnis gespeichert. nano /home/emmelie/.cifslogin username=emmelie password=richtigeskennwort Anschlieend sollten sicherheitshalber die Zugriffsattribute Lesen und Schreiben nur fr den Eigentmer mit: chmod 0600 /home/emmelie/.cifslogin entsprechend der Zugriff auf root: chown root /home/emmelie/.cifslogin eingeschrnkt werden: Die Parameter username und password sind dann durch den Eintrag "credentials=/home/emmelie/.cifslogin" auszutauschen. Fr die erste Variante ergibt dies:

mount -t cifs //192.168.1.20/transfer /mnt/ds_wotan/transfer - o credentials=/home/emmelie/.cifslogin,file_mode=0660,dir_mode=0770,uid=emmelie, Analog fr den Weg ber die Datei fstab: . . //192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==> ==>credentials=/home/emmelie/.cifslogin,file_mode=0660, ==> ==>dir_mode=0770,uid=emmelie,gid=users 0 0

12.7.4. Unter Windows


Bei Windows wird am einfachsten der Windows-Explorer zum Verbinden der Freigaben eingesetzt. Mit den Menpunkten Extras Netzlaufwerk verbinden wird im Folgedialog der Pfad zur Freigabe eingetragen. 127

Samba

Windows schlgt in der Regel den letzten freien Buchstaben aus dem Laufwerks-Alphabet vor. Dieser kann aber ber das Pulldown-Men Laufwerk gendert werden. Verbindungen, die beim nchten Start automatisch zugeordnet werden sollen, sind ber die Checkbox Verbindung bei Anmeldung wiederherstellen zu speichen. Hier sollte dann aber der Server zur Verfgung stehen, sonst wird der Versuch mit einer Fehlermeldung quittiert. Auch hier gilt die gleiche Authentifizierungs-Prozedur, die Abfrage nach Benutzername und dem Kennwort. Die Freigabe ist dann nach der Anmeldung als Laufwerk im Windows-Explorer sichtbar.

12.8. Der Nachschliff


Klappt alles, kann nun der Samba-Dienst in die Datei rc.conf als solcher mit der Bezeichnung "samba" eingetragen werden (siehe Kapitel: Dienste), damit mit jedem Rechnerstart Samba direkt mit gestartet wird.

128

Kapitel 13. SSH (Secure-Shell)


Mit der SSH besteht u.a. die Mglichkeit, sich im verschlsselten Dialog von einem Arbeitsplatz (Client) aus auf einen vernetzten Zielrechner (Server) anzumelden. Diese Verbindung kann dann z.B. fr Pflegearbeiten am Zielrechner ber den eigenen Bildschirm her halten. Aber auch ein komplett verschlsselter Tunnel, quasi als "gesicherte" Datenstrecke zwischen Client und dem Server wird von SSH untersttzt. Dabei ist in allen Fllen die Kommunikation nicht nur auf das lokale Netzwerk begrenzt, sondern ebenfalls ber das Internet mglich. In dieser Beschreibung beziehe ich mich allerdings nur auf den direkten Zugriff auf den Zielrechner (ohne Tunnel). Die SSH ist eigentlich kein einzelnes Programm, sondern eine Sammlung von Werkzeugen, um entsprechende Verbindungen herstellen und Vorbereitungen treffen zu knnen. Vielleicht schon aus dem ersten Absatz zu erkennen mindestens einen Dienst (sshd), der die Verbindungsanfrage entgegen nimmt und ein Initialprogramm (ssh), welches die Verbindung aufbauen mchte. SSH bietet zwei Protokollversionen an (SSHv1 und SSHv2), die sich nicht nur in den Einsatz von Prfsummen fr die eigentlichen Datenbertragung unterscheiden, sondern auch bei den Mglichkeiten und Ablufen sich gegenber dem Server-Dienst zu vermitteln, bis die eigentliche Verbindung steht. Da SSHv1 einen Fehler besitzt, der dazu ausgenutzt werden kann, auf dem Server-Rechner fremden Code zu starten, beziehen sich die spteren Konfigurationen auf den Einsatz von SSHv2, kombiniert mit den symmetrischen und asymmetrischen Verschlsselungsmethoden, evtl. bekannt durch das Programm GnuPG. Das Generieren von sogenannten Schlsselpaaren (ffentlicher und privater Schlssel) ist also zustzlich notwendig. Das Verschlsseln der eigentlichen Informationen erfolgt symmetrisch mit vorher zwischen Client (Arbeitsplatz) und Server (Zielrechner) ausgehandelten Verschlsselungsverfahren und entsprechendem Sitzungsschlssel (symmetrischer Schlssel). Um nicht in die Situation zu kommen, mich bei den Bezeichnungen Client, Server, Arbeitsplatz und Zielrechner zu verrenken, schrnke ich mich im Folgenden auf die Namen Arbeitplatzrechner und Zielrechner ein. Denn auch wenn die offiziellen Quellen vom SSH-Server und Client sprechen, kann der Trugschluss entstehen, dass es nur eine Verbindung zwischen einem physischen Grorechner und einem kleinen Arbeitsplatzrechner geben darf. SSH bietet sich hervorragend an, einen Dialog auch zwischen zwei Arbeitzplatzrechnern herzustellen. Wenn z.B. jemand direkte Hilfe am Rechner bentigt und auf der anderen Seite der Welt gerade die Hilfe sitzt. Fr ein besseres Verstndnis der gesamten Ablufe und Konfigurationen, orientiere ich mich an dem Netzwerkkonzept (Kapitel: Das Netzwerk) zusammen mit dem Beispiel aus dem Samba-Kapitel, wo die Mitarbeiterin Ida der Agentur "Alpenglas" ebenfalls Administratorin fr den Dateiserver Wotan ist und diesen nun ber die SSH von ihrem Arbeitsplatz aus warten mchte. Die genannten Benutzernamen und IP-Adressen sind entsprechend der eigenen Umgebung anzupassen.

13.1. Die Installation von SSH


Fr die Installation wird die Open-Source-Version von SSH eingesetzt. Die Installation erfolgt entsprechend mit: pacman -S openssh

129

SSH (Secure-Shell)

Und zwar auf beiden Seiten, auf dem Arbeitsplatzrechner und Zielrechner. Vorausgesetzt auf dem Arbeitsplatzrechner wird ebenfalls Arch Linux eingesetzt. Nach der Installation sollte sich dann ein Verzeichnis mit dem Namen ssh unter /etc und verschiedene Konfigurationsdateien befinden.

13.2. Die Vorbereitungen auf dem Zielrechner (Server)


Fr beide Teilnehmer (Arbeitsplatzrechner und Zielrechner) sind diverse Vorbereitungen notwendig. Die folgenden Kapitel betrachten daher die Vorarbeit sehr fokuiert. Im Kapitel "Zusammenfassung und Ergnzungen" werden dann Ttigkeiten ergnzend fr beide Seiten dargestellt. Wie immer, wird hier die Anmeldung als root vorausgesetzt, damit auch die Berechtigung vorhanden ist, entsprechende nderungen vornehmen zu drfen.

13.2.1. Die Konfiguration des SSH-Dienstes


Die Konfiguration des SSH-Dienstes (sshd) auf dem Zielrechner ist wohl mit am wichtigsten, da dieser dem Arbeitsplatzrechner verschiedene Vorgaben unterbreitet, nachdem dieser die Verbindung initiiert hat. Die Standardvorgaben in der Konfigurationsdatei sind eigentlich gut gewhlt, sind in der Regel aber auskommentiert. Fr eine Eindeutigkeit, welche Parameter nun wirklich genommen werden, habe ich die entsprechenden Parameter "frei gelegt"; beziehe mich aber in der Beschreibung auf die Wichtigsten. nano /etc/ssh/sshd_config # # # # # #

Autor: Farid Msbahi Version: 0.3 Datum: 21.08.2006 Letzte Aenderung: 01.12.2009 Beschreibung: Konfiguration fuer den SSH-Dienst

Port 22 AddressFamily any ListenAddress 192.168.1.20 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key SyslogFacility AUTH LogLevel INFO LoginGraceTime 1m PermitRootLogin no StrictModes yes MaxAuthTries 3 MaxSessions 2 AllowUsers emmelie ida #AllowGroups Beispielgruppe DenyUsers root #DenyGroups Beispielgruppe RSAAuthentication yes PubkeyAuthentication yes HostbasedAuthentication no 130

SSH (Secure-Shell)

IgnoreUserKnownHosts no IgnoreRhosts yes PasswordAuthentication no #PermitEmptyPasswords no ChallengeResponseAuthentication no KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosGetAFSToken no GSSAPIAuthentication no #GSSAPICleanupCredentials yes UsePAM yes AllowAgentForwarding yes AllowTcpForwarding yes GatewayPorts no X11Forwarding no #X11DisplayOffset 10 #X11UseLocalhost yes PrintMotd yes PrintLastLog yes TCPKeepAlive yes UseLogin no UsePrivilegeSeparation yes PermitUserEnvironment no Compression delayed ClientAliveInterval 0 ClientAliveCountMax 3 UseDNS yes PidFile /var/run/sshd.pid MaxStartups 3 PermitTunnel no ChrootDirectory none Banner none Subsystem sftp /usr/lib/ssh/sftp-server Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc,==> ==>blowfish-cbc,cast128-cbc,arcfour256,==> ==>arcfour128,arcfour,aes256-ctr,aes192-ctr,==> ==>aes128-ctr # List of available MAC (message authentication code) # algorithms MACs hmac-md5,hmac-sha1,umac-64@openssh.com,==> ==>hmac-ripemd160 Ganz wichtig, hier wird der Port definiert, auf dem der SSH-Dienst hrt.

Anmerkung
Falls ber das Internet SSH eingesetzt werden soll, wird empfohlen den Standardport 22 auf einen anderen frei erfundenen Wert zu ndern, um hier Angriffe gleich zu erschweren. Diese nderung muss in der Arbeitsplatzkonfiguration bercksichtigt werden. Hier der Eintrag der Adresse, auf die der Dienst gebunden werden soll. Festlegung welche Protokollversion genutzt wird. Bitte hier kein Rcksprung zum Protokoll 1 mit dem Parameterwert "2,1" untersttzen. Wird vom Client das Protokoll "1" verlangt, wird durch die serverseitige Eindeutigkeit mit der Vorgabe mit nur "2" die Verbindung abgebrochen. Mit diesem Parameter wird bestimmt, nach welcher Zeit die Verbindung abgebrochen werden soll, sofern eine Authentifizierung gegenber dem SSH-Server nicht erfolgen 131

SSH (Secure-Shell)

konnte. An dieser Stelle wird per Vorgabe das Anmelden vom root erlaubt. Ich bin nicht der Meinung, dass root sich direkt anmelden sollte, sondern nur ber den Weg eines Standardanwenders mit entsprechender Berechtigung zu Substituieren (su). Also sich erst im zweiten Schritt als root auszugeben. Aus Sicherheitssicht muss fr einen Eindringling demnach das Kennwort des Standardbenutzers und vom root bekannt sein, um wirklich den vollen Zugriff zu erhalten. Daher ein klares "No". Um nur bestimmten Benutzern den Zugriff zu erlauben, wird mit diesem Parameter, gefolgt von den entsprechenden Benutzernamen, diesen die Erlaubnis erteilt. Grundvoraussetzung ist, dass diese Benutzer ebenfalls ein Konto auf dem Zielrechner haben. Um gleich ganzen Gruppen die Erlaubnis zu erteilen, bedient man sich dem Parameter AllowGroups. Das Gegenstck lautet DenyUsers und DenyGroups, um entsprechend den Zugang zu verwehren. Als Beispiel habe ich dies in diesem Fall mit dem Benutzer root erledigt. Eigentlich berflssig, da dies ja schon etwas hher mit dem Parameter PermitRootLogin erfolgte. Diese Option aktiviert das Benutzen von Schlsselpaaren (RSA/DSA), die wohl sicherste Methode fr die Authentifizierung zwischen Arbeitsplatzrechner und Zielrechner. Aus Sicherheitsgrnden wird die einfache Authentifizierung mittels Benutzername und Kennwort ausgeschaltet. Als Subsystem wird ein SFTP-Server mit angeboten und auch hier gestartet, um sicher auf das eigene Benutzerverzeichnis zugreifen zu knnen; ein SFTP-Programm wird vorausgesetzt. SSH untersttzt verschiedene symmetrische Verschlsselungs-Algorithmen, die hier der Reihe nach priorisiert und so dem Client vorgeschlagen werden.

13.2.2. Den Systemzugriff erlauben


Zustzlich zu den eigenen sshd-Einstellungen, werden die Systemdateien hosts.allow und hosts.deny genau in dieser Reihenfolge auf dem Zielrechner ausgewertet, um den Zugriff von auen zu steuern. Der Aufbau der beiden Dateien ist relativ einfach, wobei hier die Strategie verfolgt wird, grundstzlich alles zu verbieten, um selektiv dem einen oder anderen Dienst (in diesem Fall sshd) die Erlaubnis zu erteilen. Demnach sollte die Datei hosts.deny wie folgt aussehen: nano /etc/hosts.deny # # hosts.deny # ALL: ALL: DENY # End of file Entsprechend sieht dann der Aufbau der Datei hosts.allow aus: nano /etc/hosts.allow # # hosts.allow # # Einschraenken des Zugriffes auf bestimmte IP-Adressen sshd: 192.168.1.110/255.255.255.0, ==> ==>192.168.1.120/255.255.255.0: ALLOW # Einschraenken des Zugriffes auf die IP-Adressen # von 192.168.1.1 bis 192.168.1.254 # sshd: 192.168.1.0/255.255.255.0: ALLOW 132

SSH (Secure-Shell)

# Keine Einschraenkung von IP-Adressen, um # auch aus dem Internet erreichbar zu sein # sshd: ALL: ALLOW # End of file Die Eintrge sind dreigeteilt und jeweils durch einen Doppelpunkt getrennt. Im ersten Teil steht der Dienstname, im Zweiten der Rechnername oder IP-Adressen bzw. IP-Adressbereiche und zuletzt das Kommando.

13.2.3. Vorbereiten einer Firewall


Sollte der Zielrechner (hoffentlich) durch eine Firewall geschtzt sein, so sollte der genutzte Port laut sshd-Konfiguration fr eintreffende Verbindungen frei gegeben werden. Ein Beispiel ist im Firewall-Kapitel zu Iptables (siehe Kapitel: Firewall fr einen Server) zu sehen, wo hierbei auf den Standardport 22 ausgegangen wird.

13.2.4. Der richtige Benutzer


Der sptere Zugriff vom Arbeitsplatzrechner aus, erfolgt mit einem auf dem Zielrechner eingerichteten Benutzer. Aus Sicherheitsgrnden ist laut sshd-Konfiguration der Zugriff von root nicht erlaubt. Es sollte also ein Standardbenutzer angelegt sein, der nicht umbedingt mit dem gleichen Benutzernamen des Arbeitsplatzrechners bereinstimmen muss, aber er sollte fr Notflle die Berechtigung besitzen, sich als root zu substituieren (su). Aus dem Arch Linux-Administrationskapitel (siehe Kapitel: Die Benutzerverwaltung) entliehen, wird ein Standardbenutzer (laut Beispiel fr Ida) mit entsprechender Gruppenzugehrigkeit angelegt und auch ein Benutzerkennwort vergeben (falls noch nicht geschehen): useradd -m -G users,wheel,optical,storage -s /bin/bash ida Um weitere Schritte zu bercksichtigen, ist es notwendig, dass im Benutzerverzeichnis ein SSH-Verzeichnis existiert, wo spter der ffentliche Schlssel des Arbeitsplatzbenutzers kopiert wird: mkdir /home/ida/.ssh

13.3. Die Vorbereitungen auf dem Arbeitsplatzrechner (Client)


13.3.1. Die Konfiguration des SSH-Clients
Die hier beschriebene Arbeitsplatzkonfiguration bezieht sich auf Arch Linux und gilt wahrscheinlich auch fr andere Linux/Unix-Systeme (einschlielich Mac OS X). Der Speicherort fr die eigene Konfigurationsdatei, sofern dieser noch nicht existiert, muss auf dem Rechner angelegt werden, der spter auf dem Zielrechner zugreifen will. Das heit, dass fr alle hier beschriebenen Folgeschritte die lokale Anmeldung am Arbeitsplatzrechner, unter dem eigenen Benutzernamen (es sollte nicht root sein) notwendig ist. ?SSH prft im Benutzerverzeichnis (Arbeitsplatzrechner) beim Verbindungsaufbau nach, ob dort eine Konfiguration vorliegt. Diese hat auch eine hhere Prioritt gegenber der allgemeinen installierten Konfiguration (/etc/ssh/ssh_config). Existiert also kein 133

SSH (Secure-Shell)

SSH-Verzeichnis im eigenen Benutzerverzeichnis, so sollte dieses angelegt werden. Dieses Verzeichnis wird spter ebenfalls fr die Ablage der eigenen Schlssel und weiteren Dateien bentigt: ?mkdir ~/.ssh Die eigene Konfigurationsdatei lautet config: nano ~/.ssh/config ## # Autor : Farid Msbahi # Version: 0.2 # Datum : 21.08.2006 # Letzte Aenderung: 08.01.2009 # Beschreibung: Konfiguration fuer den SSH-Client Host * Port 22 Protocol 2 ForwardAgent no ForwardX11 no RhostsRSAAuthentication no RSAAuthentication no PubkeyAuthentication yes PasswordAuthentication no HostbasedAuthentication no GSSAPIAuthentication no GSSAPIDelegateCredentials no BatchMode no CheckHostIP yes AddressFamily any ConnectTimeout 0 StrictHostKeyChecking ask # IdentityFile ~/.ssh/identity IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_dsa # Cipher 3des Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc,blowfish-cbc, ==> ==>cast128-cbc,arcfour256,arcfour128,arcfour,aes256-ctr, ==> ==>aes192-ctr,aes128-ctr MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 EscapeChar ~ Tunnel no TunnelDevice any:any PermitLocalCommand no HashKnownHosts yes Sollte der Zielrechner auf einen anderen Port hren, sollte dieser hier eingetragen werden Nur die Untersttzung von SSHv2 wird gefordert. Im Dialog mit dem Zielrechner, wird auf dem Arbeitsplatzrechner der ffentliche Schlssel des Zielrechners mit einer lokalen Liste aus der Datei ~/.ssh/known_hosts verglichen. Befindet sich der ffentliche Schlssel nicht in dieser Liste, wird der Dialog sofort abgebrochen. Mit der Option "ask" wird der Benutzer allerdings vorher gefragt, ob nicht der Schlssel aufgenommen und somit der Zielrechner mit seiner (IP-)Adresse legitimiert werden soll.

13.3.2. Der Schlsselbund


?Ein eigener Schlsselbund, bestehend aus dem ffentlichen und privaten Schlssel, 134

SSH (Secure-Shell)

muss generiert werden. Ab dem Protokoll SSHv2 werden zwei Verschlsselungsverfahren, nach RSA und DSA untersttzt. Exemplarisch beschreibe ich das Generieren des eigenen Schlsselpaares nach RSA, weil die Schlssellnge nicht wie bei DSA auf 1024 Bit beschrnkt ist: ssh-keygen -b 2048 -t rsa Nach der Ausfhrung, wird der Pfad zum Speichern der Dateien abgefragt. Hier sollte der gleiche Ort angegeben sein, wo evtl. schon die Konfigurationsdatei fr SSH gespeichert wurde. Der private Schlssel ist der Wichtigste von beiden und wird daher noch mit einem Kennwort (Passphrase) abgesichert. Danach sollten sich nun im Benutzerverzeichniss des Anwenders (auf dem Arbeitsplatzrechner) folgende Dateien befinden:

Tabelle 13.1. SSH-Verzeichnis


Dateiname config id_rsa id_rsa.pub Beschreibung Eigene SSH-Benutzer-Konfiguration. Privater Schlssel. ffentlicher Schlssel.

13.4. Zusammenfassung und Ergnzungen


In den vorherigen Kapiteln, wurden die Vorbereitungen sowohl fr den Zielrechner als auch fr den Arbeitplatzrechner betrachtet. Weitere Schritte sind allerdings noch notwendig. Zusammengefasst wurde bis jetzt folgendes erledigt: am Arbeitsplatzrechner unter Arch Linux: 1. Installation von Open-SSH. 2. Konfiguration des SSH-Clients (eigene Konfiguration). 3. Generieren des Schlsselbundes. Die Arbeiten auf dem Zielrechner: 1. Installation von Open-SSH und Konfiguration des SSH-Dienstes. 2. Allgemeinen Systemzugriff erlauben (host.deny und host.allow). 3. Vorbereiten der lokalen Firewall (Port 22). 4. Anlegen eines Benutzers (Ida). Was bis jetzt ganz auer Acht gelassen wurde, ist das Kopieren des Schlssels. Die Problematik die nun besteht ist, wie kommt der ffentliche Schlssel auf den Zielrechner. Kurz zum Verstndnis, der ffentliche Schlssel wird jedem "Gesprchspartner" gegeben, in diesem Fall dem SSH-Dienst auf dem Zielrechner, um Informationen fr den Schlsselinhaber (Ida) zu verschlsseln. Der Schlsselinhaber ist dann in der Lage, nur mit seinem privaten Schlssel diese Information wieder zu entschlsseln. Im Prinzip stehen wenige Mglichkeiten zur Verfgung wie z.B.:

135

SSH (Secure-Shell)

ber eine bestehende Netzwerkverbindung, einen Dateiserverdienst wie Samba zu nutzen, um auf das entsprechende Benutzerverzeichnis zugreifen zu knnen. Per Mail, damit der Empfnger die notwendigen Schritte erledigt. Den Schlssel auf einen entsprechend zu bertragen. Datentrger (USB-Speicherstick) zu kopieren und

Fr den Moment der Schlsselbergabe die Sicherheitsstufe zurck zu setzen, um sich mit Benutzernamen und Kennwort an den Zielrechner anzumelden. In den nchsten Kapiteln werden zwei Wege beschrieben, wie der ffentliche Schlssel auf den Zielrechner kopiert wird. Ist dies - unabhngig der Methode - geschehen, so sind noch wenige Nacharbeiten notwendig. In allen Fllen gilt es aber zu bercksichtigen:

Anmerkung
Der SSH-Dienst auf dem Zielrechner sucht im Benutzerverzeichnis nach der Datei, wo der ffentliche Schlssel abgelegt ist. Diese Datei muss den Namen "authorized_keys2" besitzen.

13.4.1. Kopieren des ffentlichen Schlssels per Datentrger (USB-Speicherstick)


Beim Benutzen einer grafischen Benutzeroberflche ist der Einsatz eines USB-Speichersticks relativ einfach, da dieser automatisch in das System sichtbar eingebunden wird. Ohne einer grafischen Oberflche ist das nicht ganz so einfach, da der USB-Speicherstick zwar vom System (hoffentlich) erkannt, aber evtl. nicht sofort sichtbar im Verzeichnisbaum hinein gehangen (gemountet) wird. Mit ein paar Eingaben kann aber trotzdem ein externer USB-Speicherstick sichtbar hinzugefgt werden. Vorher wird aber ein Zielverzeichnis zum Mounten erstellt. Am Arbeitsplatzrechner als root angemeldet, folgt die Eingabe: mkdir /media/usbstick Damit jetzt der richtige Gertenamen herausgefunden wird, unter dem USB-Speicherstick erkannt wurde, ist es am einfachsten, auszugsweise Systemmeldungen (Kernel Ring Buffer) nach SCSI-Gerten auszulesen: dmesg | grep SCSI Das Ergebnis sollte in etwa so aussehen, wie in der folgenden Abbildung: der die

Abbildung 13.1. dmesg Ausgabe

136

SSH (Secure-Shell)

Wichtig ist hierbei der Textauszug "USB Mass Storage devices" und der Gertenamen in den eckigen Klammern (in diesem Beispiel sdb). Mit dieser Information kann nun der USB-Speicherstick in den Verzeichnisbaum hineingehangen werden: mount -t auto /dev/sdb1 /media/usbstick Bei Fehlermeldungen besteht leider die Mglichkeit, dass der genutzte USB-Speicherstick mit einem Dateisystem formatiert wurde, das nicht automatisch erkannt wird (-t auto). Dann helfen wieder die Systemmeldungen: gmesg | tail Abhngig vom Ergebnis, funktioniert dann z.B. die Eingabe: mount -t vfat /dev/sdb1 /media/usbstick Jetzt steht eigentlich nichts mehr im Weg, um den ffentlichen Schlssel vom Arbeitsplatzrechner auf den USB-Speicherstick zu kopieren (Ida ist weiterhin als root angemeldet): cp /home/ida/.ssh/id_rsa.pub /media/usbstick/ Mit folgender Eingabe wird der Memorystick wieder aus dem Systembaum heraus genommen, um anschlieend mit ihm zum Zielrechner zu gehen: umount /media/usbstick Mit der gleichen Vorgehensweise wie oben beschrieben, wird der USB-Speicherstick dem Zielrechner bekannt gemacht. Ida kopiert anschlieend ihren ffentlichen Schlssel in Ihr Benutzerverzeichnis (ida) auf dem Zielrechner. Dabei denkt sie an die Vorgabe, den Dateinamen entsprechend zu ndern, das direkt beim Kopieren mit dem Copy-Befehl (cp) bercksichtigt wird: cp /media/usbstick/id_rsa.pub /home/ida/.ssh/authorized_keys2 beziehungsweise smtliche Berechtigungen zu berprfen.

13.4.2. Kopieren des ffentlichen Schlssels per Secure Copy (SCP)


Eigentlich nehme ich schon etwas vom nchsten Kapitel weg. Aber um die Funktionen und Vorgnge zu verstehen, sind schon ein paar Details zum Verbindungsaufbau notwendig. Bei SCP handelt es sich um ein Kopierwerkzeug, welches sich der SSH bedient. Der Unterschied hierbei ist nur, dass nach erfolgreicher Verbindung eine Datei vom Arbeitsplatzrechner zum Zielrechner kopiert wird (anders herum geht es auch), mehr nicht. Im Vergleich zum vorherigen Kapitel eine super bequeme Lsung. Daher sehe ich den Weg mit dem USB-Speicherstick eher als Notlsung, aber auch als den Sichersten an. Denn, laut der sshd-Konfiguration auf dem Zielrechner, sind unsichere Anmeldungen mit einem Benutzernamen und passendem Kennwort, dass im Klartext bertragen wird, nicht erlaubt. In diesem Fall also nur kurz fr das Kopieren des ffentlichen Schlssels zu nutzen. Spter kann natrlich SCP weiter genutzt werden, aber dann mit der sichersten Verbindung, die SSH zu bieten hat. Als vorbereitende Manahme, muss also die sshd-Konfiguration auf dem Zielrechner 137

SSH (Secure-Shell)

angepasst werden. Dazu meldet sich Ida als root an, um anschlieend die Datei bearbeiten zu drfen: nano /etc/ssh/sshd_config . . PasswordAuthentication yes . . Der Parameter wird von "no" auf "yes" gendert. Hiermit wird das Anmelden mit Benutzerdaten untersttzt, somit stellt jetzt der SSH-Dienst zwei Zugangsmethoden zur Verfgung. Zurck an ihrem Arbeitsplatzrechner, ndert Ida ebenso Ihre persnliche Konfiguration um. Unter Ihrem Benutzer angemeldet (nicht als root) wird folgende Eingabe gemacht: nano ~/.ssh/config . . PubkeyAuthentication no PasswordAuthentication yes . . Der Secure-Shell ber SCP wird somit mitgeteilt, dass jetzt die Anmeldung an dem Zielrechner mit einem Benutzer und Kennwort erfolgen soll. Ida braucht jetzt nur noch folgende Eingabe zu machen, um nun Ihren ffentlichen Schlssel auf dem Zielrechner zu kopieren: scp ~/.ssh/id_rsa.pub ida@192.168.1.20:~/.ssh/authorized_keys2 Die Bedeutung der Parameter ist hier sehr bersichtlich. 1. Die Angabe der Quelldatei (~/.ssh/id_rsa.pub). 2. Die Angabe des Zieles (ida@192.168.1.20:). Der Benutzername (ida) im Ziel ist optional. Wrde hier nur die IP-Adresse angegeben sein, geht SCP vom aktuell angemeldeten Benutzer aus. 3. Und das Ziel mit neuem Dateiname (~/.ssh/authorized_keys2). Wenn zum ersten mal eine Verbindung zum Zierechner aufgebaut wird, berprft der SSH-Client ob dieser berhaupt legitim ist. Dazu wird die IP-Adresse zusammen mit dem ffentlichen Schlssel des Zielrechners mit den Angaben in der Datei ~/.ssh/known_hosts auf dem Arbeitsplatzrechner berprft. Bedingt durch die Einstellung in der SSH-Konfiguration des Arbeitsplatzrechners (StrictHostKeyChecking ask), wird in diesem Fall gefragt, ob der neue Zielrechner mit seinem ffentlichen Schlssel in die Datei aufgenommen und legitimiert werden soll. Wrde ein "yes" bei der Option gesetzt sein, htte der neue Zielrechner keine Chance, da er nicht in der Liste steht. Mit "no" wre diese Funktionalitt ausgeschaltet. Wurde also die erste Verbindung erlaubt, wird nach dem Kennwort des Benutzers (Ida) gefragt. Stimmt die Eingabe, kopiert SCP die Datei laut Vorgabe. Hiernach ndert Ida genau anders herum die Konfigurationsdateien auf ihrem Arbeitsplatz 138

SSH (Secure-Shell)

(PubkeyAuthentication yes/PasswordAuthentication (PasswordAuthentication no).

no)

und

auf

dem

Zielrechner

13.4.3. Die Eigentumsverhltnisse


Der SSH-Dienst prft penibel die Eigentumsverhltnisse (Eigentmer, Gruppe und Berechtigungen) des Verzeichnisses .ssh und ganz besonders den darin liegenden ffentlichen Schlssel des Benutzers (Ida) auf dem Zielrechner. Da whrend der ganzen Vorbereitungen mit dem Benutzer root auf dem Zielrechner gearbeitet wurde, ist es nun notwendig die richtigen Benutzerberechtigungen zu setzen. Attribute, die einmal vom Benutzer root gesetzt wurden, drfen nicht von einem Standardbenutzer gendert werden. Eine Anmeldung als root auf dem Zielrechner ist daher notwendig. Ist der ffentlichen Schlssel auf dem Zielrechner kopiert, bearbeitet Ida (aus dem Beispiel) als erstes das SSH-Verzeichnis und alle darunter liegenden Objekte (-R): chown -R ida /home/ida/.ssh chgrp -R ida /home/ida/.ssh Dann werden die Berechtigungen so gesetzt, dass nur der Eigentmer (Ida) die Berechtigung hat, das Verzeichnis zu nutzen: chmod 0700 /home/ida/.ssh Entsprechend werden alle Objekte innerhalb des SSH-Verzeichnis gesetzt (ich gehe davon aus, dass sich dort nur die besprochenen Dateien und keine Verzeichnisse befinden): chmod 0600 /home/ida/.ssh/* Somit sind die Eigentumsverhltnisse klar gesetzt.

13.5. Der Verbindungsaufbau


Ich will es nicht unterschlagen, aber eine SSH-Verbindung nur mit Benutzerangaben klappt auch jetzt schon. Diese Verbindung ist nur sehr unsicher, daher hier der Verbindungsaufbau, wozu die in den vorherigen Kapiteln beschriebenen Vorbereitungen getroffen wurden. Ida setzt sich an ihrem Arbeitzplatzrechner und startet die Verbindung mit folgender Eingabe: ssh -l ida 192.168.1.20 Der Parameter "-l" dient zur Angabe eines Benutzers (ida) und die IP-Adresse des Zielrechners. Wird die Anfrage vom Zielrechner entgegen genommen, erfolgt ein Hndeschtteln in Form eines Abstimmprozesses ber verschiedene Details, wie z.B. welches Protokoll (SSHv1/SSHv2) eingesetzt werden soll, welche Verschlsselungsalgorithmen bevorzugt sind und um spter den Zielrechner zu legetimieren seinen ffentlichen Schlssel (host-key). Vieles wird schon ber die Konfigurationsdateien bestimmt, so dass der Abstimmprozess ohne Umwege erfolgen sollte. Eine Verschlsselte Verbindung besteht zu diesem Zeitpunkt noch nicht, es wurden eher die organisatorischen Dinge geklrt. Was nun kommt, ist der Austausch des symmetrischen Schlssels, wobei man hier nicht direkt von einem Austausch sprechen 139

SSH (Secure-Shell)

kann. Vorweg das Problem, was seit der Antike bestimmt zu vielen Morden gefhrt hat. Der berhmte Schlssel, mit dem geheime Botschaften erstellt und (mit)gelesen werden konnten, muss zwischen zwei Partner so sicher wie mglich augestauscht werden. Wurde dieser Schlssel z.B. im Mittelater auf eine Pergamentrolle geschrieben, so hatte es der Bote bestimmt nicht einfach, diese Rolle lebendig dem Partner zu berreichen. Bis in den siebziger Jahren hat sich an diesem Problem nichts gendert, nur der Kommunikationsweg ein wenig. Als mathematische Glanzleistung, haben in den siebziger Jahren die Entwickler Diffie, Hellman und Merkle dieses Problem gelst. Hierbei wird eine sogenannte Einwegfunktion genutzt, die zwar ein bestimmtes Ergebnis berechnet, aber nicht mehr auf Ihre eigentlichen Faktoren zurck schlieen lsst. Bestimmte Werte fr diese Einwegfunktion werden von beiden Seiten ausgetauscht und drfen sogar mitgehrt werden. Das Endergebnis ist zu guter Letzt der symmetrische Schlssel, der unabhngig aber identisch von beiden Kommunikationspartnern erstellt wurde. In diesem Fall zwischen Arbeitsplatzrechner und Zielrechner. Ab diesem Zeitpunkt erfolgt die Kommunikation auf einem verschlsselten Weg. Der Arbeitsplatzrechner erhielt schon vom Zielrechner den ffentlichen Schlssel (host-key). Dieser wird mit der lokalen Datenbank, bestehend aus einer Datei auf dem Arbeitsplatzrechner (~/.ssh/known_hosts) verglichen. Ist der ffentliche Schlssel dort nicht enthalten, wird einmalig abgefragt, ob dieser zusammen mit der IP-Adresse hinzugefgt werden soll. Bei entsprechender Besttigung mit "yes", ist in diesem Fall der Zielrechner dann gegenber dem Arbeitsplatzrechner legitimiert. Damit jetzt der Arbeitsplatzrechner gegenber dem Zielrechner als plausibel eingestuft werden kann, wird eine generierte Zufallszahl mit dem ffentlichen Schlssel (in diesem Fall von Ida) verschlsselt und an den Arbeitsplatzrechner gesendet. Ida muss jetzt mit Ihrem privaten Schlssel die verschlsselte Information entschlsseln. Dazu wird die Passphrase des privaten Schlssels abgefragt, das Ergebnis ist die Zufallszahl des Zielrechners. Im letzten Schritt wird nun eine Prfsumme ber diese Zufallszahl gebildet, die wieder zurck an den Zielrechner geschickt wird. Der Zielrechner berprft die Prfsumme und bei positivem Ergebnis folgt der normale Datenaustausch. Der Datenaustausch sieht dann so aus, als dass jetzt der Zielrechner dem Arbeitsplatzrechner eine Shell zur Verfgung gestellt hat. In diesem Fall ber einen verschlsselten Dialog. Ida kann jetzt Befehle eingeben, die auf dem Zielrechner ausgefhrt werden, um so z.B. ihre Wartungsarbeiten vornehmen zu knnen. Verlassen wird die "Secure-Shell" auf dem Zielrechner mit der Eingabe von: exit

140

Kapitel 14. Ulogd


Als Ergnzung zum vorinstallierten Logdienst Syslog-ng, kann Ulogd eingesetzt werden. Er ist fr die Protokollierung fr Iptables (siehe Kapitel: Iptables) zugeschnitten und arbeitet nach meinen Erfahrungen besser mit ihm zusammen, als mit Syslog-ng.

14.1. Die Installation von Ulogd


Die Installation erfolgt wie fast immer mit: pacman #S ulogd Root-Rechte vorausgesetzt.

14.2. Ulogd und Iptables


Nach der Installation ist eigentlich fr den Standardbetrieb eine nderung der Konfiguration von Ulogd nicht notwendig. Die Protokollierung erfolgt hierbei in eine Datei, im verzeichnis /var/log/ . Zum besseren Auffinden der Log-Datei fr Iptables, kann ich allerdings folgende kleine nderungen vorschlagen: nano /etc/ulogd.conf . . . [LOGEMU] file="/var/log/fw.log" sync=1 . . .

14.3. Ulogd als Dienst


Damit Ulogd als Dienst automatisch beim Bootvorgang gestartet wird, ist ein Eintrag selbiger in der Datei rc.conf notwendig. Beschrieben ist dies im Kapitel "Dienste".

141

Teil V. Programme und Werkzeuge

Inhaltsverzeichnis
15. Der Editor Nano ........................................................................................144

143

Kapitel 15. Der Editor Nano


Nano ist ein leicht zu bedienender Editor und bietet gerade am Anfang den intuitiven Einstieg Dateien zu bearbeiten. Eigentlich brauche ich wenig ber Nano zu schreiben. Die wichtigsten Tastatur-Kombinationen sind schnell erklrt: Speichern der (genderten) Datei erfolgt mit CTRL+O Beendet wird Nano mit CTRL+X Die Navigation in der Datei selbst, erfolgt einfach mit den Pfeiltasten. Innerhalb von Nano knnen zwar Dateien in die gerade Geffente eingefgt werden (CTRL+R), in der Regel wird aber die zu bearbeitende Datei zustzlich zum Programmnamen selbst mit aufgefhrt. Entweder mit kompletten Pfad oder einfach nur mit dem Namen selbst. Als Beispiel wird die Datei rc.conf bearbeitet, die sich im Verzeichnis etc befindet: nano /etc/rc.conf Wrde die Datei nicht existieren, so wird diese beim Speichern angelegt. Wer eine Nummer sicherer gehen mchte, kann den Parameter -B mit angeben, um nach dem Speichern automatisch eine Backup-Datei der Ursprungsdatei erstellen zu lassen: nano -B /etc/rc.conf Diese Sicherungsdatei besitzt dann als Erkennungsmerkmal ein Tildezeichen am Ende des Dateinamens. In der unteren Zeile von Nano selbst, sind die wichtigsten Tastatur-Kombinationen aufgelistet. Dort wird auch gezeigt, dass mit CTRL+G die Nano-Hilfeseite mit weiteren Funktionen geffnet wird.

144

Anhang A. Kurzreferenz Linux-Befehle


Dieses Buch soll keine Linuxreferenz darstellen, dazu gibt es schon einige Bcher. Hier sind eher zu den einzelnen Beispielen und Kapiteln weitere ergnzende Befehle aufgelistet. Auch werden nicht alle Parameter bis ins Detail erklrt, vielmehr liegt der Focus auf die gngigsten Eingaben. Die kompletten Beschreibungen zeigen die entsprechenden Man-Pages.

A.1. Befehle

145

Kurzreferenz - Linux-Befehle

Name
ls Ausgabe einer Liste von Dateien und Verzeichnissen

bersicht
ls [Option]

Option
-l Erweiterte Ausgabeform, wie die Nagbe von Dateigren -i I-Node Angaben zu Dateien werden mit ausgegeben -s Ausgabe der Systemblcke pro Datei -a Anzeige von versteckten Dateien und Verzeichnissen, die mit einem Punkt im Namen beginnen

Beispiel
ls -lisa

Kommentar
Weitere Details sind aus der Man-Page zu entnehmen.

146

Kurzreferenz - Linux-Befehle

Name
shutdown Herunterfahren oder Neustart des Rechners

bersicht
shutdown [Option]

Option
-h Fhrt den Rechner herunter. -r Fhrt einen Neustart durch now Zeitpunkt der Ausfhrung

Beispiel
shutdown -h now

Kommentar
Dieser Befehl wird systemseitig nur vom Benutzer "root" zugelassen. Weitere Details sind aus der Man-Page zu entnehmen.

147

Anhang B. Kurzreferenz Berechtigungen bei Verzeichnissen und Dateien


B.1. Der oktale Weg
Die Standardberechtigungen unter Unix beziehen sich auf Verzeichnisse und Dateien gleichermaen. Es gibt verschiedene Wege, um beiden Objekten die entsprechenden Zuweisungen zu machen. Ich behalte mir hier allerdings vor, nur eine Mglichkeit (nmlich die der oktalen Schreibweise) zu beschreiben.

B.1.1. Von Objekten, Kategorien und Attributen


Grundstzlich wird pro Objekt (Verzeichnis oder Datei) eine Berechtigung in drei Kategorien vergeben. Als erstes die des Eigentmers, welcher das Objekt erstellt hat, dann die der Gruppe (fr eine bestimmte Anzahl von Benutzern) und zuletzt die fr alle anderen. Jedem der drei Kategorien werden wiederum drei Berechtigungs-Attribute wie Lesen (r), Schreiben (w) und Ausfhren (x) vergeben.

Abbildung B.1. Berechtigung - Verzeichnis/Datei

Das Setzen der entsprechenden Attribute erfolgt mit einem einzigen Zahlenwert, bestehend aus drei Stellen. Da pro Attribut-Bit (Lesen, Schreiben und Ausfhren) nur einen von zwei Zustnden (gesetzt bzw. nicht gesetzt) erhalten kann, werden die Einzelwerte pro Kategorie addiert, wo das entsprechende Attribut gesetzt werden soll. 148

Kurzreferenz - Berechtigungen bei Verzeichnissen und Dateien

Beispiele: Ein Verzeichnis, dass neu angelegt wird bekommt als Eigentmer den Namen des aktuell angemeldeten Benutzers und als Gruppe die primre Gruppe, die der Benutzer angehrt. Unix vergibt dem Eigentmer laut Voreinstellung die vollen Berechtigungen wie Lesen (r), Schreiben (w) und Ausfhren (x). Bei Verzeichnissen bedeutet das Attribut Lesen, dass der Inhalt des Verzeichnisses betrachtet werden darf. Das Attribut Schreiben, dass auch neue Objekte innerhalb des Verzeichnisses angelegt werden drfen. Und Ausfhren, dass berhaupt in das Verzeichnis hinein gesprungen werden darf. Werden nun die Einzelwerte der "gesetzten" Attribute fr den Eigentmer zusammen addiert (4 + 2 + 1), erhalten wir den ersten Einzelwert. In unserem Fall "7". Ebenfalls laut Voreinstellung bekommt die Gruppe - und automatisch jeder Benutzer, der der Gruppe angehrt - das Attribut Lesen und Ausfhren. Bedeutet, die Gruppemitglieder drfen den Inhalt ansehen und entsprechend in das Verzeichnis wechseln. Werden die Einzelwerte fr die gesetzten Attribute addiert (4 + 1), berechnet sich der zweite Wert zu "5". Das Gleiche Spiel gilt fr die Kategorie "Jeder". Auch hier die gleichen Berechtigungen und analog der Einzelwert "5" Werden nun alle Einzelwerte als Stelle zusammen gesetzt, ergibt sich der Zahlenwert "755". Mit dem entsprechenden Werkzeug und diesem Zahlenwert knnen in einem Rutsch also die entsprechenden Berechtigungen pro Kategorie gesetzt werden. Mchte man die Berechtigungen fr die Kategorie "Gruppe" und "Jeder" entziehen, wrde sich der Zahlenwert zu "700" zusammen setzen. Bei Dateien verhlt es sich fast gleich. Mit dem Attribut "Lesen" drfte man die Datei einsehen. Mit "Schreiben" entsprechend verndern. Das Attribut "Ausfhren" wrde nur bei ausfhrbaren Programmen und Skripten einen Sinn ergeben, denn dann drften diese auch gestartet werden. Das Setzen der entsprechenden Attribute ist absolut identisch, wie bei dem Verzeichnis-Beispiel.

B.1.2. Weitere Steuer-Attribute


Neben den Berechtigungs-Attributen aus dem vorherigen Kapitel (Von Objekten, Kategorien und Attributen), gibt es noch Weitere mit bestimmten Steuereigenschaften wie z.B. das Sticky-Bit. Das Sticky-Bit mit dem Attributwert "1" wird eingesetzt, wenn ein Lschen von Objekten durch alle anderen Benutzern, auer durch den Eigentmer selbst, verhindert werden soll. Beim temporren Verzeichnis (tmp) ist dieses Attribut gesetzt, da dort Programme ihre Daten zwischen speichern, die als Eigentmer den entsprechenden Programmbenutzer besitzen. So kann nur derjenige seine temporren Daten lschen, der entsprechend der Eigentmer ist. Als Voraussetzung gilt allerdings, wenn das Sticky-Bit benutzt werden soll, dass die Kategorie "Jeder" das Ausfhren-Attribut besitzt. Das Setgid-Bit mit dem Attributwert "2" und das Setuid-Bit mit dem Attributwert "4" funktionieren identisch, wobei sich Setgid auf die Gruppe und Setuid auf den Benutzer bezieht. Bei beiden wird z.B. bei einem Programmstart entweder die Gruppe (Setgid) oder der Eigentmer (Setuid) als Berechtigungs-Referenz herangezogen, jenachdem welches der beiden Attribute gesetzt ist. 149

Normaler Weise haben Programme als Datei- und Gruppen-Eigentmer "root". Wre jetzt eines der beiden Steuer-Attribute gesetzt, so htte ein Standard-Benutzer die gleichen Rechte fr diesen Prozess wie "root" selbst und nicht als "normaler" Benutzer. Was ein Sicherheitsrisiko darstellen kann. Daher sollte der Einsatz berlegt sein. Auch hier gilt als Voraussetzung, damit beide Attribute funktionieren, dass das Ausfhren-Attribut gesetzt ist. Bei dem Setgid-Bit gibt es allerdings einen praktischen Einsatz in Verbindung mit Verzeichnissen. Ist das Attribut bei einem Verzeichnis gesetzt, so erhalten neue Objekte als "Gruppe", die des Verzeichnisses und nicht des aktuellen Benutzers. Das Setzen erfolgt ebenfalls ber einen (durch Addition ermittelten) Einzel-Wert, der vor dem Berechtigungswert (z.B. 1777) gestellt wird. Um ein vermeidliches Setzen der Steuerbits der speziellen Art zu umgehen bzw. direkt aufzuheben, wird eine Null benutzt (0777).

B.1.3. ber Dateien


Dateien werden sehr vielseitig eingesetzt. Auch Verzeichnisse sind technisch eine Art von Dateien. Hinzu kommen symbolische Links (Verknpfung, Alias) und Gerte, um nur zwei zu nennen. Damit diese unterschiedlichen Typen auch erkennbar sind, steht vor den ersten Berechtigungs-Zeichen (rwx) der entsprechende Kennbuchstabe, sofern dem List-Befehl (ls) zur Darstellung die richtigen Parameter bergeben wurden. Steht dort ein "d" weist dies auf ein Verzeichnis hin, ein "l" auf einen Link. Wird nur ein Strich "-" dargestellt, handelt es sich um eine normale Datei.

B.1.4. Die Werkzeuge


Zur besseren bersicht der notwendigen Werkzeuge, die folgende Abbildung.

Abbildung B.2. Berechtigungsdarstellung

Im Prinzip reichen drei Befehle aus, um alle notwendigen Eingriffe vornehmen zu knnen: 1. Der Befehl chmod ist fr das Setzen der Berechtigungsattribute zustndig. Um z.B. dem Verzeichnis "media" fr den Eigentmer "root" (1) und der Gruppe "root" (2) jede Form der Zugriffe zu gewren, jedem anderem Benutzer (3) allerdings nicht, wird folgende Eingabe ausreichen: chmod 0770 media

150

Kurzreferenz - Berechtigungen bei Verzeichnissen und Dateien

2. Der aktuelle Eigentmer eines Objektes wird mit dem Befehl chown durch folgende Eingabe gewechselt: chown erika media In diesem Beispiel bei dem Verzeichnis "media" liegt die Voraussetzung auf der Hand, der neue Eigentmer (erika) muss vorher als Benutzer im System angelegt sein. 3. Nahezu identisch zum ndern des Eigentmers, kann die Gruppe "root" (1) ausgetauscht werden. Hierzu ist der Befehl chgrp mit folgende Eingabe notwendig: chgrp kreativ media Auch hier gilt als Voraussetzung, dass die Gruppe (in diesem Fall "kreativ") dem System bekannt ist.

151

Literaturverzeichnis
Webseiten
Arch Linux (DE) http://www.archlinux.de. Arch Linux (EN) http://www.archlinux.org. Gnome-Projekt http://www.gnome.org. Grub2-Projekt http://www.gnu.org/software/grub/. Iptables-Projekt http://www.iptables.org. KDE-Projekt http://www.kde.org. Mesa http://dri.freedesktop.org/wiki/. Samba-Projekt http://www.samba.org. OpenSSH-Projekt http://www.openssh.org. Ulogd-Projekt http://www.netfilter.org [http://www.netfilter.org/projects/ulogd/]. Xfce-Projekt http://www.xfce.org. X.org-Projekt http://www.x.org.

Bcher
Geheime Botschaften. Die Kunst der Verschlsselung von der Antike bis in die Zeiten des Internet. Simon Singh. Copyright 2000 Carl Hanser Verlag. ISBN 3-446-19873-3.

152

hosts, 47

Stichwortverzeichnis I
Symbole
.xinitrc, 87, 88 .xsession, 88 ifconfig, 44 inittab, 90 Installationsmedium, 11 iptables, 98 ISO-Image, 11

A
ACPID, 79 Arch Linux-Setup, 13

K
KDE, 84 KDM, 87

B
Berechtigungs-Attribute, 149 BIOS, 11 blkid, 71 Bootloader, 30 Bootvorgang, 11

L
Locale, 40 Login-Manager, 87

M
mkdir, 94 mkfs.ext4, 94

C
cfdisk, 22, 93 chgrp, 150 chmod, 150 chown, 150 config, 134

N
nano, 31 Neustart, 33, 41 NTP, 65 ntpdate, 65, 65

D
D-Bus, 78 date, 65 Dateisysteme, 70 dbus, 78 DHCP, 43 Display-Manager, 87

P
pacman, 49 passwd, 49 pdbedit, 117

R
rc.conf, 39 reboot, 33, 41 resolv.conf, 46 root, 30 Router, 43

E
ext2, 70 ext3, 70 ext4, 70

F
Flatrate, 3 Font, 78 fstab, 94

S
Samba, 109 smb.conf, 110 smbpasswd, 117 Softwarepakete, 27 SSH, 129 sshd_config, 132 startx, 87 syslog-ng, 106

G
gdisk, 67, 67, 69 GDM, 87 Gnome, 83 gpasswd, 49 GPT, 66 GPT fdisk, 67 groupadd, 49 groups, 49 grub, 31, 32 grub2, 55 GUID Partitionstabelle, 66

T
TCP/IP, 43

U
ulogd, 106 Ulogd, 141 useradd, 48 userdel, 49 UUID, 71 153

Stichwortverzeichnis

X
X.org, 75, 75 X.org Grafikkartentreiber, 77 X.org Installation, 76 X.org Konfiguration, 78 X.org Schriften, 78 XDM, 88 Xfce, 85

Z
Zeitserver, 65

154

You might also like