Page 1 of 1

Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 00:11
by pennywize
Hallo,

auf meinem Etch Server läuft Postfix + Courier + policyd-weight. Letztgenanntes bereitet mir ein wenig Kopfzerbrechen. Es geht um diese Meldungen in der mail.log, offensichtlich werden alle Mails durchgelassen.

Code: Select all

postfix/policyd-weight[7861]: decided action=PREPEND X-policyd-weight: passed - too many local DNS-errors in list.dsbl.org lookups
Die momentane Konfiguration des Dienstes sieht so aus, hoffentlich kann mir einer von Euch erklären wo ein eventueller Fehler drin sein könnte.

Code: Select all

policyd-weight -d
policyd-weight version: 0.1.14 beta, CacheVer: 3
System: Linux xxx 2.6.23.9-grsec #1 SMP Tue Dec 11 00:20:59 CET 2007 i686 GNU/Linux
Perl version: 5.008008
Net::DNS version: 0.59
config: /etc/policyd-weight.conf

   $DEBUG        = 0;
   $REJECTMSG    = "550 Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs";
   $REJECTLEVEL  = 1;

   $DEFER_STRING = 'IN_SPAMCOP= BOGUS_MX=';
   $DEFER_ACTION = '450';
   $DEFER_LEVEL  = 5;
   $DNSERRMSG         = '450 No DNS entries for your MTA, HELO and Domain. Contact YOUR administrator';
   $dnsbl_checks_only = 0;
   $LOG_BAD_RBL_ONLY  = 1;
   @dnsbl_score = (
    'dynablock.njabl.org',    3.25,          0,        'DYN_NJABL',
    'sbl-xbl.spamhaus.org',   4.35,       -1.5,        'SBL_XBL_SPAMHAUS',
    'bl.spamcop.net',         3.75,       -1.5,        'SPAMCOP',
    'dnsbl.njabl.org',        4.25,       -1.5,        'BL_NJABL',
    'list.dsbl.org',          4.35,          0,        'DSBL_ORG',
    'ix.dnsbl.manitu.net',    4.35,          0,        'IX_MANITU',
);
   $MAXDNSBLHITS  = 4;
   $MAXDNSBLSCORE = 16;
   $MAXDNSBLMSG   = '550 Your MTA is listed in too many DNSBLs';
   @rhsbl_score = (
    'multi.surbl.org',             4,        0,        'SURBL',
    'rhsbl.ahbl.org',              1.8,      0,        'AHBL',
    'dsn.rfc-ignorant.org',        3.2,      0,        'DSN_RFCI',
    'postmaster.rfc-ignorant.org', 0.1,      0,        'PM_RFCI',
    'abuse.rfc-ignorant.org',      0.1,      0,        'ABUSE_RFCI'
);
   $LOCKPATH          = '/tmp/.policyd-weight/';
   $SPATH             = $LOCKPATH.'/polw.sock';
   $MAXIDLECACHE      = 60;
   $MAINTENANCE_LEVEL = 5;
   $CACHESIZE       = 320;
   $CACHEMAXSIZE    = 480;
   $CACHEREJECTMSG  = '550 temporarily blocked because of previous errors';
   $NTTL            = 1;
   $NTIME           = 30;
   $POSCACHESIZE    = 320;
   $POSCACHEMAXSIZE = 480;
   $POSCACHEMSG     = 'using cached result';
   $PTTL            = 60;
   $DNS_RETRIES     = 5;
   $DNS_RETRY_IVAL  = 5;
   $MAXDNSERR       = 5;
   $MAXDNSERRMSG    = 'passed - too many local DNS-errors';
   $PUDP            = 0;
   $USE_NET_DNS     = 0;
   $IPC_TIMEOUT     = 2;
   @client_ip_eq_helo_score          = (1.5,       -1.25 );
   @helo_score                       = (1.5,       -2    );
   @helo_from_mx_eq_ip_score         = (1.5,       -3.1  );
   @helo_numeric_score               = (1.5,        0    );
   @from_match_regex_verified_helo   = (1,         -2    );
   @from_match_regex_unverified_helo = (1.6,       -1.5  );
   @from_match_regex_failed_helo     = (2.5,        0    );
   @helo_seems_dialup                = (1,          0    );
   @failed_helo_seems_dialup         = (2,          0    );
   @helo_ip_in_client_subnet         = (0,         -1.2  );
   @helo_ip_in_cl16_subnet           = (0,         -0.41 );
   @client_seems_dialup_score        = (3.75,       0    );
   @from_multiparted                 = (1.09,       0    );
   @from_anon                        = (1.17,       0    );
   @bogus_mx_score                   = (2.1,        0    );
   @random_sender_score              = (0.25,       0    );
   @rhsbl_penalty_score              = (3.1,        0    );
   $VERBOSE = 0;
   $ADD_X_HEADER        = 1;
   $DEFAULT_RESPONSE    = 'DUNNO default';
   $syslog_socktype = 'unix';
   $syslog_facility = "mail";
   $syslog_options  = "pid";
   $syslog_priority = "info";
   $syslog_ident    = "postfix/policyd-weight";
   $USER            = "polw";
   $GROUP           = "";
   $MAX_PROC        = 50;
   $MIN_PROC        = 3;
   $TCP_PORT        = 12525;
   $BIND_ADDRESS    = '127.0.0.1';
   $SOMAXCONN       = 1024;
   $CHILDIDLE       = 240;
   $PIDFILE         = "/var/run/policyd-weight.pid";
