Die Spamflut überschwemmte den internen Mailverkehr nicht, wenn er seine eigenen Kanäle hätte. Die teuren Virenscanner-Lizenzen müssten eigentlich nicht für solche Anwender beschafft werden, die ohnehin nur interne Mails verfassen und empfangen. Zwei Überlegungen, die mögliche Gründe liefern könnten, um die Benutzer des Mailservers in zwei Gruppen zu teilen, von denen die einen nur interne Mails senden und empfangen sollen, während die anderen auch mit dem Rest der Welt kommunizieren dürfen. Der verbreitete Mailserver Postfix erlaubt durch sein System der so genannten Restriction Classes eine solche trickreiche Konfiguration.
Je nach Gesprächsverlauf
Restriktionen sind ein mächtiges Werkzeug, mit dem Postfix Entscheidungen in Abhängigkeit von Verlauf und Inhalt des SMTP-Dialogs treffen und Benutzer oder Gruppen von Benutzern entsprechend behandeln kann. Es gibt mehrere vordefinierte Restriktionen, etwa »smtpd_sender_restrictions« oder »smtpd_end_of_data_restrictions«. Daneben ist mit den Restriction Classes eine Art Behälter für eigene Regelsätze verfügbar.
Das hier vorgestellte Anwendungsbeispiel, das den Einsatz von Restriction Classes demonstriert, verwendet als Hauptkomponenten den Postfix-SMTP-Server in der Version 2.1.5 und den Cyrus-IMAP-Server 2.1.18. Die Userdaten nimmt eine MySQL-Datenbank auf. Die Administration erfolgt über Webcyradmin, eine PHP-Skriptsammlung, und PHP-MyAdmin, das es im Fehlerfall erlaubt, schnell die Inhalte der einzelnen MySQL-Tabellen zu überprüfen. Zum Betrieb des Mailsystems sind jedoch beide nicht erforderlich. Alle Komponenten installiert und konfiguriert der Admin wie unter [1] oder [3] beschrieben.
Datenbank vorbereiten
Nachdem die Skripte »insertuser_mysql.sql« und »create_mysql.sql« vom Webcyradmin die Grundstruktur der Datenbank generiert haben, gilt es, die Tabelle »accountuser« um das Feld »local-only« vom Typ »enum« mit den möglichen Werten »localonly« und »OK« zu erweitern. Dies kann entweder über PHP-Myadmin oder über den MySQL-Kommandozeilen-Client erfolgen.
Die zweite, ebenfalls noch zu erweiternde Tabelle ist »domain«. Hier wird lediglich eine Status-Spalte für Postfix ergänzt, die der Mailserver benötigt, wenn er bei einer Abfrage auf eine Heimatdomain trifft:
alter table accountuser add localonly enum('localonly','OK') NOT NULL default'localonly';
alter table domain add column status varchar(2) default 'OK';
« Zurück
1
2
3
4
Weiter »