Friday, July 25, 2014

Installation eines einfachen Linux-Servers zum Lernen und Testen mit Debian Wheezy

Diese Anleitung erklärt, wie Sie einen simplen Linux-Server basierend auf Debian installieren. Diesen können Sie je nach Ihren Wünschen als Testserver für Webentwicklung einsetzen, als Bastelkiste oder schlicht um den Umgang mit Linux und Linux-Anwendungen zu lernen. Vielleicht sind Sie Entwickler und möchten prüfen, ob Ihr Quellcode auch auf Linux kompiliert und funktioniert. Oder Sie möchten sich mit Serveradministration und Hacken beschäftigen...
Dieser Text bewusst so gehalten, dass er ohne tiefreichende Englischkenntnisse verständlich ist.

Die Homepage des Debian-Projekts finden Sie unter http://www.debian.org/

Für Debian habe ich mich aus dreierlei Gründen entschieden:
Debian ist als stabiles Serversystem in der Industrie weitverbreitet. Im Gegensatz zu RedHat und SuSE, die ebenfalls weite Verbreitung genießen, ist Debian kostenlos und wird im selben Zustand auch professionell verwendet. In der Grundinstallation ist Debian recht einfach und offen gehalten, was seine zukünftigen Einsatzzwecke anbelangt; dies erfordert zwar mehr Aufwand bei der Konfiguration, ist aber gerade fürs Lernen sehr hilfreich.

Der Fairness wegen sei erwähnt, dass es für RedHat und SuSE ebenfalls kostenlose Varianten gibt; diese unterscheiden sich jedoch von den professionell eingesetzten Varianten dadurch, dass sie nicht so rigide auf Stabilität geprüft werden und der Support allein von der Entwickler- und Anwendergemeinschaft getragen wird. Im Falle von RedHat können Sie Fedora und CentOS ausprobieren, im Falle von SuSE openSuSE:
http://fedoraproject.org/
https://www.centos.org/
http://www.opensuse.org/

Ziel dieser ersten Übung


Wir werden hier zuallerest einen sogenannten "Headless Server" einrichten, der über keine grafische Benutzeroberfläche verfügt. Warum? Das hat vielerlei Gründe: um den grundsätzlichen Umgang mit Unix und Linux zu lernen, benötigen Sie erstmal keinen unnötigen Ballast. Mit Ballast sind hier die unzähligen Programme gemeint, die grafische Benutzeroberflächen mit sich bringen, aber auch die Einarbeitungszeit, die mit solcherlei Oberflächen verbunden ist. Außerdem werden Sie im industriellen Umfeld selten einen Linux-Server antreffen, der mit solchem "Ballast" bestückt ist.
Trotzdem spricht nichts dagegen, im Anschluss an die ersten Schritte einen grafischen Desktopmanager mit Desktopumgebung zu installieren. Vor allem, wenn man sich nicht von einem anderen Rechner aus am Server anmelden will oder kann, ist es bequemer, bei voller Bildschirmauflösung mit mehren Fenstern zu arbeiten oder im Browser nach Problemlösungen und Aufgabenstellungen zu suchen.
Bedenken Sie aber, dass für ein reines Serversystem keine Desktopumgebung nötig ist und deren Installation im Falle von Produktionsmaschinen sogar ein Sicherheitsrisiko darstellt und wertvolle Systemressourcen frisst.

Dieser nahezu minimal installierte Server kann Ihnen dann im Rahmen dieses Kurses als Grundlage dienen, diverse Experimente durchzuführen. Sie sind aber ermutigt, ihn nach Ihren Vorstellungen zu benutzen, Fehler zu machen, Probleme zu lösen und es gegebenfalls beim nächsten Anlauf besser zu machen!

Voraussetzungen


Voraussetzungen die Sie benötigen: ein alter Intel-kompatibler PC oder Server mit CD-ROM oder DVD-Laufwerk, Tastatur und Monitor.
Die Rahmendaten der Mindestvoraussetzungen für die Installation sind nach heutigen Maßstäben sehr bescheiden:
Laut der Dokumentation [1] werden mindestens 64 MB RAM und ein Pentium 4 mit 1 GHz benötigt. Ich kann aus eigener Erfahrung sagen, dass Debian selbst mit grafischer Oberfläche auf einem Rechner mit 1,5 GHz und 1GB RAM für einfache Anwendungen (Bürosoftware, Browsen, Testen von Serverdiensten, Programmieren) schon sehr flüssig laufen kann.

