PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : exim4 + vexim2 + dspam on debian sarge



YoZ
13.03.06, 13:53
Hallo Leute ich bin grad dabei mein Mailsetup zu vervollständigen, nachdem ich von lokale user auf virtual users umgestellt habe mit vexim2.

Ich hatte vorher dspam laufen und gefällt mir auch ganz gut. Nachdem ich exim4 neu konfiguriert habe um eben virtuelle user zu erlauben habe ich auch dspam wieder integriert aber so wie es aussieht scannt es nur die Mails von lokalen und keine virtuellen user.
Mein code in der exim4.conf für dspam sieht so aus:

in der ROUTERS CONFIGURATION habe ich folgendes:



dspam_router:
no_verify
check_local_user
# When to scan a message :
# - it isn't already flagged as spam from Spamassassin
# - it isn't already flagged as spam from DSPAM
# - it isn't already scanned
# - it isn't local
# - it isn't from one internal domain user to another
# - it is less than 512k in size
condition = "${if and { \
{!def:h_X-Spam-Flag:} \
{!def:h_X-FILTER-DSPAM:} \
# {!eq {$received_protocol}{local}} \
{ <= {$message_size}{512k}} \
}\
{1}{0}}"
headers_add = "X-FILTER-DSPAM: by $primary_hostname on $tod_full"
driver = accept
transport = dspam_spamcheck
# Which users to run dspam for.
#local_parts = /usr/local/etc/exim/dspam-testers
dspam_addspam_router:
driver = accept
local_part_prefix = spam-
transport = dspam_addspam
dspam_falsepositive_router:
driver = accept
local_part_prefix = nospam-
transport = dspam_falsepositive


und in der TRANSPORTS CONFIGURATION folgendes:


dspam_spamcheck:
driver = pipe
command = "/usr/local/bin/dspam --deliver=innocent --user \
${lc:$local_part} -f '$sender_address' -bm %u"
home_directory = "/tmp"
current_directory = "/tmp"
user = Debian-exim
group = mail
log_output = true
return_fail_output = true
return_path_add = false
message_prefix =
message_suffix =
dspam_addspam:
driver = pipe
command = "/usr/local/bin/dspam --class=spam --source=error --user \
${lc:$local_part} -f '$sender_address' -bm %u"
home_directory = "/tmp"
current_directory = "/tmp"
user = Debian-exim
group = mail
log_output = true
return_fail_output = true
return_path_add = false
message_prefix =
message_suffix =
dspam_falsepositive:
driver = pipe
command = "/usr/local/bin/dspam --class=innocent --source=error \
--deliver=innocent,spam --user ${lc:$local_part}\
-f '$sender_address' -bm %u"
home_directory = "/tmp"
current_directory = "/tmp"
user = Debian-exim
group = mail
log_output = true
return_fail_output = true
return_path_add = false
message_prefix =
message_suffix =


Wie gesagt.. damit scannt es nur mails für user die auch systemuser sind andere aber nicht! Hat jemand eine idee was ich falsch gemacht habe oder was eventuell noch fällt?

MfG, Sabin

YoZ
13.03.06, 19:23
hat jemand eine idee hier?

Roger Wilco
13.03.06, 20:31
exim.conf

## Router
dspam_router:
no_verify
# When to scan a message :
# - it isn't already flagged as spam from Spamassassin
# - it isn't already flagged as spam from DSPAM
# - it isn't already scanned
# - it isn't local
# - it isn't from one internal domain user to another
condition = "${if and { \
{!def:h_X-Spam-Flag:} \
# {!def:h_X-Spam-Score:} \
{!def:h_X-DSPAM-Check:} \
{!eq {$received_protocol}{spam-scanned}} \
{!eq {$received_protocol}{local}} \
{!eq {$sender_address_domain}{$domain}} } {1}{0}}"
headers_add = "X-DSPAM-Check: by $primary_hostname on $tod_full"
driver = accept
transport = dspam_spamcheck

## Transport
dspam_spamcheck:
driver = pipe
command = "/usr/bin/dspam --deliver=innocent,spam --user ${local_part}@${domain} -- %u"
home_directory = "/tmp"
current_directory = "/tmp"
user = mail
group = mail
log_output = true
return_fail_output = true
return_path_add = false
message_prefix =
message_suffix =


dspam.conf

TrustedDeliveryAgent "/usr/sbin/exim -oMr spam-scanned" # Exim

YoZ
13.03.06, 20:44
ok das habe ich gemacht.. aber für virtuelle user noch immer kein dspam-scann:


