Professional Documents
Culture Documents
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 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.
Warnung
Alles was Sie umsetzen, geschieht auf eigene Gefahr !
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
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.
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.
12
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
Daher wenn notwendig hier die Installation abbrechen, um wichtige Daten vorher zu sichern.
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.
14
15
16
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.
17
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.
3. Rcksprung zum Hauptmen. Sind alle Einstellungen gettigt, kann nun mit dem nchsten Schritt im Hauptmen begonnen werden.
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.
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
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.
20
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.
21
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
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.
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.
System zu bestimmen. Der erste Dialog fr die Zugriffsmethode der Partitionen, hat auf das sptere System einfluss.
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 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..
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 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.
Die folgende Tabelle zeigt etwas bersichtlicher die Partitionierung samt Dateisystemen 26
und Einhngepunkte.
/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.
27
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).
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
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.
29
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.
30
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.
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
# (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.
Wurde der MBR erfolgreich geschrieben, wird dies von einer Information angezeigt.
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).
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.
34
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.
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
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.
(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.
3.
Den Datenbestand aktualisieren. Da die neue Instanz keine Software-Paketbestnde kennt, mssen diese mit dem Paketmanager pacman zuerst nachgereicht werden: pacman -Sy 37
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
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.
# 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
#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
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
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.
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
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.
43
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
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
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 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
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.
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
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
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.
# 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
# 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
# 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
==>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.
-Su
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
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.
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
## (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)):
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
. linux /vmlinuz26 root=/dev/sda3 ro . . Sind also alle Laufwerke und Partitionen richtig bercksichtigt, kann im Prinzip mit dieser Grundkonfiguration Arch Linux gebootet werden.
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
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.
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.
. # 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.
61
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
# 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
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.
wird wiederum die tatschliche (BIOS) Uhrzeit nach UTC zusammen mit dem Datum angezeigt: Do 23. Dez 19:00:00 CET 2010
Anmerkung
Das NTP ist evtl. bei der Konfiguration einer Firewall (Kapitel: iptables) zu bercksichtigen, damit auch der Zeitserver erreichbar ist.
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.
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
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.
67
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
p empfehlen.
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.
umount /dev/sdb1). Die folgende Tabelle zeigt einige Beipiele auf, wobei die eingesetzten Parameter untereinander funktionieren:
mkfs.ext3 /dev/sda1
mkfs.ext4 /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).
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.
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.
#/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
72
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
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.
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
76
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
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.
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.
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.
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
(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.
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.
82
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.
83
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
84
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.
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
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
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).
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
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.
## 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
# 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 . . .
90
91
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.
92
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
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.
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.
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
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.
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.
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).
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.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.
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.
Die Policy wird nicht mit aufgefhrt. Allerdings alle Regeln in der Reihenfolge, wie sie im Skript gesetzt sind. Also hat das Skript funktioniert.
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
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.
108
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.
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:
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.
write list
force group
Gibt vor, welche Gruppe beim Anlegen einer Datei oder eines Verzeichnisses vergeben wird. 113
Samba
create mask
die bei
directory mask
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.
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
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
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.
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
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
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.
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.
121
Samba
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.
123
Samba
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:
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
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.
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
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.
128
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.
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.
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.
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.
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:
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.
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.
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)
no)
und
auf
dem
Zielrechner
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
141
Inhaltsverzeichnis
15. Der Editor Nano ........................................................................................144
143
144
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
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
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.
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).
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
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