Idealerweise ist dieser Rechner bereits an Ihr Heimnetzwerk angeschlossen und bezieht seine Netzwerkadresse automatisch per DHCP (dies erleichtert einige Schritte bei der Installation und Administration). Alternativ können Sie auf einem bereits installierten System eine kostenlose Virtualisierungslösung benutzen, wie zum Beispiel VirtualBox von Oracle (https://www.virtualbox.org/) oder VMware Player von VMware (https://my.vmware.com/de/web/vmware/free#desktop_end_user_computing/vmware_player/6_0).

Sollten Sie sich entschieden haben, eine vorhandene Linux-Installation als Host (Gastgeberrechner) zu benutzen, empfehle ich Ihnen, Virtualbox OpenSource Edition zu benutzen, das sich üblicherweise über die normalen Paketquellen installieren lässt (virtualbox-ose unter Debian/Ubuntu). Sollten Sie Windows oder Mac OSX als Hostsystem für Virtualisierung verwenden wollen, können Sie sich wahlweise Virtualbox oder VMware Player herunterladen und installieren.
Wenn Sie einen alten PC als Laborrechner benutzen können, brauchen Sie nichts weiter, als eine Installations-CD, die Sie sich auf einem funktionerenden Rechner mit ihrem CD-Brenner erstellen können.

Ein entsprechendes ISO-Image der Installations-CD erhalten Sie auf http://www.debian.org/CD/http-ftp/#stable
Sollten Sie einen 64-bit fähigen Rechner haben, können Sie die amd64 Architektur wählen, bei 32-bit die i386 Architektur (diese Bezeichnungen haben historische Gründe.) Falls Sie sich unsicher sind, sollte die 32-bit Version auf sämtlichen neueren und älteren Intel-kompatiblen Rechnern laufen, bis hinab zum 486er, aber wenigstens Pentium :)
Auf einem 386er ürigens wurden die ersten Linux-Kernel entwickelt, der Support für 386er CPUs wurde aber vor kurzem eingestellt. Ich persönlich habe mit Linux auf einem Pentium III angefangen.

Eine ausführliche Installationsanleitung finden Sie unter: http://www.debian.org/releases/stable/amd64/index.html.de für 64-bit-Rechner bzw für 32-bit-Rechner unter: http://www.debian.org/releases/stable/i386/index.html.de


Los jetzt endlich!


Beginnen wir die Installation. Der Rechner muss so eingestellt sein, dass er von CD booten kann. Je nach Hersteller ist der Vorgang unterschiedlich; häufig muss man hierfür 'F12' im POST-Bildschirm des BIOS/EFI direkt nach dem Einschalten drücken. Ansonsten hilft eine Google-Suche nach "[Rechnerbezeichnung] von CD booten"

Ich selbst habe die Installation innerhalb von VirtualBox auf einem Laptop mit Linux vorgenommen, auf einer frischen virtuellen Platte (dies ist lediglich eine Datei, die auf meinem Hostrechner abgelegt wird und nichts an meinem bestehenden System verändert, außer zuvor festgelegten Speicherplatz zu verbrauchen.)

Beachten Sie, dass bei der hier gezeigten Installationsvariante sämtliche Daten auf Ihrer (gegebenenfalls virtuellen) Festplatte überschrieben werden. Sollten Sie das nicht wünschen, gibt es noch Alternativen: bei einer nativen Installation auf "echtem Blech" ist eine Multi-Boot Installation möglich; dabei sind dann mehrere Betriebssysteme auf der Festplatte installiert und Sie können beim Booten auswählen, welches Sie starten möchten. Hierauf und auf die vielen weiteren und komplexeren Möglichkeiten möchte ich aber im Rahmen dieser Anleitung nicht eingehen, da Sie, vor allem wenn Sie noch nicht sehr erfahren im Umgang mit Linux sind, Gefahr laufen, sich ein brauchbares System scheinbar unreparierbar zu zerlegen. Sollten Sie dennoch wagemutig sein, empfehle ich Ihnen, gründlich über Backup- und Wiederherstellungsmöglichkeiten informiert zu sein und diese zu beherrschen.

Es folgen nun einige Screenshots, die bei Bedarf kommentiert sind. Beachten Sie, dass ich mich für die klassische textbasierte Installation entschieden habe. Bei der grafischen Installation ändert sich, außer der Maussteuerung, an den Optionen nichts. Einzelne Menüpunkte können mit der Tabulator-Taste bzw. den Pfeiltasten angewählt werden, das Bestätigen erfolgt mittels der Eingabetaste:


Das Boot-Menü der Installations-CD
Ich habe mich hier für den ersten Eintrag entschieden, "Install".


Auswahl der Sprache
Wenn Sie, so wie ich, Englisch als Systemsprache bevorzugen, können Sie hier auch "English" gesetzt lassen. Sämtliche Systemanleitungen werden dann auch auf Englisch installiert. Für diese Anleitung habe ich mich für Deutsch entschieden.


Auswahl des Standortes

