DEVNULL. DOSCENDO DISCIMUS We learn by teaching. Das Serverhandbuch. Alex Oberhauser 2. November 2008. obale 2007 - GPLv2



Ähnliche Dokumente
Mit Putty und SSH Key auf einen Linux Server zugreifen. Vorbereitungen auf dem Client Rechner

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

SFTP SCP - Synology Wiki

Benutzer und Rechte Teil 1

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

-Bundle auf Ihrem virtuellen Server installieren.

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

How to install freesshd

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Anleitung für die Verwendung des CIP Pools von eigenen Rechner

Patch Management mit

SSH Authentifizierung über Public Key

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Anleitung: Webspace-Einrichtung

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Anleitung: Confixx auf virtuellem Server installieren

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Installationsanleitungen

Eine Einführung in die Installation und Nutzung von cygwin

Mein eigener Homeserver mit Ubuntu LTS

Daten am USB Stick mit TrueCrypt schützen

INSTALLATION VON INSTANTRAILS 1.7

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

cs106 Informatiklabor Teil 1: Java-Installation

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Tutorial -

Windows 7 Winbuilder USB Stick

Problembehebung LiveUpdate

Eprog Starthilfe. 5. Oktober Einleitung 2

Informatik I Tutorial

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Computeria Solothurn

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

EASYINSTALLER Ⅲ SuSE Linux Installation

OpenSSH installieren (Windows) Was ist OpenSSH?

Installationsanleitung für FireFTP 1.0.7

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Informatik 1 Tutorial

FTP-Server einrichten mit automatischem Datenupload für

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Anleitung: DV4Mini auf einem Raspberry Pi

INSTALLATION. Voraussetzungen

Inhaltsverzeichnis. Vorwort... 3 Installation von XAMPP... 3 Installation von Joomla... 8 Schlusswort Copyright

WordPress lokal mit Xaamp installieren

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Anleitung für Zugriff auf den LEM-FTP-Server

Achung! User müssen unter Linux schon erstellt sein!

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Verwendung des IDS Backup Systems unter Windows 2000

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Autor: Uwe Labs Stand: PuTTY in der paedml 3.0 Novell...1

Installationsanleitung INFOPOST

Das Einzelplatz-Versionsupdate unter Version Bp810

FTP-Leitfaden RZ. Benutzerleitfaden

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Lehrveranstaltung Grundlagen von Datenbanken

Migration Howto. Inhaltsverzeichnis

OP-LOG

ICT-Triengen - Zugang für Lehrpersonen

Step by Step Webserver unter Windows Server von Christian Bartl

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Betriebssystem Windows - SSH Secure Shell Client

Installation Messerli MySQL auf Linux

Datensicherung EBV für Mehrplatz Installationen

KURZANLEITUNG CLOUD OBJECT STORAGE

! " # $ " % & Nicki Wruck worldwidewruck

Kleines Handbuch zur Fotogalerie der Pixel AG

Live Update (Auto Update)

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Für Windows 7 Stand:

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand

WordPress installieren mit Webhosting

PHPNuke Quick & Dirty

BAYERISCHES STAATSMINISTERIUM DES INNERN

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

ANLEITUNG NETZEWERK INSTALATION

VIDA ADMIN KURZANLEITUNG

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Wie benutzt man TortoiseSVN

Adminer: Installationsanleitung

Nutzung der VDI Umgebung

Transkript:

DEVNULL DOSCENDO DISCIMUS We learn by teaching. Das Serverhandbuch Alex Oberhauser 2. November 2008 obale 2007 - GPLv2

2

Inhaltsverzeichnis 1 Vorwort 5 2 Einleitung 7 2.1 Wie wird das Buch am Besten gelesen?............ 7 2.2 Syntax des Buches....................... 8 3 Vor der Anschaffung 11 3.1 Wichtige Eckdaten....................... 11 4 Grundlagen 15 4.1 Der Befehl........................... 15 4.1.1 Umgang mit Befehlen................. 16 4.1.2 Wichtige Befehle.................... 17 4.2 Manpages und Alternativen.................. 17 4.3 Installation von Programmen.................. 18 4.3.1 Installation mit dem Dreisatz.............. 18 4.3.2 Umgang mit den Paketmanagern............ 19 5 Verbinden mit dem Server über SSH 23 5.1 Kurz über SSH......................... 23 5.2 Verbindung mit Server herstellen............... 23 5.2.1 SSH-Verbindung unter Linux............. 24 5.2.2 SSH-Verbindung unter Windows............ 24 5.2.3 SSH-Verbindung abischern............... 25 6 Erste Schritte 29 6.1 Informationen über den Server sammeln............ 29 3

Listings 33 Abbildungsverzeichnis 35 Stichwortverzeichnis 37 A Die GPLv2 39 4

