[Postfixbuch-users] amavisd-new und MySQL-Abfrage für lokale/zuständige Domains

Michael Köhler postfixbuch-users at makomi.de
So Aug 11 13:13:48 CEST 2013


Hallo Patrick,

vielen Dank für Deine Antwort.

Am 09.08.2013 um 21:22 schrieb Patrick Ben Koetter <p at sys4.de>:

>> ich möchte mein Mailserver-Setup (Postfix 2.9.3 + amavisd-new 2.6.4 + sa 3.3.1, Dovecot 2.1 mit gemeinsamer Datenbasis durch Postfixadmin (MySQL-DB) auf Debian Squeeze), welches nun inzwischen mehr als zwei Jahre alt ist und kaum angefaßt wurde, auf den Prüfstand stellen und natürlich optimieren. Ausserdem steht bald ein Serverwechsel zu Debian Wheezy an, da kann ein erneutes Beschäftigen mit dem Sysem kaum schaden :).
>> In dem Zusammenhang bin ich an dem Artikel von Patrick hängen geblieben: http://sys4.de/en/blog/2013/02/15/e-mail-content-policies-mit-amavis/ und versuche das gerade nachzuvollziehen. Natürlich frage ich bisher nicht die lokalen Domains ab und natürlich benutze ich nur eine einheitliche policy bank :). Das funktioniert zwar seit über zwei Jahren ganz gut, aber warum nicht optimieren?!
> 
> premature optimization is the root of all evil! Ich würde nochmal zwei Jahre
> warten... ;)

Würde ich auch gerne, aber leider zwingen mich frühere Designfehler zu diesem Schritt :(. Ich verschiebe das Problem schon erfolgreich seit einem Jahr :). Aber irgendwann muß man es leider angehen .

>> Bei mir stehen die Informationen in der postfixadmin-mysql-db drin. Ich habe also in die amavisd-new config
>> 
>>    @lookup_sql_dsn = ( ['DBI:mysql:database=postfixadmin;host=127.0.0.1;port=3306', 'poster', 'PASSWORD'], );
>>    $sql_select_policy = 'SELECT "Y" as local, 1 as id FROM domain WHERE CONCAT("@",domain) IN (%k)';
>>    $sql_select_white_black_list = undef;
> 
> Genau. Das und LDAP werte amavisd auch aus, wenn Du es konfiguriert hast.
> Dabei geht es davon aus, dass ein Recipient/eine Domain 'local' ist, wenn die
> Suche einen Treffer beim lookup im RDBMS/LDAP ergibt:
> 
>        A special shorthand is provided when SQL lookups are used: when a match
>        for recipient address (or domain) is found in SQL tables (regardless of
>        field values), the recipient is considered local
> 
>> eingefügt. Ich bin mir aber unsicher, was ich nun in
>> 
>>    @local_domains_maps = ( [".$mydomain"]);
>> 
>> und
>>    @local_domains_acl = ( "." );
>> 
>> eintragen soll. Wie weiß amavis, dass es für die Abfragen in die MySQL-DB schauen soll? Und wie sollte dann ein Logfile-Eintrag aussehen, wenn amavis feststellt, dass ein eintreffende EMail für oder von einer internen Domain ist oder anders gefragt: Wie kriege ich raus, obs funktioniert?
> 
> Sobald Du SQL aktivierst, wird amavis automatisch seine Lookups auf SQL mit
> erweitern.

D.h. die Einträge

        @local_domains_maps = ( [".$mydomain"]);
> 
und
	@local_domains_acl = ( "." );

sind so richtig und werden automatisch mit der SQL-Abfrage erweitert oder können/müssen diese Einträge weg?

> Und rausfinden, ob es funktioniert? IIRC werden SQL-Abfragen ab loglevel 2 mit
> ausgegeben. Alternativ: Domain in SQL eintragen, Mail an Domain senden,
> nachsehen ob z.B. die Spamresults eingetragen wurden (<- setzt passende config voraus).


SQL-Abfragen werden ab LogLevel 3 angezeigt, aber nicht die Ergebnisse der Abfrage.

Die Spamresults wurden komischerweise auch vorher schon eingetragen, also so:

X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level: 
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=6.31 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_FRT_CONTACT=0.01, URIBL_BLOCKED=0.001] autolearn=ham

Dafür wird der Spam-Report nicht in den Header eingetragen :(.

	$sa_spam_report_header = 1; 

bzw.

	$allowed_added_header_fields{lc('X-Spam-Report')} = 1;

(welcher Eintrag ist nun eigentlich bei amavisd-new 2.6.4 richtig?) bringen beide keine Einträge.

Viele Grüße,
Michael


Mehr Informationen über die Mailingliste Postfixbuch-users