[Postfixbuch-users] Postfix-Backup-Server

Jens Adam j_adam at web.de
Mo Jan 10 15:35:02 CET 2005


* Julian Golderer <glua at 4-ever-server.net>:
> ich habe das problem, dass einige viren und spammails zuerst den 
> backup-server kontaktieren und dann von dort auf meinem 
> haupt-mail-server weitergeleitet werden. wie kann ich postfix so 
> konfigurieren, dass es zuerst prüft, ob der haupt-mail-server überhaupt 
> erreichbar ist, bevor er mails annimmt?

Tach auch,

ich hab das nochmal rausgekramt, weil ich zufaellig ein paar Tage
vorher auch an sowas gedacht hatte:
Man hat zwei Mailserver mit unterschiedlicher Prioritaet, wobei der
Backup-MX nur als reiner Ersatz fungieren soll, z.B. wenn der Primary
wegen Hardwareschaden oder Wartungsarbeiten ausfaellt.

Ausserdem setzt jpberlin.de ja seit kurzem Greylisting ein, und da
Postgrey ueber den Policy Server Mechanismus funktioniert, habe ich mir
jetzt mal die Readme dazu angeschaut.

Rausgekommen ist dann jedenfalls das hier:
<snip_1>
#!/bin/sh
#
# probe_mx.sh:  Beispiel eines Postfix Policy Servers (siehe
#  `postconf -h readme_directory`/SMTPD_POLICY_README).
#
# Es wird die Verbindung zu einem 2. Mailserver getestet, und
# bei Erfolg die Mailannahme mit einem temporaeren Fehler (450)
# verweigert.
# Auf diese Weise kann man sicherstellen, dass ein Backup-MX
# nur bei Ausfall des Hauptservers Mails selber akzeptiert.
#

# Pfad zu Netcat
NC=/usr/bin/nc

# IP/Hostname des Haupt-MX
MX=172.17.2.172

# dessen Begruessungszeile
BANNER=$'220 mx0.example.net ESMTP Postfix\r'

# Verbindungsaufbau
RESPONSE="$(echo QUIT | $NC -i1 -w3 $MX 25 2>/dev/null | head -1)"

# Auswertung
if [ "$RESPONSE" = "$BANNER" ]; then
  echo -e 'action=DEFER_IF_PERMIT Please respect the MX priority.\n'
else
  echo -e 'action=WARN probe_mx failed, check MX connectivity!\n'
# oder einfach nur: echo -e 'action=DUNNO\n'
fi
</snip_1>

<snip_2> (irgendwo in die master.cf)
probe_mx unix - n n - - spawn user=nobody argv=/pfad/zu/probe_mx.sh
</snip_2>

<snip_3> (zwischen die smtpd_..._restrictions in main.cf)
check_policy_service unix:private/probe_mx
</snip_3>

Ich bin ziemlicher Anfaenger was Shellskripte angeht, also wer da in
Sachen Portabilitaet, Fehlerbehandlung etc. noch Kommentare loswerden
will -- immer her damit.

Funktioniert nach einigen Tests erstmal so, wie ich mir das erhofft
hatte, auch wenn ich irgendwie das Gefuehl nicht los werde, dass das
nicht weit genug gedacht war. ;)

Gruss,
Jens




Mehr Informationen über die Mailingliste Postfixbuch-users