Postfix: message_size_limit pro Domain

Postfix bietet per default nur eine globale Einstellung zur Limitierung der Größe von Nachrichten. Manchmal braucht man das aber etwas granularer. Um das zu realisieren kann man „Policy-Delegation“ nutzen, wodurch Postfix Entscheidungen an einen externen Policy-Server weiterreichen kann. Siehe auch.

Um die Anforderung „message_size_limit pro Domain“ umzusetzen braucht es nicht viel – ein paar Zeilen Perl reichen:

#!/usr/bin/env perl # # Ein simpler Policy-Server für Postfix, der message_size_limit pro Domain # implementiert. use strict; # Hier ist die Definition der Domains mit Limit (in Bytes) my %hashConfig = ( "marco-pc-debian.localdomain" => 75, "example.org" => 1024, ); my $action; my %attr = (); while( <STDIN> ) { if( /([^=]+)=(.*)\n/ ) { $attr{$1} = $2; } elsif( $_ eq "\n" ) { $action = "action=OK"; foreach my $domain (keys%hashConfig) { if( $attr{'recipient'} =~ /${domain}$/ ) { if( $attr{'size'} > $hashConfig{$domain} ) { $action = "action=534 message size for this domain is limited to ".$hashConfig{$domain}; } last; } } print $action."\n\n"; exit( 0 ); } } weiterlesen

Mailserver: Einrichten von Usern, virtuellen Usern, Domains etc.

Seit einiger Zeit betreibe ich auf meinem Server einen Mailserver. Einfach gesagt, im Hintergrund aber etwas komplizierter: ein Mailserver ist eine Kombination aus einem Mail-Transfer-Agent (MTA, bei mir Postfix), einem Mail-Delivery-Agent (MDA, bei mir Dovecot) und einem Mail-User-Agent (MUA, bei mir Roundcube). Die genaue Funktionsweise kann man bei bedarf googeln.

Standardmäßig hat ein Server eine Domain und User (Unix-User). Wenn alles richtig konfiguriert ist, können sich die „normalen“ Unix-User am MUA anmelden und sehen ihre Emails. In den seltensten Fällen ist das so einfach gewünscht. Denn als Serveradministrator hat man normalerweise ein oder mehrere Userkonten, möchte aber auch die Mails, die an root, postmaster, hostmaster und webmaster haben. Dafür eignen sich Aliase.

Aliase

Aliase sind im Prinzip Weiterleitungen, die den Postfix veranlassen entsprechende Mails nicht dem User zuzuordnen, an den sie gerichtet sind, sondern dem in der Alias-Datei definierten User. Die Aliasdatei ist /etc/aliases.

Aufgebaut ist die Datei sehr einfach:

root: marco
postmaster: marco
hostmaster: marco
webmaster: marco

Es werden also alle Mails an die User root, postmaster, hostmaster und webmaster an mich (marco) weitergeleitet. Hat man etwas an dieser Datei geändert muss noch folgenden Befehl ausführen, damit die Änderungen ihre Wirkung zeigen:

$ sudo newaliases

(als root entfällt selbstverfreilich das sudo)

Hat man mehrere Domains, die auf den Server zeigen, möchte man ziemlich sicher auch auf mehreren Domains Emails erhalten und schreiben können. Das ist – mit den normalen Unix-Usern – auch recht einfach möglich.

Mehrere gemeinsam genutzte Domains, Unix-User

In dieser Konstellation hält sich der Konfigurationsaufwand auch sehr in Grenzen. Es wird einfach in der Datei /etc/postfix/main.cf folgende Direktive geändert:

mydestination = $myhostname localhost.$mydomain example.com [weitere Domains]

Am besten einfach mit Leerzeichen getrennt die weiteren Domains hinten ranhängen.

Das funktioniert prima, solange man allein ist und es völlig Wurst ist, an welchen User welcher Domain jemand eine Email versendet, weil man sowieso alle selbst liest und beantwortet. Schwieriger ist es, wenn man mehrere User hat, die alle eine andere Domain zugeteilt bekommen sollen.

Mehrere getrennte Domains, Unix-User

Diese Konstellation wird im realen Umfeld nicht oft vorkommen; es ist aber dennoch eine Möglichkeit der Konfiguration. Hintergrund ist, nicht jeden User auf jeder Domain Mails empfangen zu lassen. Diese Lösung sieht so aus:

/etc/postfix/main.cf: virtual_alias_domains = example.org [weitere Domains] virtual_alias_maps = hash:/etc/postfix/virtual weiterlesen