[Postfixbuch-users] warning: connect to proxy filter 192.168.20.224:10024: Connection refused

robert zahlenmaler at t-online.de
So Nov 9 11:25:23 CET 2014


Hallo Liste,

nachdem ich noch ein Postfixbuch für 99€ bei Amazon ergattern konnte und 
lesen selbigem,
bin ich Felsenfest davon überzeugt das smtp_proxy_filter die option das 
richtige ist.

Der Hinweis auf den Ressourcenhunger so eines solchen Setups hat mich zu 
folgender
"Gebilde" gebracht.

MX-Server -> Loadbalancer(keepalive)-> Mailfilter(mit amavisd-new 
spamassisn)-> Rückgabe an MX-Server -> Maildrop
(Das verhalten ist mit oder ohne Loadbalancer identisch)

(Die relevanten configsachen füge ich unten an, es sind nicht die 
kompletten Configs weil meine voll mit Komentaren sind da mit ich sofort 
sehe welcher Parameter was macht.
Ich bin leider noch kein Profi, das ich mir das alles merken kann. )

Zu testzwecken habe ich eine 1MB file erstellt und einfach eine schleife 
die 100 Mails generiert und an MX1 liefert.
Nach dem erfolgreichem test habe ich das ganze mit 10MB Attachments 
wiederholt.

Ich habe mir das ganze auf dem Filter mit top und amavisd-nanny 
angeschaut und konnte sehen das die Mails gefiltert wurden
und auch in amavisd-nanny ihre zeit verbraucht haben und dann zugestellt 
wurden.

Das ganze hat mit 10 MB files ca. 2 Minuten gedauert die load am 
Mailfilter war etwas über 1.
Die Load am MX server war bei ca 4-5

Der MX server besteht aus 2 Cores und 1 GB ram
Der Mailfilter aus 4 Kernen und 3 GB Ram wovon 512 MB als Ramdisk 
angelegt sind.
Ich habe ihm 40 amavis prozesse gegönnt, weil es eine virtuelle Maschine 
ist.

Nach oben genannten Tests war in der Meinung das dieses System 
performant genug ist um ausreichend Mails zu verarbeiten.

Deshalb habe ich mich entschlossen das ganze life zu testen.
Leider erhlate ich folgende Fehlermeldungen:
postfix/smtpd[19717]: warning: connect to proxy filter 
192.168.20.224:10024: Connection refused
Dadurch wir die obligatorische

[...]
Out: 354 End data with <CR><LF>.<CR><LF>
Out: 451 4.3.0 Error: queue file write error
In:  QUIT
Out: 221 2.0.0 Bye
Für mich als postmaster generiert
und der Einliefernde MTA abgewisen mit der 451 und probiert es dann nach 
kurzer zeit wieder und alles ist okay.

Ich habe mir dann einige der Mails die bei der Zustellung diesen Fehler 
generiert haben angeschaut und diese sind im regelfall sehr klein.
Auch kann ich in Munin keine anzeichen sehen das das hier irgendwelche 
loadspitzen erreicht werden und ich habe mir per Schleife
1 h die ausgabe von amavis-nanny in files schreiben lassen und konnte 
keine stelle erwischen an dem alle amavis prozesse beschäftigt sind.

Ich habe auch schon gesucht aber kann nicht wirklich eine Konkrete 
Antwort zu diesem Problem finden.
Es wird unter anderem empfohlen die proxy timeout von default 100s 
hochzuschrauben.
Aber mir will nicht wirklich einleuchten was dieses bringen soll.

Darum würde ich mich freuen wenn mir jemand Erklären kann woher dieses 
Problem kommt, wie ich selber hätte das Problem besser analysieren können.
Gegen eine Lösung bin ich nicht abgeneigt würde mich aber auch über 
hinweise freuen die mich selber zum "AHH ja klar, warum bin ich nich 
darauf gekommen" führen.

So hier die Configs:

master.cf
#smtp      inet  n       -       -       -       -       smtpd
smtp      inet  n       -       n       -       1       postscreen
smtpd     pass  -       -       n       -       -       smtpd
      -o smtpd_proxy_options=speed_adjust
      -o smtpd_client_connection_count_limit=10
      -o smtpd_proxy_filter=192.168.20.224:10024
dnsblog   unix  -       -       -       -       0       dnsblog
tlsproxy  unix  -       -       -       -       0       tlsproxy
(Der rest ist default)

Die User conf von amavis

$notify_method  = 'smtp:[192.168.20.14]:10025';
$forward_method = 'smtp:[192.168.20.14]:10025';

@inet_acl = qw( 127.0.0.1 192.168.20.224 192.168.20.1 192.168.20.14 );
$inet_socket_bind = undef;

@bypass_virus_checks_maps = (
      \%bypass_virus_checks, \@bypass_virus_checks_acl, 
\$bypass_virus_checks_re);

@bypass_spam_checks_maps = (
      \%bypass_spam_checks, \@bypass_spam_checks_acl, 
\$bypass_spam_checks_re);

@bypass_header_checks_maps = ['.'];

@lookup_sql_dsn =
   ( ['DBI:mysql:database=amavisdblackwhitelist;host=localhost', 
'<psst>', '<naklaro>'] );

$sql_select_policy = 'SELECT *,users.id FROM users,policy WHERE 
(users.policy_id=policy.id) AND (users.email IN (%k))';
$sql_select_white_black_list = 'SELECT wb FROM wblist,mailaddr WHERE 
(wblist.rid=?) AND (wblist.sid=mailaddr.id) AND (mailaddr.email IN (%k))';


@local_domains_maps = ['.'];
$max_servers = 40;
#$sa_debug = 5;
#$log_level = 3;
$spam_quarantine_to  = undef;

#Default spam and virus settings

$sa_spam_subject_tag = '***SPAM*** ';
$sa_tag_level_deflt  = 2.0;  # Spam header einfügen wenn mehr als 2.0 
Punkte vergeben sind
$sa_tag2_level_deflt = 6.20; # Subject der email manipulieren
$sa_kill_level_deflt = 15; # Wenn 15 erreicht sind mach was in final steht
$final_spam_destiny  = D_REJECT;
$final_virus_destiny  = D_REJECT;

$subject_tag_maps_by_ccat{+CC_VIRUS} = [ '*** INFECTED *** ' ];
$subject_tag_maps_by_ccat{+CC_BANNED} = [ '*** BANNED *** ' ];
$defang_virus  = 'attach';
$defang_banned = 'attach';
$report_format = 'plain';

#Wir wollen nichts aufheben was wir weder ablehnen oder zustellen
$virus_quarantine_method = undef;
$spam_quarantine_method = undef;
$virus_admin = undef;
$banned_admin = undef;

$smtp_reason_by_ccat{+CC_VIRUS} = 'id=%n - INFECTED: %V This message was 
rejected because it contained a virus.';
$smtp_reason_by_ccat{+CC_SPAM} = 'id=%n - REJECT: This mail contains 
spam or sender is blocked by recipient.',


Gruß
Robert



Mehr Informationen über die Mailingliste Postfixbuch-users