debug: using port 12526
debug: USER:  polw
debug: GROUP: polw
debug: issuing user:  root
debug: issuing group: root
Vielen Dank

mfg
Jasmin

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 00:13
by aubergine
Hallo Jasmin,

ein Ansatz wöre dass deine lokalen DNS Caches ( /etc/resolv.conf ) teilweise nicht erreichbar - oder zu langsam sind.

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 00:51
by pennywize
Danke für den Hinweis, kann es mit einem Paketfilter zusammenhängen?
Die Einträge in der /etc/resolv.conf entsprechen denen meines Providers und kann mir nicht vorstellen, dass diese nicht erreichbar sind.
Habe per Iptables alle Ports bis auf die benötigten dicht gemacht, für policyd-weight ist testweise offen:

Code: Select all

...
$IPTABLES -A INPUT -p tcp --dport 12525 -j ACCEPT
mfg
Jasmin

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 01:18
by Roger Wilco
Es sind DNS Fehler. Wieso sollte Port 12525 dabei eine Rolle spielen? Aber das ist schon OK, sonst könntest du von deinem System aus keinerlei Hostnamen auflösen.
Was liefert denn `dig 2.0.0.127.list.dsbl.org` auf deinem System zurück?

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 01:22
by aubergine
p-w muss die Nameserver auf UDP Port 53 erreichen können.

Ferner baut er für jeden Child Prozess eine feste Verbindung zu diesen Servern auf einem lokalen Client Port auf.

Beispiel:

child1: eth0:39122 zu nameserver1:53 UDP
child2: eth0:55782 zu nameserver1:53 UDP
child3: eth0:55782 zu nameserver1:53 UDP


Diese Verbindungen müssen möglich sein, wobei die lokalen Ports zufällig sind.