1 Vorwort Durch die immer billiger werdenden Angebote der Serveranbieter steigt auch die Anzahl der Server im Internet die von Usern administriert werden. Durch den höheren Preis der sogenannten Managed Server 1 wird oftmals auf so einen Service verzichtet. Auch die Mehrkosten für Windowsrechner treiben die Kunden, die Geld sparen wollen zu den billigeren Linuxservern. Nach meinen Erfahrungen sind darunter auch viele Leute, die noch nie mit Linux gearbeitet haben oder Linux nur vom Desktop kennen. Dem entgegen wirken wollen die Anbieter mit sogenannten Administrationswerkzeugen 2, die meist über http- Schnittstelle laufen. Dem Kunden wird dabei vorgetäuscht wie einfach es ist einen Server zu betreiben. Der Schein jedoch trügt. Meistens sind die Administrationstools in der Standarteinstellung ziemlich unsicher oder bieten nur einen geringfügigen Eingriff in den Serverbetrieb. Bei Problemen muss dann doch der Anbieter wieder ran, was nicht selten eine Menge Geld verschlingt. Nicht nur die Kosten der ahnungslosen Kunden ist ein Problem, sondern vor allem die Unsicherheit die für andere Serverbetreiber und Internetnutzer entsteht. So zum Beispiel kann ein gecrackter 3 Server als Spamserver missbraucht werden. Oder noch schlimmer zum Verteilen von Kinderpornographie. Sollte ein Server für illegale Aktivitäten missbraucht werden, haftet der Betreiber des Servers. Dieses Buch jedoch befasst sich nicht mit den rechtlichen Aspekten dieses Themas, sondern soll eine technische Anleitung sein um diese Vorfälle so gut wie möglich zu verhindern. Dabei kann das Buch als ganzes gelesen werden oder als Nachschlagewerk für bestimmte Themen herhalten. Es wird versucht die erläuterten Themen so gut wie möglich zu erklären, dass auch ein Neueinsteiger das Beschriebene gut nachvollziehen kann. Hin und wieder finden sich Quellcode Dateien, die gerne übernommen bzw. verändert werden können, sofern der Autor genannt wird. Wenn nichts anderes angegeben wird unterstehen alle Quelltexte der GPLv2 (siehe Anhang A auf Seite 39). 1 Managed Server: Server die vom Anbieter gewartet werden. 2 Meist im Einsatz: Confixx und Plesk. Vereinzelt auch webmin, jedoch ist dabei ein größeres Hintergrundwissen notwendig. 3 In diesem Buch wird cracken für das bösartige Eindringen in fremde Computer verwendet. Im Gegensatz zu Hacken, das kreatives Programmieren bedeutet. In den Medien wird hacken oft anstelle von cracken verwendet. 5

6

