centos:mailserver:erweiterte_gewichtete_pruefungen_mittels_policyd-weight

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mailserver:erweiterte_gewichtete_pruefungen_mittels_policyd-weight [08.03.2011 13:28. ] – [automatisches Starten des Dienste beim Systemstart] djangocentos:mailserver:erweiterte_gewichtete_pruefungen_mittels_policyd-weight [02.03.2012 13:10. ] (aktuell) – [Ausnahmeregelungen für Absendeserver] Rechtschreibkorrektur django
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