Network Services VU 2.0, Lab Beispiel 3


SS 2006 - Johann Oberleitner - Letzte Änderung: Fri Jan 12 16:17:11 WEST 2007



Tasks

Unteraufgabe Beschreibung
Konfigurieren des Mail Exchange im DNS Ändern Sie Ihr Zonenfile dahingehend, dass der Host als Mail Exchange fungieren kann.
Konfigurieren des Postfix Mail Servers. Konfigurieren 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 ab 18.5. die Möglichkeit für Gruppen auf nwsB an den Account joe@nws00.lab eine Mail zu schicken, die im Subject den String autoreply enthält. Für die Gruppen auf nwsA die Möglichkeit an joe@nws80.lab. Möglicherweise müssen Sie Ihren lokalen nameserver dazu neustarten. Sie können auch Mails an andere Gruppen verschicken (aber nur zwischen Gruppe der jeweiligen physikalischen Rechner).

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/). Selbstverständlich sollte das Verschicken von emails auch auf Ihrer virtuellen Instanz alleine möglich s ein. Sie können alle Aufgaben auch ohne diesen Test durchführen (nur lokal von Ihrem virtuellen Rechner auf Ihren virtuellen Rechner), aber es ist dann nicht automatisch gewährleistet, dass alle Einstellungenn korrekt sind (wenn ein Autoreply kommt, schon).

Mail verschicken können Sie zum Beispiel mit dem Programm mutt (Funktionsweise: mutt recipient bzw. man- pages man mutt). Sie können auch das Programm mailx verwenden. Für das Lesen von emails müssen Sie bei beiden mit dem Parameter -f den Pfad des Spool-Verzeichnisses an geben (wo Ihre Mails abgelegt werden, siehe /var/spool/mail). Sie können (müssen aber nicht, dafür gibt es keine Bonuspunkte) postfix auch dahingehend konfigurieren, dass es ein anderes Verzeichnis verwendet, um die Mails abzulegen (zB verwendet mail ein Standardverzeichnis).

Achten Sie darauf, dass der Absender in der Datei /etc/mailname verwendet wird.

Achten Sie beim Konfigurieren von Postfix darauf, dass die Addressen, die in der email stehen, richtig sind. Dokus zu postfix, finden Sie im Internet (via Suchmaschine, "postfix"). Sie sollten aber keinerlei postfix Konfigurationsdateien ändern müssen ausser main.cf (befinden in /etc/postfix). Neustarten können Sie postfix wie auch schon beim nameserver mit dem für den Nameserver entsprechenden Commando in /etc/init.d .

Selbstverständlich können Sie zum Testen auch telnet verwenden. Das ist manchmal einfacher als die Verwendung von Nicht-Konfigurierten mail clients.

Hilfreich dürften die Log-Files sein, die Sie in /var/log/ finden. Für emails sind natürlich die mail.* Files interessant.

Konfigurieren von EMail-Eingänge und Aliases Sorgen (ausprobieren) Sie dafür, dass Sie Mails auf Ihrem Benutzeraccount 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 (alle Mitglieder einer Gruppe) gleichzeitig Mails zu verschicken (primitive Form von Mailinglist).

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

Wenn es bei Ihrem Kunden-Account nicht klar ist, welcher Teil der Vorname bzw. Nachname ist, nehmen Sie einen der beiden Teile, zB. bei Wein-Klub, wäre W.Klub als auch Wein.K gültig.

Hinweis: vergessen Sie nach dem Ändern des Aliases Files nicht postfix darüber in Kenntnis zu setzen (zB. mittels postalias)

Konfigurieren von Procmail-Regeln Konfigurieren Sie procmail und schreiben Sie systemweit gültige Regeln um EMails auszufiltern (nicht an die Benutzer auszuliefern). Legen Sie für die Verwendung von procmail ein lokales mail-Directory an, dass im Home Verzeichnis des Benutzers liegt. Dieses Verzeichnis soll mail heissen. Diese EMails sollen in einem eigenen Spam-Ordner namens spam gespeichert werden. Wobei dieser Ordner für jeden einzelnen Benutzer eingerichtet werden soll. Folgende EMail-Typen sollen gefiltert werden (und im Ordner spam ablegen):
  • 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 "click 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.

Andere EMails (die von den Regeln nicht gefunden werden) lassen Sie entweder im Spool Verzeichnis, oder legen sie in einem eigenen Ordner ab. Es dürfen diese mails aber nicht verloren gehen!

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 Spool-Directory in dem Ihre Mails liegen, nicht notwendigerweise übereinstimmt, mit dem was in dem Tutorial verwendet wird!

Es gibt für procmail ebenfalls ein log-File, dessen Ort sie mittels procmailrc konfigurieren können. Wenn Sie verbose=on setzen, wird dort ausführlichst protokolliert, was bei der Abarbeitung von procmail passiert.

Konfigurieren Sie lokale Procmail-Regeln Konfigurieren 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-Sy mbol 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 in speziellen Datenformaten vorliegen und speziell sortiert werden müssen. Es genügt einfache alphabetische Sortierung. Die Datei soll dann in einem File mit dem fixen Namen sortierte-liste.txt gespeichert werden, und zwar direkt in Ihrem home-Verzeichnis (zB. /home/nwsXYZ/sortierte-liste.txt). Die Liste soll jeweils überschrieben werden.

Legen Sie weiters eine Procmail-Regel an, die es Ihnen erlaubt mails von einem anderen Gruppenmitglied an Ihren Benutzeraccount in einen eigenen Ordner zu verschieben. Der Name des ordners soll bestehen aus dem String mailvon und dem Familiennamen des Benutzers entsprechen. Beispielsweise mailvonHuber

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 EMail von procmail, können Sie entweder über mit Hilfe von procmail direkt lösen, oder Sie verwenden sed oder awk.