Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
centos:mailserver:erweiterte_gewichtete_pruefungen_mittels_policyd-weight [02.03.2012 06:42. ]
django [erfolgreiche Bewertung einer Anlieferung]
centos:mailserver:erweiterte_gewichtete_pruefungen_mittels_policyd-weight [02.03.2012 13:10. ] (aktuell)
django [Ausnahmeregelungen für Absendeserver] Rechtschreibkorrektur
Zeile 1: Zeile 1:
 +====== erweiterte gewichtete Prüfungen mittels policyd-weight ======
 +Da wir mit [[centos:​mailserver:​greylisting_mit_postgrey]] nur die Botnetze erschlagen, setzen wir noch einen weiteren Hebel an, um uns vor ungeliebten Botschaften zu schützen.
 +\\
 +Dazu nutzen wir den Policy-Dämon **policyd-weight**.
  
 +===== Installation =====
 +Da es noch kein vorgefertigtes RPM in den einschlägigen RPM-Quellen gibt, welchen wir vertrauen, installieren wir den daemon selbst per Hand.
 +\\
 +Wir holen uns also das besagte Perl-Script in der aktuellen Version und speichern es unter **/​usr/​local/​sbin** und passen die Dateirechte entsprechend an:
 +<​code>​wget http://​www.policyd-weight.org/​policyd-weight
 +chmod u+rx policyd-weight
 +mv policyd-weight /​usr/​local/​sbin/</​code>​
 +Anschließend ändern wir noch wie auf der [[http://​policyd-weight.org/​|policyd-weight homepage]] angegeben die Variable **$LOCKPATH** ab.
 +<​code>​vim /​usr/​local/​sbin/​policyd-weight
 +
 +...
 +## cache stuff
 +my $LOCKPATH ​         = '/​var/​run/​policyd-weight/';​ # must be a directory (add
 +                                                    # trailing slash)
 +
 +my $SPATH ​            = $LOCKPATH.'/​polw.sock'; ​    # socket path for the cache
 +                                                    # daemon. ​
 +...
 +</​code>​
 +
 +Für den Betrieb benötigen wir noch einen User **polw**, den wir mit <​code>​useradd -r -s /sbin/false polw
 +groupadd -r polw</​code>​ anlegen.
 +\\
 +Den ersten Programmstart nehmen wir nun mittels <​code>​policyd-weight start</​code>​ vor.
 +Im Maillog wird uns der Start entsprechend quittiert:
 +<​code>​Oct 13 22:41:48 nss postfix/​policyd-weight[23123]:​ policyd-weight 0.1.14 beta-17 started and daemonized. conf:​default settings; GID:105 105 EGID:105 105 UID:102 EUID:102; taint mode: 0 </​code>​
 +In der Prozessliste finden wir zwei Prozesse, die gestartet wurden:
 +<​code>#​ ps auxw | grep policyd-weight
 +polw      3234  0.0  0.6  12756  1652 ?        Ss   ​Oct06 ​  0:00 policyd-weight (cache)
 +polw     ​23123 ​ 0.0  3.0  12616  7908 ?        Ss   ​22:​41 ​  0:00 policyd-weight (master)</​code>​
 +Mittels **lsof** können wir nun noch überprüfen,​ welcher Port von policyd-weight verwendet wird.
 +<​code>#​ lsof -i :12525
 +COMMAND ​    PID USER   ​FD ​  ​TYPE ​ DEVICE SIZE NODE NAME
 +policyd-w 23123 polw    4u  IPv4 3539466 ​      TCP localhost.localdomain:​12525 (LISTEN)</​code>​
 +
 +===== policyd-weight konfigurieren =====
 +Wie auch bei **postgrey** konfigurieren wir für **policyd-weight** postfix.
 +\\
 +Wir fügen also in unsere **/​etc/​postfix/​main.cf** folgende Option nach **# RBL überprüfen (Kapitel 10.11 Realtime Blackhole Lists)
 +** mit ein:
 +<​code>#​ Policyd-Weight ​                                       (Kapitel 9.3 policyd-weigt)
 +        check_client_access hash:/​etc/​postfix/​policyd_weight_client_whitelist
 +        check_policy_service inet:​127.0.0.1:​12525,</​code>​
 +===== automatisches Starten des Dienste beim Systemstart ​ =====
 +Da bei dem Archiv kein startup-script mit dabei ist, legen wir dies kurzer Hand selbst an:
 +  # vim /​etc/​init.d/​policyd-weight
 +<code bash policyd-weight>​
 +#!/bin/sh
 +#
 +# chkconfig: 2345 79 31
 +# description:​ Postfix Policy Weight Server
 +#
 +# processname:​ policyd-weight
 +#
 +
 +# Source function library.
 +. /​etc/​rc.d/​init.d/​functions
 +
 +# Source networking configuration.
 +. /​etc/​sysconfig/​network
 +
 +# Check that networking is up.
 +[ ${NETWORKING} = "​no"​ ] && exit 0
 +
 +prog=policyd-weight
 +policydweight=/​usr/​local/​sbin/​$prog
 +
 +# Source an auxiliary options file if we have one, and pick up OPTIONS, ​                                                                                                    
 +if [ -r /​etc/​sysconfig/​$prog ]; then
 +    . /​etc/​sysconfig/​$prog
 +fi
 +
 +start() {
 +    echo -n $"​Starting $prog: "
 +    $policydweight start
 +    RETVAL=$?
 +    echo
 +    [ $RETVAL -eq 0 ] && touch /​var/​lock/​subsys/​$prog
 +}
 +stop() {
 +    echo -n $"​Stopping $prog: "
 +    $policydweight stop
 +    RETVAL=$?
 +    echo
 +    [ $RETVAL -eq 0 ] && rm -f /​var/​lock/​subsys/​$prog
 +}
 +
 +restart() {
 +    stop
 +    start
 +}
 +
 +reload() {
 +    echo -n $"​Reloading $prog: "
 +    $policydweight reload
 +    RETVAL=$?
 +    echo
 +}
 + 
 +# See how we were called.
 +case "​$1"​ in
 +    start)
 +        start
 +    ;;
 +    stop)
 +        stop
 +    ;;
 +    restart)
 +        restart
 +    ;;
 +    reload)
 +        reload
 +    ;;
 +    *)
 +        echo $"​Usage:​ $0 {start|stop|restart|reload|}"​
 +        exit 1
 +esac
 +
 +exit $RETVAL
 +</​code>​
 +===== automatisches Starten des Dienste beim Systemstart ​ =====
 +Damit der postgrey-Daemon automatisch bei jedem Systemstart startet, denn ohne laufenden **policyd-weight-daemon** verweigert nun unser **postfix** die Annahme der Nachrichten,​ kann die Einrichtung des Start-Scripte über folgenden Befehle erreicht werden:
 +
 +<​code>#​ chkconfig policyd-weight on</​code>​
 +
 +Die Überprüfungung ob die beiden Dienste (Daemons) postfix und postgrey wirklich bei jedem Systemstart automatisch mit gestartet werden, kann durch folgenden Befehle erreicht werden:
 +
 +<​code>#​ chkconfig --list | grep post*
 +postfix ​        ​0:​Aus ​  ​1:​Aus ​  ​2:​Ein ​  ​3:​Ein ​  ​4:​Ein ​  ​5:​Ein ​  6:Aus
 +postgrey ​       0:Aus   ​1:​Aus ​  ​2:​Ein ​  ​3:​Ein ​  ​4:​Ein ​  ​5:​Ein ​  6:Aus
 +
 +# chkconfig --list | grep poli*
 +policyd-weight ​ 0:Aus   ​1:​Aus ​  ​2:​Ein ​  ​3:​Ein ​  ​4:​Ein ​  ​5:​Ein ​  ​6:​Aus</​code>​
 +
 +Wichtig sind jeweils die Schalter **on** bei den Runleveln - **2 3 4 5**. 
 +===== Ausnahmeregelungen für Absendeserver ​ =====
 +Leider kommt es auch vor, dass vor allem große Provider hinter ihren MX ein cluster betreiben, die mit wechselnden IP-Adrressen aus einem Pool aufschlagen. Damit können unter Umständen Probleme bei der Bewertung entstehen. Diese schalten wir dann bei Bedarf in der **policyd_weight_client_whitelist** frei.
 +<​code>​vim /​etc/​postfix/​policyd_weight_client_whitelist
 +
 +# 2008-10-08: 1und1.com (big pool, inserted by Django)
 +kundenserver.de ​        ​OK</​code>​
 +Nach dem Verändern der Textdatei müssen wir noch die Informationen in das binäre Datenbankformat überführen. Hierzu nutzen wir **postmap**:​
 +<​code>​postmap /​etc/​postfix/​policyd_weight_client_whitelist</​code>​
 +
 +===== erfolgreiche Bewertung einer Anlieferung ​ =====
 +Am nachfolgenden Beispiel sehen wir, den erfolgreichen Mailversand nach der Bewertung durch policyd-weight.
 +<​code>​Oct 14 22:31:30 nss postfix/​smtpd[14044]:​ connect from www.linuxtv.org[212.227.166.180]
 +Oct 14 22:31:34 nss postfix/​policyd-weight[2715]:​ decided action=PREPEND X-policyd-weight:​ using cached result; rate: -7.6; <​client=212.227.166.180>​ <​helo=www.linuxtv.org>​ <​from=vdr-bounces+michl=naush.org@linuxtv.org>​ <​to=grossermeister@naush.org>;​ delay: 1s 
 +Oct 14 22:31:34 nss postgrey[21879]:​ action=pass,​ reason=triplet found, client_name=www.linuxtv.org,​ client_address=212.227.166.180,​ sender=vdr-bounces+michl=naush.org@linuxtv.org,​ recipient=michl@naush.org ​
 +Oct 14 22:31:34 nss postgrey[21879]:​ cleaning up old logs... ​
 +Oct 14 22:31:34 nss postfix/​smtpd[14044]:​ 31F5E76022D:​ client=www.linuxtv.org[212.227.166.180]
 +Oct 14 22:31:34 nss postfix/​cleanup[14048]:​ 31F5E76022D:​ message-id=<​Pine.LNX.4.64.0810142329220.5339@shogun.pilppa.org>​
 +Oct 14 22:31:34 nss postfix/​qmgr[1304]:​ 31F5E76022D:​ from=<​vdr-bounces+michl=naush.org@linuxtv.org>,​ size=3523, nrcpt=1 (queue active)
 +Oct 14 22:31:34 nss postfix/​smtpd[14044]:​ disconnect from www.linuxtv.org[212.227.166.180]</​code>​
  • centos/mailserver/erweiterte_gewichtete_pruefungen_mittels_policyd-weight.txt
  • Zuletzt geändert: 02.03.2012 13:10.
  • von django