2 Einleitung Im Internet trifft man immer öfter Leute, die sich einen Server gemietet haben, jedoch keine Ahnung haben wie sie ihn auch richtig administrieren sollen. Meist besteht der Nutzen des Servers darin, die eigenen Webseiten zu hosten oder torrentflux 1 nachzurüsten. Das hosten von Webseiten kann duch automatisierte Vorgänge von Seiten des Betreibers sehr stark erleichtert werden, spätestens jedoch beim Aufsetzen von torrentflux oder anderer Software für die der Betreiber keine Automatismen vorsieht stößt der neue Serverbenutzer an seine Grenzen. Oftmals helfen da auch keine Anleitungen weiter, da das Grundwissen fehlt. Da ist guter Rat teuer. Manchmal findet sich ein hilfsbereiter Zeitgenosse der die Administration übernimmt. Der dann jedoch unbehelligt vom eigentlichen Mieter den Server auf seine eigene Art nutzen kann. Meist jedoch kennt sich der Helfe auch nicht so gut aus und der Server bietet nicht den nötigen Schutz der Daten bzw. ist anfällig für Angriffe. Es empfiehlt sich auf jeden Fall sich vor der Anmietung eines Servers zu Hause einen Server aufzusetzen und die Dinge zu erlernen. Da die Linuxserver keinen Desktop mitbringen ist es notwendig den Umgang mit der Konsole zu erlernen. Das klingt für einen Linuxneuling zwar abschreckend, bietet jedoch eine Reihe von Vorteilen und erweist sich gar nicht als so schwer. Die Administration erfolgt dabei über SSH (siehe Kaptiel 5 auf Seite 23, dabei wird eine verschlüsselte Verbindung zu dem entfernten Server aufgebaut. Danach erweist sich die Arbeit gleich wie auf einer loaklen Konsole. Durch das fehlen von grafischen Elementen ist keine Verzögerung zu spüren. 2.1 Wie wird das Buch am Besten gelesen? Wie jedes Buch kann man auch dieses von vorne bis hinten durchlesen um einen Überblick über die Materie zu bekommen. Einmal durchgelesen kann man es jedoch auch immer wieder als Nachschlagewerk verwenden. So ist es möglich Zweifel auszuräumen oder nützliche Tipps und Tricks zu finden. In der pdf-version wird die Navigation durch Inhaltsverzeichnis mit Hyperlinks und Querverweise erleichtert die ebenfalls verlinkt sind. So gelangt man mit einem Klick auf die gewünschte Seite. 1 http-schnittstelle für BitTorrent-Clients auf Konsole 7

Ganz nach dem Motto Ein Bild sagt mehr als 1000 Worte sind manche Ausführungen, sofern sinnvoll, mit Bildern unterlegt. 2.2 Syntax des Buches Quellcode wird folgendermaßen angezeigt. Im vorliegenden Buch wird vorwiegend nur Quellcode von bash-scripten zu finden sein, alles andere würde zu weit führen und wird nur verwendet wenn es sich nicht vermeiden lässt: Listing 2.1: Beispielscript zur Verdeutlichung des Styles im Buch. (beispiel.sh) 1 #! / b i n / b a s h 2 rsync - ravz -- delete / home / user / uni /* -e 'ssh -p 22 -i / home / user /. ssh / id_dsa ' user@server :~/ uni Sie müssen den Quellcode des Scriptes noch nicht verstehen. Das Script soll nur verdeutlichen wie ein Bash-Script im Text aussieht. Sie können den Text dann als Übung einfach abtippen und testen. Alle (fertigen) Scripte in diesem Buch haben einen praktischen Nutzen und können sofort in der Praxis benutzt werden. Einzelne Befehle sehen so aus: Ausführen als User user $ ls Ausführen als root root # ls Dabei ist zu beachten dass user $ und root # nicht mit eingegeben werden darf. In diesem Beispiel wird also nur ls eingegeben. Ausgabe eines Befehles, der eingegeben wurde: user $ ls / bin boot dev etc home lib lost+found media mnt opt proc root sbin server software sys tmp usbstick usr var user $ Der fettgedruckte Text ist die Ausgabe des Befehles ls /. Es ist ersichtlich, dass der Befehl als normaler User ausgeführt wurde. Die letzte Zeile bedeutet, dass die Anzeige wieder zurück auf die Eingabeaufforderung der Bash springt. Diese letzte Zeile wird meist weggelassen. Kommentare hinter einem Befehl: user $ ls / # Dies ist ein Kommentar Der graue Text hinter dem Befehl muss nicht eingegeben werden. Wird er jedoch eingegeben erkennt die Konsole (Bash) den Text als Kommentar und führt ihn nicht aus. Er hat also keinen Einfluss auf den Kommentar. Lange Zeilen die im Buch umgebrochen werden müssen, auf dem Bildschirm oder im Code aber eine Zeile sind werden mit Hilfe eines \ beendet. 8

Dies ist eine sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr\ sehr sehr sehr sehr sehr sehr sehr lange Zeile. 9

10

3 Vor der Anschaffung Dieses Kapitel beschäftigt sich mit der Wahl des richtigen Servers. Dabei spielen nicht nur die physikalischen Eigenschaften, wie zum Beispiel Trafficlimit, Festplattengröße oder Anbindung an das Internet eine Rolle, sondern auch die persönlichen Vorlieben und die Vorkenntnisse bei der Administration eines Linuxservers sollten nicht vernachlässigt werden. So zum Beispiel wird ein erfahrener Linuxadministrator eher ein minimales Linux wählen und dann schrittweise seinen Server auf seine Bedürfnisse anpassen. Ein weniger erfahrener Linuxadministrator wird hingegen schon ein vorgefertigtes Image wählen und nur mehr kleinere Änderungen vornehmen. Egal ob man ein Minimalsystem oder ein vorgefertigtes Image wählt an gewisse Anpassungen kommt man nicht vorbei, wenn man lange sich an seinem Server erfreuen möchte. So zum Beispiel hat sich gezeigt, das eine Standartinstallation auf einem Server, der in einem Rechenzentrum steht innerhalb einiger Tage mit Bruteforce-Attacken auf dem SSH-Port (Port 22) überschwemmt wird. Wie man dem entgegen wirkt wird im Abschnitt 5.2.3 auf Seite 25 beschrieben. 3.1 Wichtige Eckdaten Vor der Anschaffung eines Servers sollten man sich im Klaren sein, welche Anforderungen der Server erfüllen soll und für welchen Einsatzzweck er gedacht ist. Ansonsten kann es leicht passieren, dass man für den Server mehr Geld zahlt als notwendig wäre, da man auch mit weniger Leistung zurecht gekommen wäre. Das ist besonders schlimm wenn man eine Vertragszeit von 12 Monaten oder länger hat und nicht sofort kündigen kann. Nachfolgend werden einige wichtige Punkte aufgelistet, die unbedingt beachtet werden sollten. Da die richtige Wahl der Hardwarekomponenten von vielen Faktoren abhängt, haben wir als Anhaltspunkt den Server auf dem die Webseite zu diesem Buch liegt hergenommen. 1 Referenzrechner: 2 1 http://serverhandbuch.networld.to 2 Stand als dieses Buch geschrieben wurde. Es kommen sicher noch einige Webseiten mit Datenbank bzw. auch einige Dienste hinzu. 11

Dienste auf dem Server: Webserver (apache2) mit Datenbanken (mysql) und php: 4 Webseiten mit 5 Datenbanken IRC-Server (UnrealIRCD) mit Services (anope) Prozessorleistung (CPU) Je nach Diensten die laufen sollte man auch auf die Prozessorwahl achten (besonders bei rechenintensiven Gameservern). Refernzrechner: Pentium III mit 1000 Mhz Arbeitsspeicher (RAM) Der Arbeitsspeicher sollte mindestens 512MB sein, sofern auch Webseiten mit Datenbank oder andere Dienste betrieben werden, auf die einige Leute zugriffe haben. Referenzrechner: 512 MB RAM Festplattengröße Will man viele Daten mit dem Server verteilen bzw. darauf speichern, sollte man auf eine große Festplatte achten. Wenn man das Backup nicht auf einen externen Rechner auslagern kann ist es wichtig, dass eine zweite (gleich große) Festplatte verbaut ist auf die, die Daten gespiegelt werden bzw. man sie darauf speichern kann. Hat man die Möglichkeit das Backup auf einen eigenen Rechner oder zweiten Server auszulagern und braucht den Server nicht um große Daten zu speichern, dann reicht auch eine kleinere Festplatte. Referenzrechner: 20 GB HDD Trafficverbrauch Viele Anbieter bieten eine Trafficflatrate an und zwar zu Preisen unter 100 Euro. Aber ACHTUNG, das ist keine echte Trafficflatrate, ab einer gewissen Menge werden die Anbindung gedrosselt (meist von 100 Mbit/s auf 10 Mbit/s) oder der Server mit anderen Servern, die viel Traffic verbrauchen an eine Leitung gehängt. Dadurch verschlechtert sich die Anbindung. Echte Trafficflatrates kosten mehrere hundert Euro und werde durch den höhen Preis meist nicht von privaten genutzt. Der Traffic sollte vorher grob ausgerechnet werden (Besonders drauf achten, das alles mitgerechnet wird und ob der interen Traffic 3 mitgezählt wird oder nicht. Wichtig ist auch wieviel man für überschüssigen Traffic bezahlt. Referenzrechner: 1000 GB Transfer pro Monat und 0,39 Euro pro weiteren GB. Tatsächlicher Verbrauch: weniger als 30 GB/Monat (mit täglichen Backup). Anbindung an das Internet Dabei wird meist zwischen 100 Mbit/s und 10 Mbit/s unterschieden. Die theroetische Maximalgeschwindigkeit beträgt bei der 100Mbit-Leitung 12,5 Megabyte/s und bei der 10Mbit-Leitung 1,25 Megaybyte/s. Die Geschwindigkeiten werden jedoch nur unter optimalen Bedingungen erziehlt und sind tatsächlich meist um einiges niedriger. Die Angaben das eine 100Mbit-Karte verbaut ist, heißt noch lange nicht das er auch mit 100 Mbit/s an das Internet angeschlossen ist. Da die Netzwerkkarte gedrosselt werden kann. Es ist also zu achten ob nur die Netzwerkkarte oder ob wirklich die Anbindung gemeint ist. Refernzrechner: 100 Mbit/s 3 Traffic der zwischen Servern im gleichen Rechenzentrum verursacht wird. 12

Rescue und Reset Es soll auch darauf geachtet wird, das man kostenlos in einen Rescue-Modus wechseln kann um Probleme selbstständig zu beheben oder ein neues Betriebssystem darauf zu installieren. Auch der Neustart des Servers ist wichtig und sollte nichts kosten. Refernzrechner: Beides kostenlos vorhanden. Kostenlose Installation des Ursprungsimages. Hardwareaustausch Ein weiterer wichtiger Punkt ist der Hardwareaustausch, sofern eine Hardwarekomponenten defekt sein sollte. Referenzrechner: kostenlos Betriebssystem Meist kann man zwischen mehreren Betriebssytemen wählen und oft ist es auch möglich ein Eigenes zu installieren, sofern man genug Vorwissen verfügt. Auf die Betriebssystemwahl werden wir später noch einmal genauer eingehen. Refernzrechner: Debian Sarge mit Apache, PHP, MySQL. Wurde jedoch von uns durch Gentoo ersetzt, indem wir es vom Rescuesystem aus installiert haben. Diese Auflistung von Punkten ist nicht vollständig und soll nur ein Beispiel geben auf was man alles achten sollte. Jeder Serverbetreiber hat andere Vorstellungen was er alles für seinen Server braucht und die Angebote ändern sich laufen. So ist es unmögich auf jede Anforderung einzugehen. Eine klare Vorstellung für was der Server alles gebraucht wird erleichtert die Anschaffung ungemein. 13

14

4 Grundlagen Bevor wir mit der eigentlichen Arbeit auf dem Server beginnen ist es wichtig einige Dinge vorab zu verstehen. So zum Beispiel wo man schnell Hilfe findet oder wie ein grundlegender Befehl aufgebaut ist. Dieses Wissen erleichtert die tägliche Arbeit am Server sehr und erspart einem oftmals unnötige Zeit mit der Fehlersuche. 4.1 Der Befehl Beginnen wir mit dem wichtigsten Teil, dem Befehl. Da wir in den nächsten Kapiteln nur mehr auf der Konsole arbeiten werden - was anderes bleibt uns auch nicht übrig, da ein Linux-Server gewöhnlich keinen Desktop besitzt - sollte uns die funktionsweise eines Befehls klar sein. Dazu müssen wir zuerst den Begriff Befehl definieren. Befehl Ein Befehl ist eine binäre Datei oder ein Script dass auf der Kommandozeile (Konsole) aufgerufen wird. Nun wissen wir was ein Befehl ist. Aber woher weiß die Konsole wo die binäre Datei oder das Script liegt das aufgerufen werden muss? Für diesen Zweck werden die Pfade mit ausführbaren Dateien in einer Variable namens PATH gespeichert. Um diese Variable auszulesen verwendet wir echo. Alles was dem Befehl echo übergeben wird, wird auf der Konsole ausgegeben. 1 user $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/bin/x11:/usr/games Mit Hilfe des $ vor der Variable weiß echo dass er die Variable auslesen und nicht nur das Wort wieder geben soll. Als Ausgabe erscheinen die Pfade mit Doppelpunkt getrennt. Wird der Befehl als root ausgeführt so erscheint zu dieser Ausgabe noch einige weitere Pfade wo Programme enthalten sind die nur als root ausgeführt werden können. root # echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/x11:/usr/local/sbin:/usr/local/bin 1 Sofern die Ausgabe nicht mit Hilfe einer Pipe umgeleitet wird, aber dazu später mehr. 15

Das sind die Pfade die auf einem Debian-System standartmäßig definiert sind. Bei anderen Distritbutionen ist es möglich, dass die Ausgabe sich geringfügig unterscheidet, das Prinzip bleibt aber immer das Gleiche. Sollten wir einige Scripts geschrieben haben und die in einem Ordner gespeichert haben wie zum Beispiel /etc/mysysconfig und noch einige in /ein/anderer/pfad, dann können wir diesen Pfad der Variable hinzufügen. user $ PATH=$PATH:/etc/mysysconfig:/ein/anderer/pfad Wird der Befehl so auf der Konsole eingegeben so bleibt der Pfad nur so lange verändert bis die Konsole geschlossen wird. Will man jedoch den Pfad dauerhaft hinzufügen, so muss man diesen Befehl der Datei /.bashrc 2 bzw. als root der /etc/profile hinzufügen. Bei der ersten Möglichkeit gilt der neue Pfad nur für den Benutzer, der den Pfad verändert hat, beim Zweiten gilt der neue Pfad für alle Benutzer. Am einfachsten fügt man den Befehl folgendermaßen hinzu. user $ echo PATH=$PATH:/etc/mysysconfig:/ein/anderer/pfad >> /.bashrc oder root # echo PATH=$PATH:/etc/mysysconfig:/ein/anderer/pfad >> /etc/profile Mit diesem Befehl wird der Text nicht auf der Konsole ausgegeben sondern einer Datei hinzugefügt. Wird anstelle von >> ein > geschrieben, so wird der Befehl nicht hinzugefügt sondern die komplette Datei gelöscht und nur der Befehl eingefügt. Es findet sich also nur mehr dieser eingefügter Befehl in der Datei. Sollte man jedoch einmal ein Script ausführen müssen und deshalb nicht gleich den Pfad ergänzen wollen, so kann er mit dem Pfad eingegeben werden, wie zum Beispiel./scriptnamen 3 oder /etc/mysysconfig/scriptnamen. 4.1.1 Umgang mit Befehlen Wir wissen nun, dass Befehle auf der Konsole aufgerufen werden und Programme oder Scripte sein können. Es ist jedoch auch möglich einem Befehl sogenannte Parameter zu übergeben. Ein Parameter kann eine Zeichenfolge beginnend mit oder sein. Diese Art von Parameter verändert das Verhalten des Programmes und wird allgemein als Option bzeichnet. Ein Parameter kann jedoch auch eine Datei, ein Ordner oder ein String (Zeichenfolge) sein. Ein Aufruf könnte dann wie folgt aussehen. user $ rm help So ein Aufruf gibt die Hilfe zum Befehl aus und listet alle möglichen Optionen und Aufrufmöglichkeiten auf. Der Parameter help existiert für (fast) alle Befehle und ist sinnvoll wenn man schnell Hilfe zu dem jeweiligen Befehl braucht. user $ rm datei.txt user $ rm -r ordner 2 Die Tilde steht als Platzhalter für das home-verzeichnis des Benutzer, der den Befehl ausführt, zum Beispiel /home/user 3./ ist die Bezeichnung des aktuellen Verzeichnisses in dem man sich gerade befindet. Mit pwd kann man kontrollieren welches das ist. 16

Diese beiden Fälle zeigen einen häufig verwendeten Befehl und zwar das Löschen einer Datei im aktuellen Verzeichnis (wird ein Verzeichnis angegeben, z. B. /home/user/datei.txt so kann auch eine Datei irgendwo auf der Festplatte gelöscht werden. Das gleiche gilt für Ordner) und das Löschen eines Ordners mit allem Inhalt. Dazu wird dem Befehl der Parameter -r, für rekursiv, übergeben. Wir der Parameter weggelassen so können nur leere Ordner gelöscht werden. Das Beispiel sollte die Funktionsweise eines Befehlsaufrufes verdeutlichen. Analog dazu kann mit jedem Befehl gleich vorfahren werden, bei Unklarheiten den Befehl mit help (manchmal funktioniert auch -h) aufrufen oder in den manpages (siehe Abschnitt 4.2 auf Seite 17) Hilfe suchen. 4.1.2 Wichtige Befehle Hier werden nun ein paar wichtige Befehle aufgelistet, die man immer wieder braucht und die unverzichtbar für die Administration von einem Server sind. Damit man die Befehle nicht auswendig lernen muss sollte man sich die wichtigsten oder die man immer wieder braucht auf einem Spickzettel aufschreiben und da immer wieder nachschauen. Nach kurzer Zeit wird einem dann bewusst dass man den Spickzettel gar nicht mehr braucht. Befehl Beispiel eines Aufrufes Erklärung ls ls oder ls /verzeichnis Listet den Ordnerinhalt auf. mv mv altedatei neuedatei oder mv /altedatei /home/user/neuedatei Umbennen (wenn Ausgangs- und Zielordner gleich) oder Verschieben (wenn Ausgangs- und Zielordner verschieden) von Dateien und Ordner (-r für rekursiv, wenn Ordner nicht leer). cp cp altedatei neuedatei oder cp /altedatei /home/user/neuedatei Kopieren von Dateien und Ordner (-r für rekursiv, wenn Ordner nicht leer). rm rm datei oder rm -r ordner Datei oder Ordner löschen (-r wenn Ordner nicht leer). cat cat datei Gibt den Inhalt einer Datei auf dem Bildschirm aus. less less datei Gleiche Funktion wie cat, jedoch kann man durch die Seiten scrollen bzw. nach Text suchen und noch weitere nützliche.. Ergänzungen.. 4.2 Manpages und Alternativen Wir wissen nun was ein Befehl ist und wie man damit umgeht. Da es unmöglich ist alle Parameter jedes Befehles zu merken haben wir auch gelernt wie man auf die Hilfe zugreift. Aber manchmal bietet die unmittelbare Hilfe eines Befehles zu wenig Informationen oder man möchte näheres über den Befehl wissen oder Beispiele sich angucken. Dazu gibt es die manpages, die den meisten Befehlen mitgeliefert werden und in einem speziellen Ordner gespeichert werden. Da man nicht immer die manpages suchen möchte, gibt es einen Befehl um die manpage direkt aufzurufen. user $ man ls Hier wird die manpage für den Befehl ls aufgerufen. ls kann natürlich durch jeden beliebiegen Befehl ersetzt werden. In den meisten Fällen reicht der oben angegebene Befehl aus. Es ist jedoch möglich das es für einen Befehl mehrere manpages in verschiedenen Kategorien gibt, dann wird der Befehl folgendermaßen aufgerufen. user $ man 1 ls Dabei kann die Zahl 1 durch einer der folgenden Abschnitte ersetzt werden. 17

Abschnitt Kategorienamen 1 Nutzerbefehle und Kommandos 2 System-Aufrufe 3 Subroutinen und Bibliotheksaufrufe 3p Perl-Module 3tcl Tcl-Module (stattdessen oft auch in Abschnitt n) 4 Geräte und Spezialdateien 5 Dateiformate 6 Spiele 7 Verschiedenes, Makropakete und Konventionen 8 Systemverwaltung 9 Kernelverwaltung n Neu Eine interessante Alternative zu den manpages sind die Info-Seiten, sie bieten meist mehr Informationen und sind in Kombination mit pinfo mit Hyperlinks versehen, was die Navigation durch verschiedene Seiten sehr erleichtert. Der Befehl info ist meist schon standartmäßig vorhanden, wobei der erweiterte pinfo nachinstalliert werden muss 4. user $ info ls user $ pinfo ls Mit Hilfe von help, der manpages und der Info-Seiten lassen sich nun die meisten Probleme lösen und zwar direkt von der Konsole aus. 4.3 Installation von Programmen Mit den Standartprogrammen, die auf einem Server schon vorinstalliert sind, kommt man meistens nicht aus, auch wenn man nicht ein Minimalsystem hat. Deshalb wollen wir uns in diesem Kapitel mit der Installation von Software befassen. Als Erstes behandeln wir die distributionsunabhängige Installation und danach gehen wir kurz auf die Installationsroutinen der großen Distributionen ein. Genauere Informationen findet man, wie im Abschnitt 4.2 auf Seite 17 behandelt, in den Hilfeseiten zu den Paketmanagern 5. 4.3.1 Installation mit dem Dreisatz Eine distirbutionsunabhängige Möglichkeit ein Programm zu installieren ist es aus dem Quellcode zu kompilieren. Diese Möglichkeit hört sich zwar auf dem ersten Blick kompliziert an, ist jedoch mit Hilfe des Dreisatzes nicht sehr kompliziert. Jedoch werden dabei Abhängigkeiten nicht selbständig aufgelöst, wie bei den Paketmanagern gewohnt. Also müssen diese Pakete manuell installiert werden. Zuerst müssen wir den Quellcode entpacken. Unter Linux hat sich dabei das Format.tar durchgesetzt. Hier ein paar Beispiele wie man ein mit tar gepacktes Paket entpacken kann. user $ tar xvf quellcode.tar user $ tar xzvf quellcode.tar.gz user $ tar xjvf quellcode.tar.bz2 Das x steht für extract (entpacken), das v für verbose (ausführliche Ausgabe), das f bedeutet file (Datei) und das z und j geben das Format an (siehe Dateiendung im Beispiel). Sollte das Format.zip oder.rar sein so kann es mit Hilfe der Befehle unzip quellcode.zip und unrar x quellcode.rar entpackt werden. Beide Programme müssen aber gewöhnlich nachinstalliert werden. Nachdem wir den Quellcode des Programmes, das wir installieren wollen entpackt haben wechseln wir in den Ordner und führen den Dreisatz aus. root #./configure root # make root # make install 4 Siehe dazu Abschnitt 4.3 auf Seite 18 5 yast/yast2 (SuSE), apt/aptitude (Debian), rpm (Red Hat), emerge (Gentoo) 18

Jetzt erklärt sich der Namen Dreisatz, der auf die drei Befehle zurückzuführen ist. Der erste Befehl./configure ist dafür zuständig, das noch Einstellungen vorgenommen werden können. Sofern vom Programm unterstützt ist es auch mögich, das der Benutzer selber noch einige Dinge anpassen kann. Der zweite Befehl make ist der eigentliche Kompiliervorgang bei dem der Quellcode in Maschinensprache übersetzt wird. Als Abschluss werden die Programmteile dann noch mit Hilfe von make install in die richtigen Ordner kopiert. Sofern keine Fehler aufgetreten sind ist das Programm nun installiert. Es ist auch mögich die Befehle auf einmal aufzurufen, damit man nicht warten muss bis ein Schritt fertig ist. Dazu gibt die drei Befehle folgendermaßen ein. root #./configure && make && make install Bei der Verknüpfung der Befehle mit && wird der nächste Befehl nur ausgeführt wenn der vorherige erfolgreich war. Werden die Befehle nicht als root sondern als normaler Benutzer ausgeführt so wird das Programm nur für diesen Benutzer in seinem Home-Verzeichnis installiert. Auch wenn man die Pakete lieber mit den enstprechenden Paketmanager installiert, was auch zu empfehlen ist, sofern man keine spezifischen Einstellungen ändern will oder das Paket nicht im Paketmanager enthalten ist, sollte man einmal gesehen haben wie man ein Programm aus dem Quellcode installieren kann. Da man so auch einen defekten Paketmanager wieder installieren kann. 4.3.2 Umgang mit den Paketmanagern Die Installation mit dem Paketmanager ist im Allgemeinen zu empfehlen. Da man so die gesamte Software einfach updaten kann und so immer Sicherheitslücken geschlossen werden sofern ein Patch oder eine neue Version verfügbar ist. Es ist auch möglich bei einer bestimmtne Version zu bleiben. Ein weiterer Grund der für den Einsatz eines Paketmanagers spricht ist die Auflösung von Abhängigkeiten. So muss nichts manuell nachinstalliert werden um ein Programm installieren zu können. Alle gängigen Programme sind mittlerweile in den großen Paketmanagern enthalten, so wird ein manuelles installieren von Software nur in den seltensten Fällen notwendig. Da jede große Distribution seinen eigenen Paketmanager mitbringt kann hier nur kurz auf die jeweilige Distribution eingegangen werden. Die Befehle werden, sofern sie hintereinander ausgeführt werden sollen mit && verknüpft. Sie können jedoch auch einzeln eingegeben werden. Debian mit apt und aptitude Debian bietet gleich zwei Paketmanager an, wobei beide wiederum auf dpkg aufbauen und somit nur Frontends sind. aptitude ist der Nachfolger von apt und wird von den Entwicklern von Debian empfohlen, da er die Abhängigkeiten besser auflöst. Der Umgang gestaltet sich mit beiden Paketmanagern ähnlich in manchen Dingen unterscheiden sie sich jedoch. Es wird empfohlen aptitude nachzuinstallieren und ihn dann anstelle von apt zu benutzen. Nicht nur weil er Abhängigkeiten einfacher auflösen kann, sondern auch weil er intuitiver zu bedienen ist. root # apt-get update && apt-get install aptitude Der erste Befehl gleicht alle Paketversionen mit den Debian-Servern 6 ab. So wird gewährleistet, dass immer die aktuelleste Paketversion installiert wird. Der Befehl muss nicht immer ausgeführt werden wenn was installiert wird. Es empfiehlt sich aber ihn hin und wieder auszuführen, damit nicht alte Versionen installiert werden, die möglicherweise noch nicht die aktuellen Sicherheitspatches beinhalten. root # apt-get update && apt-get upgrade root # apt-get update && apt-get dist-upgrade Der erste Befehl (upgrade) updatet alle installierten Programme sofern eine neue Version vorhanden. dist-upgrade installiert auch Pakete die wegen bisherigen ungelösten Abhängigkeiten nicht installiert wurden. Wird in der Regel verwendet wenn auf eine neue Version von Debian geupdatet wird. 6 Debian-Server können in der Datei /etc/apt/sources.list als root hinzugefügt oder verändert werden. Siehe http://www.apt-get.org/ 19

root # apt-cache search suchwort Zum suchen wird nicht mehr apt-get sondern apt-cache verwendet. Das Wort das gesucht wird muss nicht genau dem Paketnamen entsprechen. Es werden alle Pakete aufgelistet in dem das Wort vorkommt. root # apt-get remove paketnamen Mit Hilfe von remove wird ein Paket und alle Abhängigkeiten gelöscht, sofern die Abhängigkeiten von keinem anderen Programm gebraucht werden. Damit ist ein saubere Deinstallation gewährleistet. Die Aufrufe von aptitude gleichen dem von apt, jedoch kann aptitude auch ohne Parameter aufgerufen weden, somit gelangt man in ein interaktives Menüe (siehe Grafik 4.1). Abbildung 4.1: aptitude - Interaktiver Aufruf Von hier aus können alle Operationen durchgeführt werden, die auch von der Konsole möglich sind. Analog zu apt lauten die Befehle für aptitude: root # aptitude update && aptitude install paketnamen root # aptitude update && aptitude upgrade root # aptitude update && aptitude dist-upgrade root # aptitude search suchwort root # aptitude remove paketnamen root # aptitude purge paketnamen Neu ist der Befehl purge, dabei werden im Gegensatz zu remove auch die Konfigurationsdateien gelöscht. Es wird auch kein extra Befehl gebraucht um nach Paketen zu suchen. Red Hat mit rpm Red Hat bringt als Paketmanager rpm (RPM Paket Manager) mit. rpm-pakete sind sehr weit verbreitet und sind für alle gängigen und noch viel weitere Software vorhanden. Die Installation gestaltet sich wie folgt. root # rpm -i paketnamen-1.0.i686.rpm root # rpm -U paketnamen Der erste Befehl installiert ein Programm, wobei der Zweite das Programm updatet. root # rpm -ql namen root # rpm -e paketnamen Mit der Option -ql wird nach Dateien mit dem Namen namen in allen installierten Paketen gesucht. Die Option -e deinstalliert das Programm wieder. 20

Gentoo mit emerge Gentoo arbeitet mit einem Port-System namens Portage ähnlich dem der BSD Systeme 7. portage ist das Tool mit dem Portage gesteuert wird. Das besondere an Gentoo ist das alle Pakete kompiliert werden (siehe Unterabschnitt 4.3.1 auf Seite 18). Dabei wird die Kompilation mit Hilfe von emerge stark erleichtert ohne die Vorteile einer händischen Installation zu verlieren. Es kann noch immer der Installationsvorgang beeinflußt werden, das heißt man kann explizit auswählen welche Unterstützung mit einkompiliert wird. Um die vollständigen Aspekte von Gentoo und seinem Paketmanager zu erläutern ist das Kapitel hier zu kurz und man findet auf den Gentoo-Webseiten 8 genug Lesematerial. Weiters bieten nicht viele Serveranbieter eine Gentoo-Installation auf den Server an, weil das Betriebssystem auf die Hardware zugeschnitten ist und sich somit für ein Standartimage nicht gut eignet. Die Installation unterscheidet sich kaum von anderen Paketmanagern. Zuerst wird die interne Datenbank geupdatet und dann kann ein Paket installiert werden. root # emerge sync root # emerge -val paketnamen paketnamen muss natürlich durch den Namen des Programmes ersetzt werden. Es empfiehlt sich die Installation mit den Parametern -val zu starten, die jedoch optional sind. Dabei steht das v für verbose was soviel wie erweiterte Ausgabe bedeutet und man somit bei Fehlern genauer Bescheid weiß, a steht für ask, dabei wird man gefragt ob man wirklich Installieren will, was sehr hilfreich ist wenn man nicht genau weiß welche Abhängigkeiten mitinstalliert werden und man es sich dann trotzdem anders überlegt, l steht für list und listet alle Abhängigkeiten auf (auch die die schon installiert sind). Ein Paket kann auch wie folgt installiert werden: root # USE= ssl emerge -val paketnamen Mit diesem Befehl wird das Programm paketnamen mit ssl-unterstützung kompiliert. Stellt man vor ssl ein - voran so wird das Programm ohne ssl-unterstützung kompiliert. USE= - ssl emerge -val paketnamen Hier noch einige wichtige Befehle. root # emerge sync && emerge -vatdnu world # Zuerst wird Datenbank\ geupdatet und dann ein Systemupdate durchgeführt. root # emerge search paketnamen # Nach paketnamen suchen. root # emerge unmerge paketnamen # paketnamen wird entfernt, jedoch\ NICHT die Abhängigkeiten. root # emerge help # Zeigt die Hilfe an. 7 FreeBSD, OpenBSD usw. 8 Deutsch: http://www.gentoo.de, Englisch: http://www.gentoo.org 21