Das öffnen von Port 12525 dürfte dir also nix bringen da p-w standardmäßig nur auf localhost lauscht und auch über diesen die Verbindungen mit Postfix handelt.

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 11:20
by pennywize
Roger Wilco wrote:Es sind DNS Fehler. ...
Was liefert denn `dig 2.0.0.127.list.dsbl.org` auf deinem System zurück?
Ja, es sieht so aus :(

Code: Select all

dig 2.0.0.127.list.dsbl.org
dig: parse of /etc/resolv.conf failed
hmmmm, woran könnte das jetzt liegen?

Code: Select all

hostname -i|-a|-f
liefert korrekte Ergebnisse mit Ausnahme vom NIS:

Code: Select all

hostname -y
(none)
Kann mir nicht vorstellen daß das wegen dem NIS so sein könnte. Einen lokalen DNS Server hab ich nicht drauf.

@Aubergine
Auch dir vielen Dank für die Erklärung

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 11:48
by sledge0303
Ich geh mal blind auf eine Wette ein... in deiner resolv.conf steht entweder 'search' gar nicht drin oder als falscher Wert...

zum Bleistift sollte das helfen:

Code: Select all

search localhost oder
search localhost.localdomain

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 12:16
by pennywize
sledge0303 wrote:Ich geh mal blind auf eine Wette ein... in deiner resolv.conf steht entweder 'search' gar nicht drin oder als falscher Wert...

zum Bleistift sollte das helfen:

Code: Select all

search localhost oder
search localhost.localdomain
:oops:
Ja, die Sache mit der Auflösung stimmt jetzt, aber in der mail.log noch immer das selbe:

Code: Select all

dig 2.0.0.127.list.dsbl.org

; <<>> DiG 9.3.4 <<>> 2.0.0.127.list.dsbl.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24963
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 9, ADDITIONAL: 9

;; QUESTION SECTION:
;2.0.0.127.list.dsbl.org.       IN      A

;; ANSWER SECTION:
2.0.0.127.list.dsbl.org. 718    IN      A       127.0.0.2

;; AUTHORITY SECTION:
dsbl.org.               42577   IN      NS      remote2.easydns.com.
dsbl.org.               42577   IN      NS      ns2.easydns.com.
dsbl.org.               42577   IN      NS      ns2.mydyndns.org.
dsbl.org.               42577   IN      NS      ns3.dnspark.com.
dsbl.org.               42577   IN      NS      ns3.mydyndns.org.
dsbl.org.               42577   IN      NS      ns4.dnspark.com.
dsbl.org.               42577   IN      NS      ns4.mydyndns.org.
dsbl.org.               42577   IN      NS      ns5.mydyndns.org.
dsbl.org.               42577   IN      NS      remote1.easydns.com.

;; ADDITIONAL SECTION:
ns2.easydns.com.        114399  IN      A       209.200.151.4
ns2.mydyndns.org.       17661   IN      A       204.13.249.82
ns3.dnspark.com.        17872   IN      A       66.98.161.195
ns3.mydyndns.org.       69356   IN      A       204.13.250.82
ns4.dnspark.com.        17874   IN      A       209.160.66.110
ns4.mydyndns.org.       4776    IN      A       213.155.150.206
ns5.mydyndns.org.       32545   IN      A       203.62.195.76
remote1.easydns.com.    114399  IN      A       209.200.131.4
remote2.easydns.com.    114399  IN      A       205.210.42.19

;; Query time: 2 msec
;; SERVER: 213.186.33.99#53(213.186.33.99)
;; WHEN: Sun Dec 23 12:08:07 2007
;; MSG SIZE  rcvd: 399
Schicke ich nun eine Mail an einen Mailaccount:

Code: Select all

postfix/policyd-weight[2705]: decided action=PREPEND X-policyd-weight: passed - too many local DNS-errors in list.dsbl.org lookups
Aufgelöst wird auch diese Adresse...

Code: Select all

dig list.dsbl.org

; <<>> DiG 9.3.4 <<>> list.dsbl.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25025
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;list.dsbl.org.                 IN      A

;; AUTHORITY SECTION:
list.dsbl.org.          5       IN      SOA     c.list.ns.dsbl.org. admin.dsbl.org. 1198408189 600 300 86400 5

;; Query time: 14 msec
;; SERVER: 213.186.33.99#53(213.186.33.99)
;; WHEN: Sun Dec 23 12:10:58 2007
;; MSG SIZE  rcvd: 83
Woran könnte es noch liegen?

So sieht meine /etc/resolv.conf aus

Code: Select all

cat /etc/resolv.conf
nameserver 127.0.0.1
nameserver 91.x.y.z    | meine externe IP
nameserver 213.186.33.99
search localhost.localdomain

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 12:35
by oxygen
Betreibst du auch selbst einen DNS Resolver auf deinem Server? Dann reicht auch 127.0.0.1, die externe IP macht wenig Sinn.
Ansonsten solltest du dort nur die DNS Server des Providers eintragen.

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 12:50
by flo
Du sagtest vorhin, Du hast keinen DNS auf der Kiste - was soll dann auf localhost/127.0.0.1 antworten? Auch den search über localhost.localdomain kannst Du Dir dann schenken, weil bei einem externen Resolver der localhost eine ganz andere Kiste ist.

In Zusammenhand mit policyd-weight oder Ähnlichem würde ich zumindest einen caching-bind darauf ansetzen - die externen Anfragen kosten zuviel Zeit.

Danach bitte Postfix und alle beteiligten Dienste anhalten und starten.

Re: Policyd-Weight Konfigurationsfehler? <solved>

Posted: 2007-12-23 14:37
by pennywize
Danke Euch allen für die Hilfe. Problem gelöst, hab es jetzt wie von Flo beschrieben umgesetzt:

Code: Select all

postfix/policyd-weight[2691]: weighted check:  NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .$DOMAIN.