Network Services VU 2.0, Übungsbeschreibung184.163


SS 2005 - Johann Oberleitner - Letzte Änderung: Fri May 13 17:39:19 WEDT 2005



Übungsablauf

Die Übung findet in Gruppen zu 4 Studierenden statt. Jede Gruppe hat Gruppenbeispiele zu lösen, und jeder Teilnehmer einer Gruppe hat Einzelbeispiele zu lösen. Für jedes dieser Beispiele (Gruppe und Einzel) gibt es Punkte, wobei zu einem positiven Abschluss mehr als die Hälfte aller Punkte zu erreichen sind. Für jedes Beispiel gibt es eine Frist bis zu der die richtige Lösung abzugeben ist.

Für die Übung werden insgesamt 20% der Gesamtpunkte vergeben. Mit der Prüfung können demnach die restlichen 80% erreicht werden.

Anmeldung

Anmeldungen für die Übung bitte an den Tutor Daniel Fede.

Die Anmeldung für Übungsgruppen ist ab sofort nicht mehr möglich. Für all jene, die die Übung dennoch machen wollen kann ich nur auf die Möglichkeit hinweisen, den Übungsteil im Sommer zu absolvieren. Für diese Möglichkeit wird es eine Vorbesprechung im Juni geben.

Die Liste mit der Gruppeneinteilung finden Sie hier.

Inhalt

Ziel des Übungsteils ist es einige Vorlesungsinhalte in der Praxis auszuprobieren. Es gilt also Aufgabenstellungen zu lösen, wie sie auch ein System-Administrator in der Praxis zu lösen hat. Da es nicht möglich ist, alle Vorlesungsinhalte auszuprobieren gibt es im Übungsteil einige wenige Beispiele zu lösen. Insbesondere gilt es einen Nameserver (DNS) und ein EMail-Programm (Postfix) zu konfigurieren. Weitere Beispiele betreffen WWW-Server (Apache) und LDAP.

Die Übung soll in etwa Aufgabenstellungen anbieten, mit denen auch ein System Administrator und Web-Administrator in der Praxis konfrontiert ist. Da diese oft mit Leuten zu tun haben, die mit EDV wenig am Hut haben, wird auch in der Übung jeder Übungsteilnehmer für so einen "Kunden" verantwortlich sein, und DNS, EMail, Webseiten für diesen Kunden anbieten. Die Gruppierung in 4er Gruppen hat rein organisatorische Gründe bzw. haben wir nicht die notwendige Hardware um entsprechend viele Maschinenen parallel laufen zu lassen.

Account

Jede Übungsgruppe bekommt einen Account auf unserem Übungsrechner. Dieser Account beinhaltet Administratorrechte auf einem virtuellen Übungs-Host. Dieser Host bietet Linux als Betriebssystem (Debian 3.0). Die für die Übung notwendigen Tools sind bereits installiert, Sie brauchen also keine weiteren Tools installieren, oder dergleichen. Es sind keinerlei Tools installiert, die das Administrieren mittels Website vereinfachen. Dh. Sie müssen, Ihre Änderungen direkt an den Konfigurationsfiles vornehmen, die allesamt als Textfiles vorliegen. Als Texteditoren stehen zur Verfügung: vi, jove (emacs), und joe (ähnlich pico). Wer weder vi noch emacs bedienen kann, soll bitte den Texteditor joe verwenden (Aufruf mittels: joe myfile.txt), da dieser am einfachsten zu bedienen ist.

Sobald Sie sich als Gruppe (mit 4 Leuten) zusammengefunden haben, können Sie den Account beziehen, wobei sie auch ein Passwort bekommen. Anmelden können Sie sich dann mittels ssh Verbindung an diese Übungsmaschine. Wobei Sie sich auf einen bestimmten Port verbinden müssen: "ssh -p 1xx22 rootxx@nwsA.dslab.tuwien.ac.at". Wobei xx für Ihre Gruppennummer steht (also zB für Gruppe 05: ssh -p 10522 root05@nwsA.dslab.tuwien.ac.at). Das Passwort bekommen Sie am Institut bzw. am Ende der 2. Vorlesung von unserem Tutor. Unter Windows können Sie statt ssh auch putty.exe verwenden. Wenn sich die virtuelle Instanz Ihrer Gruppe auf nwsB befindet müssen Sie stattdessen nwsB.dslab.tuwien.ac.at verwenden.

Tools

Eine kurze Beschreibung der wichtigsten Tools, die Sie benötigen finden Sie unter Tools.

