Im Prinzip ist die Konfiguration von Postfix als Backup-MX sehr einfach. Sofern im DNS ein zweiter MX-Record eingetragen ist, hat man die Konfiguration mit ein paar Zeilen in der
main.cf erledigt. Man sollte darauf achten, dass keine Domain, für die man Backup-MX spielt, unter
mydestionation gelistet sind.
mydestination = $myhostname, localhost
Andernfalls würde der Backup-MX glauben, er wäre das endgültige Ziel der Reise und die Mails frecherweise nicht weiterleiten. Sofern man mehrere Domain hat, macht es Sinn, die Domain einzeln (pro Zeile eine Domain) in einer Textdatei aufzulisten, und diese in der
relay_domains Direktive zu übergeben. Ich "missbrauche" dafür meine
/etc/postfix/virtual_mailbox_domains.
relay_domains=/etc/postfix/virtual_mailbox_domains
Sofern man nun Empfänger einschränken möchte, kann man das über die
relay_recipient_maps machen, ich mache das aber nicht. Ich schränke das auf dem Primary-MX ein. Sonst müsste man Primary- und Backup-MX synchron halten. Dafür bin ich aber zu faul... Also bleibt der Eintrag leer.
relay_recipient_maps=
Abschließend muss man Postfix in der
transport mitteilen, wohin der Backup-MX die Mails leiten soll. Pro Domain ist das eine Zeile.
example.de relay:[primary-mx.example.de]
Bitte nicht vergessen mittels
backup-mx:/etc/postfix# postmap transport
die Datei ins Hash-Format zu übertragen. Danach ist die Konfiguration abgeschlossen. Man sollte aber, dem Spam wegen, auch auf dem Backup-MX nicht zu lax mit der Konfiguration umgehen. Greylisting hat sich dort bewährt, daher setze ich es auf Primary- und Backup-MX ein. Ein Abgleich der Datenbanken ist eigentlich nicht notwendig, die Whitelist kann man einfach übertragen. Testen natürlich nicht vergessen. Sofern die Änderungen im DNS sich herumgesprochen haben, reicht es, auf dem Primary-MX den MTA zu stoppen. Im Log sollte man dann Meldungen in dieser Art sehen:
backup-mx postfix/smtpd[7447]: 811A11B48004: client=smtp.domain.de[212.202.xxx.xxx]
backup-mx postfix/cleanup[7504]: 811A11B48004: message-id=<75D70173AA1@relay.domain.local>
backup-mx postfix/smtpd[7447]: disconnect from smtp.domain.de[212.202.xxx.xxx]
backup-mx postfix/qmgr[10316]: 811A11B48004: from=<patrick@domain.de>, size=8035, nrcpt=1 (queue active)
backup-mx postfix/smtp[7530]: connect to mail.example.de[78.46.xxx.xxx]:25: Connection refused
backup-mx postfix/smtp[7530]: 811A11B48004: to=<patrick@example.de>, relay=none, delay=0.55,
delays=0.49/0.01/0.05/0, dsn=4.4.1, status=deferred (connect to mail.example.de[78.46.xxx.xxx]:25: Connection refused)
Sobald der Primary-MX wieder da ist, werden die Mails nach kurzer Zeit zugestellt. Alternativ ein beherztes
postqueue -f. Damit hat man noch ein Stückchen mehr Sicherheit beim Serverausfall. :)