17.5 Serveranwendungen
In diesem Abschnitt sollen einige spezielle Serveranwendungen besprochen werden, die vielleicht nicht ganz alltäglich sind. Dazu gehört z. B. der Apache Webserver und der SQL-Server. Beginnen wollen wir allerdings mit einigen nützlichen Standard-Serverdiensten.
17.5.1 Einen Nameserver einrichten
Wer etwas größere lokale Netzwerke zu administrieren hat, der wird den Einsatz eines Nameservers schätzen. Dieser sorgt dafür, dass die Clients des Netzwerks nicht mühsam von Hand mit IP-Adressen versehen werden müssen. Das Standardpaket unter Linux ist dhpd, einfacher geht die Einrichtung des Nameserverdienstes aber mit dem Paket dnsmasq, das im Universe-Repository zu finden ist. Sie installieren dnsmasq über
sudo apt-get install dnsmasq
Das Programmpaket beinhaltet unter anderem auch einen Nameserver- Forwarder, so dass sämtliche lokalen Rechner auch noch mit dem richtigen Nameserver versorgt werden. Dnsmasq leitet Anfragen nach externen Adressen an den Nameserver, der in der Datei /etc/resolv.conf definiert wurde, weiter. Wir unterscheiden im Folgenden zwei verschiedene Konfigurationsszenarien.
Konfiguration als einfacher DNS-Server
Dnsmasq greift zur lokalen Namensauflösung auf /etc/hosts zurück. Darin sind die im Netzwerk befindlichen Rechner einzutragen:
# Auszug aus /etc/hosts auf Server 192.168.0.1 server.heimnetz.de server # Server 192.168.0.2 desktop.heimnetz.de desktop # Desktop-PC 192.168.0.3 laptop.heimnetz.de laptop # Laptop
Soll dnsmasq nur als DNS arbeiten, ist die Konfiguration auf dem Server damit beendet. Auf der Clientseite ist in der Datei /etc/resolv.conf der Server als DNS einzutragen:
# Auszug aus /etc/resolv.conf auf Client search heimnetz.de nameserver 192.168.0.1
Dadurch wird dann insbesondere auch der auf dem Server befindliche DNS-Eintrag des Providers weitergereicht.
Konfiguration als DHCP-Server
Spätestens dann, wenn die Anzahl der Rechner im lokalen Netz zweistellig wird, fährt man mit einem DHCP-Server besser. Dieser verteilt dynamische IP-Adressen an die im Netz befindlichen PCs, ungefähr so, wie das bei der Einwahl zu Ihrem Internetprovider auch geschieht. Die Konfiguration ist ein wenig aufwändiger. Zunächst wird die Datei /etc/dnsmasq.conf bearbeitet:
# Auszug aus /etc/dnsmasq.conf # Bereich, aus dem dnsmasq die IP-Adressen verteilt dhcp-range=192.168.0.41,192.168.0.50,12h # 12h ist die Lease-Time
Wenn man möchte, dass einzelne Clients immer die gleiche IP-Adresse bekommen sollen, so lässt sich das über folgenden Eintrag mit Hilfe der MAC-Hardwareadressen realisieren:
dhcp-host=00:0E:A6:86:03:CF, laptop,192.168.0.3,infinite
In diesem Fall wird die Hardwareadresse der Netzwerkhardware fest mit der obigen IP verknüpft. Erstere erfährt man durch den Befehl ifconfig auf dem entsprechenden Rechner:
user$ ifconfig eth0 Hardware Adresse 00:0E:A6:86:03:CF
Wer im Besitz eines Laptops ist, das wechselweise per Ethernet-Kabel oder WLAN mit dem Netz zu verbinden ist, kann folgende Einstellung vornehmen:
dhcp-host=00:00:F0:71:EE:74,link,infinite dhcp-host=00:0E:35:22:9D:1B,link,infinite
So werden demselben physikalischen Gerät in Abhängigkeit von dem genutzten Device unterschiedliche Adressen zugeteilt. Der DHCP-Server kann seinen Clients weitere Informationen übermitteln, beispielsweise die Adresse eines weiteren Rechners, der als Internetgateway agiert:
# Syntax: Optionsnummer, Adresse dhcp-option=3,192.168.1.1
Mehr zu der Zuordnung der Optionsnummern entnehmen Sie den Kommentaren in der Datei /etc/dnsmasq.conf. Ein Zeitserver zum Abgleich der lokalen Zeit wird schließlich folgendermaßen eingetragen:
dhcp-option=42,192.53.103.103 # Timeserver ptbtime1.ptb.de
In diesem Fall wurde der Stratum1-Server der Physikalisch-Technischen Bundesanstalt Braunschweig zum Zeitabgleich definiert. Apropos Zeitserver:
In der »normalen« Ubuntu-Installation wird automatisch der Abgleich der lokalen Zeit mit dem Ubuntu-Zeitserver ntp.ubuntulinux.org eingestellt. Dieser Server wird in der Datei /etc/default/ntpdate definiert. Hier ist es sicherlich ratsam, einen lokalen Server wie z. B. den oben angegebenen zu definieren. Nach der Änderung des Zeitservers kann dieser über
user$ sudo /etc/init.d/ntpdate restart
getestet werden.
17.5.2 Einen Webserver aufsetzen
Webdesigner und Blogger schätzen die Möglichkeit, unter Ubuntu Linux in kurzer Zeit einen voll funktionsfähigen Apache-Webserver aufsetzen zu können, um ihre Webinhalte im lokalen Netz zu testen, bevor diese auf den Internetserver hochgeladen werden.
Folgende Pakete sind zunächst für die aktuelle Apache-Serverbasis zu installieren:
- apache2
- apache2-common
- apache2-doc
Damit wird das neue Apache2-Release installiert. Wer ein schlankes, bewährtes System bevorzugt, der kann auch getrost auf die ältere Version
1.3.x zurückgreifen und folgende Pakete installieren:
- apache
- apache-common
- apache-doc
Zusätzlich können nun noch einige Module installiert werden, um den Apache z. B. um die PHP- sowie Python-Funktionalität zu erweitern:
Zur Integration von PHP sind dies:
- libapache2-mod-php5
- php5
- PHP-Module wie pear, mysql, pgsql, ...
Python wird mit folgenden Paketen nachgerüstet:
- libapache2-mod-python
- python
Nach der Installation der obigen Pakete via apt-get bzw. Synaptic lässt sich der Apacheserver mit folgenden Kommandos kontrollieren:
user$ sudo /etc/init.d/apache <start|stop|restart>
Dabei ist jeweils einer der Parameter start, stop bzw. restart zu verwenden. Ob der Server läuft, erfahren Sie am einfachsten durch den Aufruf der lokalen IP bzw. durch Eingabe des Schlüsselworts localhost in einem Browser Ihrer Wahl. Dort wird dann zunächst ein Verzeichnis apache2-default angezeigt. Klickt man dieses an, dann landet man auf der Default-Startseite des Webservers (Abbildung 17.18).
Abbildung 17.18 Die Startseite des Apache-Webservers
Das Verzeichnis des Webservers befindet sich in der Standardeinstellung unter /var/www und ist nur für den Administrator beschreibbar. Sämtliche nachinstallierten Module legen dort ebenfalls ihre Dateien ab. Möchten Sie als normaler Nutzer Webinhalte testen, so empfiehlt es sich, das Verzeichnis entweder weltles-/schreibbar zu machen oder es einfach mit Hilfe eines symbolischen Links umzusiedeln. Die folgenden Befehle verschieben das Verzeichnis in ein privates /home-Verzeichnis:
user$ sudo cd /home/<Benutzer> user$ sudo mv /var/www . user$ sudo chown –R <Benutzer> www user$ sudo ln –s /home/<Benutzer>/www /var/www
Nun kann in dem entsprechenden Verzeichnis ohne Root-Rechte gearbeitet werden.<Auch in diesem Zusammenhang wieder die Mahnung, dass man lediglich auf Testsystemen so verfahren sollte.> Testweise kann dort beispielsweise eine Seite index.html erstellt werden, die dann automatisch bei Aufruf der entsprechenden IP-Adresse dargestellt wird.
In der Standardkonfiguration wird der Apache-Server bei jedem Booten des Systems gestartet. Wenn Sie das nicht wünschen, so können Sie den Apache-Dienst folgendermaßen aus dem Bootprozess entfernen:
user$ sudo update-rc.d -f apache2 remove
Soll der Dienst wieder automatisch beim Booten gestartet werden, so kann er erneut über den Befehl
user$ sudo update-rc.d apache2 defaults
aktiviert werden. Dadurch wird das Startskript in die entsprechenden Runlevel-Vezeichnisse geschrieben, mehr zum Thema Runlevel finden Sie in Abschnitt 10.2.2.
Interessant ist noch die Möglichkeit, den Apache-Server mit Modulen aufzurüsten. So liefert beispielsweise das Paket phpsysinfo in Verbindung mit dem PHP-Modul Informationen über den Status des Systems, z. B. die Festplattenkapazitäten, den Prozessortyp und dessen Temperatur.
17.5.3 Installation von MySQL
In Verbindung mit dem Apache-Webserver bietet die Verwendung der Datenbank MySQL ein professionelles Webserverumfeld. Die gesamte Technik fand man bis vor kurzem noch unter der Sammelbezeichnung LAMP (Linux-Apache-MySQL-PHP), mittlerweile ist man zur Bezeichnung XAMP übergegangen. Das X soll signalisieren, dass man die gleiche Softwarekombination auch unter Windows realisieren kann, dort fand man früher die Bezeichnung WAMP vor.
Für den Einsatz in Verbindung mit der Datenbank MySQL benötigt man folgende Pakete:
- mysqlserver
- php5-mysql
- phpmyadmin
Durch Auswahl des Pakets phpmyadmin wird das gesamte Spektrum der LAMP-Software installiert. Zusätzlich steht Ihnen mit dem Tool ein exzellentes Konfigurationswerkzeug zur Hand. Während der Installation wird ggf. die Konfiguration des zusätzlich benötigten postfix-Pakets angefordert, hier wählt man einfach no configuration.
Nach der Installation geben Sie im Server die lokale IP bzw. das Schlüsselwort localhost an und wechseln innerhalb des Browserfensters in den Ordner phpmyadmin. Es öffnet sich die Administrationsstartseite, und man muss sich in das System einloggen. Als Loginnamen verwenden Sie root, das Passwort bleibt für das erste Login leer. Darauf sollte sich die Administrationsoberfläche von phpMyAdmin öffnen (Abbildung 17.19).
Abbildung 17.19 Administration des LAMP-Systems mit phpMyAdmin
Wenn Sie planen sollten, das System in einen produktiven Server zu überführen, dann sollte als Erstes das Administratorpasswort gesetzt werden. Dies erledigen Sie über den Menüpunkt Kennwort ändern. Anschließend können Sie (entsprechende Kenntnisse vorausgesetzt) bestehende Datenbanken verändern, neue Datenbanken anlegen und diese administrieren (Abbildung 17.20).
17.5.4 Ein einfacher FTP-Server
Zur unkomplizierten Einrichtung eines einfachen FTP-Servers gibt es unter Ubuntu Linux das Paket ProFTP. Sie installieren dies schnell mittels
user$ sudo apt-get install proftpd
Während der Installation wird man noch gefragt, ob das Programm als eigenständige Anwendung oder in Verbindung mit dem (x)inetd-InternetDaemon gestartet werden soll. Befindet sich das letztgenannte Programm ohnehin schon auf Ihrem System, dann sollten Sie ProFTP mit (x)inetd verknüpfen. Anderenfalls wählen Sie den Punkt Daemon.
Abbildung 17.20 Bearbeiten einer bestehenden Datenbank unter phpMyAdmin
Ob der ProFTP-Deamon läuft, erfahren Sie über das Kommando
user$ ps ax | grep ftp proftpd: (accepting connections)
Nun gilt es, den Zugang beispielsweise für den anonymen FTP-Zugang freizuschalten. Dazu ist die Konfigurationsdatei /etc/proftpd.conf anzupassen.
Im folgenden Beispiel soll das Verzeichnis /home/ftp, das während der Installation erstellt wurde, per Anonymous FTP exportiert werden. Die Benutzer sollen Leserechte, aber keine Schreibrechte für das Verzeichnis erhalten. Zunächst sind also die Rechte für das Verzeichnis zu setzen:
user$ sudo chmod 775 -R /home/ftp/
Nun muss die Konfigurationsdatei angepasst werden, was im Wesentlichen auf ein Entfernen einiger Kommentarzeichen in der Standardkonfiguration hinausläuft:
user$ sudo gedit /etc/proftpd.conf # Auszug aus /etc/proftpd.conf <Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Abschließend muss der Daemon neu gestartet werden, damit die neue Konfiguration übernommen wird:
user$ sudo /etc/init.d/proftpd restart Restarting ProFTPD ftp daemon.proftpd.
Manueller Verbindungstest
Für einen einfachen Test des Servers kann man nun versuchen, sich von einer Kommandozeile aus mit dem FTP-Protokoll als Benutzer anonymous einzuloggen. Die Passwortabfrage kann einfach durch Drücken der Return-Taste übersprungen werden. Das folgende Beispiel zeigt ein Login auf einen Server mit der IP
192.168.0.1 mit anschließendem Download einer Datei test.txt:
user$ ftp 192.168.0.1 Connected to 192.168.0.1. 220 ProFTPD 1.2.10 Server (Debian) [192.168.0.1] Name (192.168.0.1:hatt): anonymous Remote system type is UNIX. Using binary mode to transfer files. ftp> dir 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 ftp ftp 37 Nov 18 11:30 test.txt -rwxrwxr-x 1 ftp ftp 166 Sep 5 17:17 welcome.msg 226 Transfer complete. ftp> get test.txt local: test.txt remote: test.txt 200 PORT command successful 150 Opening BINARY mode data connection for test.txt (37 bytes) 226 Transfer complete. 37 bytes received in 0.00 secs (81.2 kB/s) ftp> quit 221 Goodbye.
Die vom Benutzer eingegebenen Befehle sind im obigen Listing jeweils fett dargestellt.
Nachdem auf diese Weise die Grundfunktionalität des Servers sichergestellt wurde, kann man unter Ubuntu auch mit jedem beliebigen Browser auf das freigegebene FTP-Verzeichnis zugreifen. Der Vorteil an dem Datentransfer via FTP ist die Möglichkeit, unterbrochene Downloads in Verbindung mit einem Downloadmanager fortzusetzen. Selbstverständlich kann auch das Programm Orte · Verbindung zu Server eingesetzt werden, hier ist der Dienste-Typ Öffentlicher FTP auszuwählen.
17.5.5 Der Squid-Proxyserver
Mit Hilfe des Webproxys Squid lässt sich der Internetzugang für mehrere PCs in einem lokalen Netz dadurch beschleunigen, dass man die aufgerufenen Seiten temporär in einem so genannten Cache abspeichert. Wird von einem Client-PC eine Seite aufgerufen, so geht die Anfrage bei Nutzung von Squid zunächst an den Proxy. Dieser schaut nach, ob er die gewünschte Seite bereits in seinem Cache zur Verfügung stehen hat und ob deren Inhalt noch aktuell ist. Auf diese Weise lassen sich Internetinhalte effektiver in einem LAN verteilen.
Sie installieren den Webproxy Squid unter Ubuntu mit Hilfe des folgenden Pakets:
- squid
Folgende Konfigurationsschritte sind durchzuführen, um Squid von jedem PC im angeschlossenen LAN nutzen zu können:
Bearbeiten Sie zunächst auf dem Server, auf dem der Proxy installiert ist, die Datei /etc/squid/squid.conf:
# Auszug aus /etc/squid/squid.conf # Privates Netzwerk den Zugriff gestatten acl mein_netzwerk src 192.168.0.0/24 http_access allow mein_netzwerk # Der Rest der Welt bleibt draußen http_access deny all
Im vorliegenden Fall wird dem kompletten Netzwerk 192.168.0.x erlaubt, auf den Proxy zuzugreifen. Mit dem Parameter acl wird dabei die Zugriffsregel gesetzt. Nach jeder Änderung an der Konfigurationsdatei ist der Squid-Proxy neu zu starten:
user$ sudo /etc/init.d/squid restart Restarting proxy server: squid.
Die Konfiguration der Clients erfolgt innerhalb des jeweils verwendeten Browsers. Suchen Sie zu diesem Zweck in Ihrem Browser ein Untermenü, in dem der Zugang per Proxy definiert werden kann. Im Firefox ist dies unter Bearbeiten · Einstellungen · Allgemein · Verbindung zu finden. Im Konqueror finden Sie die Proxy-Einstellungen unter Einstellungen · Konqueror einrichten · Proxy Einstellungen manuell vornehmen. Die Nutzer des Internet Explorers auf im Netz befindlichen Windows-PCs stellen den Proxy unter Extras · Internetoptionen · Verbindungen •
LAN-Einstellungen ein.
Zur Nutzung des Squid-Proxys tragen Sie dann einfach an den oben beschriebenen Stellen die IP des Servers sowie die Portnummer 3128 ein (Abbildung 17.20).
Abbildung 17.21 Definition eines Proxys in Firefox
Sind Sie gar Administrator eines Internetservers innerhalb einer öffentlichen Institution, so ist das Filtern von Webinhalten eine weitere, vordringliche Aufgabe. Zu diesem Zweck lassen sich innerhalb der Squid-Konfigurationsdatei reguläre Ausdrücke oder ganze Domänen definieren, bei deren Aufruf entsprechende Seiten gesperrt werden. Besonders einfach lässt sich die aktive Filterung von Webinhalten mit Hilfe des Pakets dansguardian realisieren.
17.5.6 CUPS für Administratoren
Generell ist der Zugriff auf das Druckersystem unter Ubuntu durch den GNOME-CUPS-Manager geregelt. Dieser befindet sich im Menü System · Systemverwaltung · Drucker.
Möchte man aber den Drucker im gesamten Netz freigeben, so nutzt man am besten die browsergestützte Verwaltung des CUPS-Druckersystems. Die benötigte CUPS-Software ist schon in der Ubuntu Standardinstallation enthalten. Allerdings sind unter Ubuntu einige Klimmzüge erforderlich, um den vollen Administratorzugriff auf das CUPS-System zu bekommen.
Zunächst muss das CUPS-System der Gruppe shadow zugeordnet werden:
user$ sudo adduser cupsys shadow Füge Benutzer cupsys in Gruppe shadow hinzu...
Anschließend sollte noch ein Passwort für den CUPS-Administrator festgelegt werden, um ggf. auch einen Remote-Zugriff zu gewährleisten.
Das folgende Beispiel setzt voraus, dass auf dem entsprechenden System der Root-Account aktiviert wurde. Das Passwort sollte eine Länge von mindestens sechs Zeichen haben und mindestens eine Ziffer enthalten:
sudo lppasswd -g sys -a root
Damit die Änderungen übernommen werden, muss CUPS neu gestartet werden:
user$ sudo /etc/init.d/cupsys restart * Restarting Common UNIX Printing System: cupsd
Geben Sie nun folgende Adresse in eine Zeile Ihres Browsers ein:
http://localhost:631/admin
Schließlich können Sie sich nun auf dem CUPS-Rechner lokal mit Ihrem normalen Accountnamen und Ihrem normalen Passwort im Administrationsbereich einloggen. Hier können Sie auch Druckaufträge von anderen Benutzern löschen sowie neue Drucker und Klassen hinzufügen (Abbildung 17.22).
Abbildung 17.22 Administration von CUPS über den Browser
Zugriff per Netzwerk
Um die Verwaltung von CUPS über das Netzwerk freizugeben, muss die Datei /etc/cups/cupsd.conf angepasst werden. Zunächst muss CUPS sämtlichen Netzwerkzugriffen auf Port 631 lauschen. Dazu ist folgende Zeile in der Konfigurationsdatei zu ersetzen:
# Auszug aus /etc/cups/cupsd.conf # Listen 127.0.0.1:631 Port 631
Nun muss noch die Erlaubnis erteilt werden, aus dem angeschlossenen LAN auf CUPS zuzugreifen:
# Auszug aus /etc/cups/cupsd.conf <Location /admin> # Restrict access to local domain Deny From All Allow From 127.0.0.1 Allow From 192.168.0.0/24 </Location>
Im obigen Fall wurde erneut der Zugriff innerhalb eines lokalen Netzes
192.168.0.x sowie vom lokalen PC gestattet. Nach der Änderung muss der CUPS-Daemon erneut gestartet werden.
Für den administrativen Zugriff von einem entfernten PC aus wird nun die Login-Passwort-Kombination des CUPS-Rootaccounts verwendet. CUPS lässt sich übrigens auch hervorragend in Verbindung mit dem Samba-System in einem heterogenen Netzwerk mit Windows-PCs nutzen.