Beispiel 1

Das erste Beispiel beinhaltet den ersten Einstieg in das Übungssystem, das Anlegen von Benutzern für alle Teilnehmer einer Gruppe, sowie die Konfiguration des Nameservers.

Abgabefrist: 15.5 24:00

UnteraufgabeTypBeschreibung
Anlegen von BenutzernEinzelwertungJedes Gruppenmitglied benötigt zusätzlich zum Administratoraccount der Gruppe einen Unixaccount auf der Zielmaschine. Legen Sie dazu einen Account an, wobei Ihr Benutzername bestehen soll aus nws und Ihrer Matrikelnummer (ohne führenden Buchstaben). zB.: nws9325311, das Passwort können Sie frei wählen. (Tipp: Benutzer legt man unter Unix als Administrator mit dem Command adduser an).
Anlegen eines Kunden-AccountEinzelwertungFür jeden Kunden, den Sie betreuen müssen, legen Sie einen Unixaccount auf der Zielmaschine an, der Name und das Passwort des Kunden wird Ihnen bei der Passwortvergabe zugeteilt.
Konfigurieren des Nameservers.GruppenwertungAuf jeder Maschine muss der Nameserver entsprechend konfiguriert werden. Erstellen Sie dazu im Verzeichnis /etc/bind ein Textfile Namen nwsxx-zone, wobei xx für Ihre Gruppennummer steht. Die Domäne für Ihren Account soll die Bauart nwsxx.lab haben (lab ist eine Top-Level Domän, die nur am Übungsrechner funktioniert). Passen Sie den Start Of Authority Eintrag in diesem File so an, dass die Refresh-Time 3 Stunden beträgt, die Retry-Time 1 Stunde, die Expiration-Time 100 Stunden, und die Minimale Zeit genau einen Tag. Tragen Sie weiters Einträge für den Nameserver ein, der auf diesem Rechner läuft. Dieser soll unter dem lokalen Namen ns erreichbar sein. Die IP-Addresse der (virtuellen) Netzwerkkarte Ihrer Maschine können Sie mit dem Commando ifconfig abfragen.

Eine nicht vollständige Vorlage für das Zonenfile finden Sie hier.

Sie müssen das named.conf File erweitern um das Zonenfile einzubinden, dass sie modifiziert haben. Die Zone wird analog zu localhost eingebunden.

Den Nameserver können Sie neu starten mit "/etc/init.d/bind9 restart". Sie können Ihre Einstellungen mit dem dig Command testen, dass wir in der VO behandelt haben.

Hinweise für den Aufbau des Zonenfiles finden Sie zum Beispiel in RFC 1035. Eine genaue Doku und Beispiele zu bind9 finden Sie zum Beispiel unter BIND 9 Manual Pages. Inbesondere das Kapitel 6.3. über Zone-Files dürfte für das Beispiel hilfreich sein.
Konfigurieren der Kundeneinträge des Nameservers.EinzelwertungFür Ihren Kunden tragen Sie bitte eine Subdomain im Nameserver ein, mit dem Domain-Namen, den Sie bei der Passwortvergabe bekommen haben.
Eintrag eines HINFO EintragsGruppenwertungTragen Sie bitte einen HINFO Eintrag ein. Tragen Sie im OS Feld Ihre Gruppennummer ein, und im CPU Feld den String UML. Hinweis: normalerweise wird HINFO verwendet, um die CPU und das Betriebssystem eines einzelnen Hosts zu identifizieren.

Beispiel 2

Das zweite Beispiel beinhaltet das Konfigurieren eines SMTP-Severs (Postfix) und die Verarbeitung von eingehenden EMail-Nachrichten mittels procmail

Abgabefrist: 29.5 24:00
UnteraufgabeTypBeschreibung
Konfigurieren des Mail Exchange im DNSGruppenwertungÄndern Sie Ihr Zonenfile dahingehend, dass der Host als Mail Exchange fungieren kann.
Konfigurieren des Postfix Mail Servers.GruppenwertungKonfigurieren Sie den Postfix Server dahingehend, dass Sie damit mails verschicken können. Das soll innerhalb der Laborumgebung möglich sein. Dh. zwischen verschiedenen Gruppen. Um das zu Testen gibt es die Möglichkeit an den Account autoreply@nws00.lab eine Mail zu schicken, das im Subject "Test" enthält. Sie bekommen dann eine Antwort-Mail wenn es funktioniert (keine Antwort wenns nicht geht, aber eine Fehlermeldung in einem der Log-Files in /var/log/).