2006-03-13 21:41:55 1FItrX-00051h-8C <= yoz@domain.org H=router.domain.org ([192.168.0.3]) [192.168.0.2] P=esmtp S=503 id=4415D923.2000206@domain.org T="hi"
2006-03-13 21:41:55 1FItrX-00051h-8C => /var/opt/vmail/domain.org/ioana/Maildir <ioana@domain.org> R=virtual_domains T=virtual_delivery
2006-03-13 21:41:55 1FItrX-00051h-8C Completed


hmm weiss auch nicht weiter!

Roger Wilco
14.03.06, 18:23
Zeig uns die relevanten Teile deiner Konfiguration. Hast du mal eine Fake-Session mit `exim -bh 127.0.0.1` durchgespielt und gesehen, welche Router abgeklappert werden? Treffen vielleicht die Bedingungen in condition bei dir nicht zu?

YoZ
14.03.06, 18:38
also hier die ausgabe von exim -bh 127.0.0.1:


debx:/home/yoz# exim4 -bh 127.0.0.1

**** SMTP testing session as if from host 127.0.0.1
**** but without any ident (RFC 1413) callback.
**** This is not for real!

>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? yes (matched "*")
>>> looking up host name for 127.0.0.1
>>> IP address lookup yielded localhost
>>> gethostbyname2 looked up these IP addresses:
>>> name=localhost address=::1
>>> name=localhost address=127.0.0.1
>>> checking addresses for localhost
>>> ::1
>>> 127.0.0.1 OK
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
220 debx.debians.org ESMTP Exim 4.50 Tue, 14 Mar 2006 19:27:16 +0100
LOG: SMTP command timeout on connection from localhost [127.0.0.1]
421 debx.debians.org: SMTP command timeout - closing connection
debx:/home/yoz#

und hier meine exim4.config:

http://pastebin.com/601775

könnte es sein, dass dspam mit spamassassin nicht ganz will?

grüße, yoz

Roger Wilco
15.03.06, 15:42
also hier die ausgabe von exim -bh 127.0.0.1:
Spiele damit eine SMTP-Session durch, sonst bringt es nichts...


und hier meine exim4.config:

http://pastebin.com/601775
Bei mir wird unter der URL keine exim.conf angezeigt...


könnte es sein, dass dspam mit spamassassin nicht ganz will?
Wie du an der condition von meinem dspam_router siehst, wird die Überprüfung mit dspam nur durchgeführt, wenn die Header X-Spam-Flag und X-DSPAM-Check nicht existieren.

YoZ
15.03.06, 16:00
hier nun die exim4.conf -> http://yoz.kfwebs.com/data/exim4.conf

MfG, yoz

Roger Wilco
15.03.06, 16:09
Du hast immer noch check_local_user in deinem dspam-Router. Die Benutzer gibt es bei vexim aber nur in der SQL-Datenbank. Dir fehlt außerdem die Bedingung
{!eq {$received_protocol}{spam-scanned}}
Das führt später zu einer Endlosschleife, weil der dspam-Router immer durchlaufen wird (siehe meinen 1. Beitrag). In deinem dspam-Transport rufst du dspam nur mit dem Localpart als Benutzernamen auf. Das gibt Konflikte mit Benutzern, die gleich heißen, aber in verschiedenen Domains angelegt wurden.

YoZ
15.03.06, 16:33
ich habe jetzt deine version genommen.. den link oben mit der config habe ich aktualisiert.

aber noch immer nur lokale checks:


2006-03-15 17:27:33 1FJYqT-0003ol-Ec <= mail@debx U=mail P=local S=2102 id=44184082.5020206@edu.fh-kaernten.ac.at T="hi"
2006-03-15 17:27:33 1FJYqT-0003od-2d => yoz <yoz@domain.org> R=dspam_router T=dspam_spamcheck
2006-03-15 17:27:33 1FJYqT-0003od-2d Completed
2006-03-15 17:27:33 1FJYqT-0003ol-Ec => /var/opt/vmail/domain.org/yoz/Maildir <yoz@domain.org> R=virtual_domains T=virtual_delivery
2006-03-15 17:27:33 1FJYqT-0003ol-Ec Completed
2006-03-15 17:27:46 1FJYqg-0003os-TV <= yoz@domain.org H=smartmx-02.inode.at [213.229.60.34] P=esmtp S=801 id=44184090.2090201@domain.org T="hi"
2006-03-15 17:27:47 1FJYqg-0003os-TV => /var/opt/vmail/domain.org/ioana/Maildir <ioana@domain.org> R=virtual_domains T=virtual_delivery
2006-03-15 17:27:47 1FJYqg-0003os-TV Completed


Wie du siehst.. mails von yoz gehen durch die dspam router.. für ioana aber nicht.. yoz ist systemuser ioana nicht..

ne idee??

grüße, yoz