Wahl des Tastaturlayouts
Es ist wichtig, dass Sie Ihr Tastaturlayout richtig wählen. Später werden Sie oftmals Sonderzeichen eingeben müssen, die sich bei falschem Layout nur schwer finden lassen.


Wahl des Rechnernamens
Hier können Sie angeben was Sie möchten. Der Name sollte innerhalb Ihres Netzwerks einzigartig sein. Beachten Sie, dass Unix und Linux zwischen Groß- und Kleinschreibung unterscheiden. In der Unix/Linux-Welt ist es Konvention, für Rechnernamen stets Kleinschreibung zu verwenden.


Angabe des Domainnamens
Innerhalb eines LANs ist dieser Name egal. Wenn Sie erst mit Linux anfangen, sollten Sie auf keinen Fall schon daran denken, einen öffentlich zugänglichen Server zu betreiben, der vom Internet aus erreichbar ist. Ohne weitere Sicherheitsvorkehrungen könnte dieser nämlich sehr leicht geknackt und zu kriminellen Zwecken missbraucht werden. Sollte Ihr Server hinter einem gewöhnlichen Heimrouter stehen, brauchen Sie keine Bedenken hegen, sofern Portforwarding deaktiviert ist (und Sie der Routerfirmware vertrauen).


Setzen des root-Passworts
Der Standard-Systemadministrator heißt bei Unix und Linux stets "root". Dieser Benutzer hat nachher sämtliche Rechte auf dem System: er kann alle Dateien bearbeiten, anlegen oder löschen, oder durch Unachtsamkeit das System unbrauchbar machen. Es ist daher üblich, für den alltäglichen Gebrauch zusätzlich einen Benutzer zu wählen, der nur über eingeschränkte Rechte verfügt:


Erstellen des ersten normalen Benutzerkontos. Im nächsten Dialogfenster wird dann nach dem Benutzernamen aus Systemsicht gefragt werden.

Setzen des Benutzerpasswortes

Sollte die Netzwerkverbindung bereits funktionieren, gleicht sich der Rechner nun mit einem öffentlichen NTP-Server ab.

Festlegen der Partitionierung
Für einen Testrechner können wir die Partitionierung dem Installationsprogramm überlassen. Später werden Sie sehr sicher genauere Vorstellungen haben, wie Sie das Partitionslayout festlegen wollen, und diesen Schritt manuell vornehmen.


Auswahl der Festplatte.
In diesem Falle heißt die einzige vorhandene Festplatte sda. Dies steht für "erste Platte am SCSI-Bus"; mittlerweile gilt das Präfix "sd" auch für USB- und SATA-Geräte. Sicherheitshalber sollte vor der Installation nur das Gerät angeschlossen sein, auf das Sie auch tatsächlich installieren möchten. Weitere Platten würden sdb, sdc und so fort benannt werden. Würde es sich um eine Platte am IDE-Bus handeln, hieße Sie hda, hdb, hdc, o.ä.


Auswahl des Partitionslayouts
Alles in eine Partition zu werfen ist in diesem Falle das Einfachste. Wir sprechen hier von einer "dangerously dedicated disk": tritt ein Dateisystemfehler auf oder läuft die Partition voll, ist das ganze System betroffen und wird eventuell unbrauchbar. Ein wichtiger Produktionsserver sollte deswegen komplexer partitioniert werden. Im Falle eines Testrechners braucht uns das jetzt nicht weiter zu stören.


Abschließende Prüfung des Layouts
ext4 ist derzeit das Standard-Dateisystem (im Gegensatz zu NTFS bei Windows bzw. hfs bei Macs). Sie sollten vor allem für die Linux-Basispartition ein Linux-Dateisystem verwenden. ext4 ist hier okay.
Eine swap-Partition ist ein kleinerer Bereich (etwa fast so groß bis zweimal so groß wie der RAM), der verwendet wird, um vollgelaufenen RAM auf die langsamere Festplatte auszulagern bzw. den Inhalt des RAM zu speichern, wenn das System in den Tiefschlafzustand (suspend-to-disk) versetzt wird. Unter Windows übernehmen diese Rolle zwei Dateien (pagefile.sys und hiberfil.sys).



Durchführen der Partitionierung

Die Installation läuft...

Auswahl des Spiegelservers für weitere Installationspakete
Sollte die Netzwerkverbindung fehlgeschlagen sein, wird an dieser Stelle eine Warnung kommen, die Sie ignorieren können. Für eine Grundinstallation ist die CD ohne Netzwerk ausreichend. Es ist üblich, dass sich Linux-Rechner ihre Updates und weiteren Installationspakete von einem Spiegelserver holen, sofern diese dort in in einer neueren Version vorliegen, als auf der CD. Im Gegensatz zu anderen Systemen findet unter Linux die Installation von neuen Programmen meist über die zentrale Paketverwaltung statt, und es wird stets die neueste Version eines Installationspakets aus dem Netz installiert. Dabei handelt es sich um kryptographisch signierte Installationsdateien, die nur schwer gefälscht werden können.