Mail verschicken können Sie mit dem Programm mail (Funktionsweise: man mail). Unter Umständen benötigt mail als Parameter den Pfad des Spool-Verzeichnisses.
Konfigurieren des EMail-Eingänge.EinzelwertungSorgen (ausprobieren) Sie dafür, dass Sie sowohl Mails auf Ihrem Benutzeraccount wie auch auf Ihrem Kundenaccount empfangen können. Legen Sie zusätzlich Mail-Aliases an, dass Sie Mails der Form "Vorname.Nachname@nwsNN.lab" und "V.Nachname@nwsNN.lab" verschicken können. Legen Sie auch einen Alias an, der es Ihnen erlaubt an mehrere Benutzer (also Ihrem Account und dem Kundenaccount) gleichzeitig Mails zu verschicken (primitive Form von Mailinglist).

Das Schreiben von Aliases entnehmen Sie den Man-Pages zu "aliases" (man aliases)

Hinweis: vergessen Sie nach dem Ändern des Aliases Files nicht postfix darüber in Kenntnis zu setzen (zB. mittels postalias)
Konfigurieren von Procmail-RegelnGruppenwertungKonfigurieren Sie procmail und schreiben Sie systemweit gültige Regeln um EMails mit folgenden Bauarten auszufiltern (nicht an die Benutzer auszuliefern). Diese EMails sollen in einem eigenen Spam-Ordner gespeichert werden. Wobei dieser Ordner für jeden einzelnen Benutzer eingerichtet werden soll. Weiters sollen Sie für die Verwendung von procmail ein lokales mail-Directory anlegen, dass im Home Verzeichnis des Benutzers liegt. Dieses Verzeichnis soll mail heissen.
  • Header enthält Viagra, wobei statt dem i auch 1 und ! stehen darf, und beliebig viele a's bzw g's im Wort vorkommen dürfen. Das abschliessende a soll nur einmal vorkommen.
  • Body der email enthält einen Text der Bauart "to remove XXX address". Wobei XXX für einen String von beliebige Buchstaben oder Ziffern steht, der auch beliebig lang sein darf.
  • Der Sender ist badguyXXX@spammers.org wobei XXX für eine Zahl zwischen 1 und 4444 steht.
  • EMail ist groesser als 50000 Byte.

Unterlagen zu Procmail entnehmen Sie den Man-Pages zu procmail, procmailrc und procmailex. Ein gutes Tutorial für Procmail finden Sie bei Tutorial. Unterlagen zu den Regular Expressions, die in Procmail verwendet werden, entnehmen Sie bitte den bereits erwähnten man-pages, der man-page zu egrep oder dem Internet (Suche nach regular expression). Wenn Sie sich an das Tutorial halten, achten Sie darauf, dass das Directory in dem Ihre Mail liegen, nicht notwendigerweise übereinstimmt, mit dem was in dem Tutorial verwendet wird!
Konfigurieren Sie lokale Procmail-RegelnEinzelwertungKonfigurieren Sie eine lokale Procmail Regel, die es Ihnen erlaubt bei Einlangen einer EMail mit dem Subject "Automatische Auswertung" (ohne die Anführungszeichen), die EMail in einer Datei abzulegen, diese Datei mit dem Unix-Command sort zu sortieren und doppelte Einträge aus dieser Datei mit uniq zu entfernen. Hierzu müssen Sie die entsprechenden Commandos mit dem Unix-Pipe-Symbol aneinanderhängen. Die jeweils ersten, zweiten, dritten, ... Gruppenmitglieder (siehe Gruppeneinteilungsliste) sollen nach dem ersten, zweiten, dritten, ... Feld des Files sortieren. Sie können davon ausgehen, dass die Files die Sie sortieren in etwa so aussehen werden: sort-liste.txt. Sie brauchen nicht berücksichtigen, dass die Felder nach speziellen Datenformaten vorliegen und speziell sortiert werden müssen. Es genügt einfache alphabetische Sortierung.

Hinweise und Beispiele für sort bekommt man mittels man sort und info sort. Analog für uniq. Bevor Sie das Sortieren und Ausfiltern in Procmail implementieren, probieren Sie diese Beispiele vorher auf der Commandozeile mit Textdaten und dem direkten Aufruf von uniq bzw. sort aus. Das Entfernen des Headers von der EMailvon procmail, können Sie entweder über mit Hilfe von procmail direkt lösen, oder Sie verwenden einen Unix Stream Editor wie sed oder awk.