Wahl eines Spiegelservers

Angabe der Proxy-Daten.
Sollten Sie, wie in kleinen Heimnetzwerken üblich, keinen Proxy-Server verwenden, können Sie das Feld leer lassen. In Firmennetzwerken sieht das oftmals anders aus. Bitten Sie in diesem Falle ihren Proxy-Administrator um Hilfe :)
Nun sollte die restliche Installation laufen.


Installation einiger Pakete


Frage nach Popcon
Die Frage nach "Popcon" können Sie getrost verneinen. Zwar wäre es nett, dem Projekt mitzuteilen, was Sie so alles installieren, aber im Falle eines Bastelservers würde das nur die Statistik verfälschen. In einem sicher konfigurierten Firmennetzwerk wäre es sowieso nicht möglich bzw. erwünscht, dass der Server "nach Hause telefoniert".


Auswahl der Systembestandteile mittels tasksel

Beachten Sie, hier alles außer "Standard-Systemwerkzeuge" abzuwählen! Wir wollen hier nur die Grundinstallation mit Standardwerkzeugen. Fehlende Software lässt sich später problemlos nachinstallieren.
Nun werden noch abschließend Pakete installiert.



Installation des Bootloaders
Die gängigsten anderen Betriebssysteme werden in der Regel von GRUB, dem GRand Unified Bootloader, erkannt, sofern sie noch auf der Platte vorhanden sind. Beim Booten können Sie dann wählen, welches Betriebssystem Sie starten möchten.


Die Installation ist abgeschlossen.




Sie können nun die CD entfernen und den Rechner neu starten lassen. Er wird nun versuchen, das frisch installierte System von der Platte zu starten.




Erster Reboot: das GRUB Bootmenü

Fertig! Das System ist gestartet und wartet auf Eingaben.

Sie können sich nun mit ihrem Benutzer und Passwort anmelden. Jetzt sind noch ein paar administrative Schritte notwendig, um die Installation vollständig abzuschließen.

Haben Sie sich mit Ihrem normalen Benutzer angemeldet, können Sie nun mit folgendem Befehl zu root, dem Administrationsbenutzer, werden:

su [Eingabetaste]

Anschließend werden Sie nach dem root-Passwort gefragt. Es werden keine Sternchen odgl. angezeigt. Dies soll vermutlich dazu dienen, neugierigen Blicken keine Rückschlüsse auf die Länge des Passwortes treffen zu lassen.

Sieht ihre Kommandozeile nun in etwa so aus, sind Sie root:

root@testserver:/home/testuser# _


Nun müssen Sie nur noch mit einem Texteditor eine Datei bearbeiten. In der Grundinstallation sind zwei Texteditoren installiert, von denen ich weiß: vi und nano. vi oder seine Weiterentwicklung vim werden Sie vermutlich auf jedem Linux- und Unix-System finden, das Ihnen begegnen wird. Fürs erste einfacher zu bedienen ist nano:

root@testserver:/home/testuser# nano /etc/apt/sources.list


Der folgende Bildschirm sollte in etwa so aussehen:

/etc/apt/sources.list bearbeitet mit nano
Sorgen Sie dafür, dass alle Zeilen mit "deb cdrom" ein vorangestelltes Rautezeichen (#) haben. Das Rautezeichen gilt innerhalb von Shell-Scripten und einigen Programmiersprachen als Kommentar-Symbol, d.h. Zeilen die mit # beginnen, werden als Kommentar behandelt und nicht vom System beachtet.

Im speziellen Fall sorgt dies dafür, dass bei kommenden Update- und Installationsversuchen nicht nach der CD verlangt wird.

Die Legende erklärt, dass Sie die Änderungen mit Strg+O Speichern können (^, das Dächlein oder Circumflex, bedeutet in diesem Zusammenhang "Strg", die Control-Taste). Speichern Sie die Änderungen also mit Strg+O und schließen Sie das Programm mit Ctrl+X.

Anschließend können wir mit folgendem Befehl den Paketindex neu einlesen lassen un die Grundinstallation ist hiermit beendet:

root@testserver:/home/testuser# apt-get update

Im nächsten Tutorial folgt eine Einführung in die Paketverwaltung und die Standardmethode, um Fernzugriff auf ein System zu erhalten.


Haben Sie noch Fragen, Wünsche, Anregungen? - Gerne können Sie diese in den Kommentaren äußern!

About Me

My photo
My name is Manuel Iwansky and I studied art and some computer-science.