Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: On 15 Května 2013, 08:59:07
-
Ahoj,
nedaří se mi nějak propojit postfix se spamassassin.
Návodů je mraky, třeba tenhle: http://townx.org/blog/elliot/simple_spamassassin_setup_with_postfix_and_dovecot_on_ubuntu_breezy nebo http://james-scott.cz/postfix-spamassassin/,
ale pointa je vesměs u všech stejná..jestli jsem správně pochopil, tak propojení se dělá v /etc/postfix/master.cf ..
můj výpis konfiguračního soubor /etc/postfix/master.cf:
smtp inet n - - - - smtpd
-o content_filter=spamassassin
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - - - - smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Jenže výpis v logu /var/log/mail.info by měl vypadat jinak. Měla by tam být zmínka o tom uživateli "spamd", zatím se ale nic nezměnilo:
May 15 08:44:49 hostname postfix/pickup[26182]: 613735F813: uid=9999 from=<mail@mail.cz>
May 15 08:44:49 hostname postfix/cleanup[29039]: 613735F813: message-id=<ce58ecde2aa76a8779607d838799c4c6@domena.cz>
May 15 08:44:49 hostname postfix/qmgr[26183]: 613735F813: from=<mail@domena.cz>, size=711, nrcpt=1 (queue active)
May 15 08:44:49 hostname postfix/pickup[26182]: 977BB5F814: uid=9999 from=<mail@domena.cz>
May 15 08:44:49 hostname postfix/cleanup[29039]: 977BB5F814: message-id=<688a862255e494cb790e7778e827b3f4@domena.cz>
May 15 08:44:49 hostname postfix/qmgr[26183]: 977BB5F814: from=<mail@domena.cz>, size=665, nrcpt=1 (queue active)
May 15 08:44:49 hostname postfix/smtp[29041]: 613735F813: to=<mail@domena.cz>, relay=smtp.provider.cz[212.111.0.12]:25, delay=0.43, delays=0.08/0.01/0.02/0.32, dsn=2.0.0, status=sent (250 Ok: queued as 9DD4C81A066)
May 15 08:44:49 hostname postfix/qmgr[26183]: 613735F813: removed
Podle návodů by měl v logu figurovat právě uživatel "spamd", pač před odesláním by to měl zkontrolovat právě spamassassin...
Konfigurák /etc/spamassassin/local.cf:
# This is the right place to customize your installation of SpamAssassin.
#
# See 'perldoc Mail::SpamAssassin::Conf' for details of what can be
# tweaked.
#
# Only a small subset of options are listed below
#
###########################################################################
# Add *****SPAM***** to the Subject header of spam e-mails
#
rewrite_header Subject *****SPAM*****
# Save spam messages as a message/rfc822 MIME attachment instead of
# modifying the original message (0: off, 2: use text/plain instead)
#
report_safe 1
# Set which networks or hosts are considered 'trusted' by your mail
# server (i.e. not spammers)
#
# trusted_networks 212.17.35.
# Set file-locking method (flock is not safe over NFS, but is faster)
#
# lock_method flock
# Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 5.0
# Use Bayesian classifier (default: 1)
#
use_bayes 1
# Bayesian classifier auto-learning (default: 1)
#
bayes_auto_learn 1
# Set headers which may provide inappropriate cues to the Bayesian
# classifier
#
# bayes_ignore_header X-Bogosity
# bayes_ignore_header X-Spam-Flag
# bayes_ignore_header X-Spam-Status
# Some shortcircuiting, if the plugin is enabled
#
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
#
# default: strongly-whitelisted mails are *really* whitelisted now, if the
# shortcircuiting plugin is active, causing early exit to save CPU load.
# Uncomment to turn this on
#
# shortcircuit USER_IN_WHITELIST on
# shortcircuit USER_IN_DEF_WHITELIST on
# shortcircuit USER_IN_ALL_SPAM_TO on
# shortcircuit SUBJECT_IN_WHITELIST on
# the opposite; blacklisted mails can also save CPU
#
# shortcircuit USER_IN_BLACKLIST on
# shortcircuit USER_IN_BLACKLIST_TO on
# shortcircuit SUBJECT_IN_BLACKLIST on
#### blacklist_from arealbatov.cz
#### blacklist_from vinarskyinstitut.cz
# if you have taken the time to correctly specify your "trusted_networks",
# this is another good way to save CPU
#
# shortcircuit ALL_TRUSTED on
# and a well-trained bayes DB can save running rules, too
#
# shortcircuit BAYES_99 spam
# shortcircuit BAYES_00 ham
endif # Mail::SpamAssassin::Plugin::Shortcircuit
Výpis logu po nastartování spamassassin:
Wed May 15 08:21:27 2013 [4511] info: spamd: server killed by SIGTERM, shutting down
Wed May 15 08:22:50 2013 [26083] info: logger: removing stderr method
Wed May 15 08:22:51 2013 [26085] info: spamd: server started on port 783/tcp (running version 3.3.2)
Wed May 15 08:22:51 2013 [26085] info: spamd: server pid: 26085
Wed May 15 08:22:51 2013 [26085] info: spamd: server successfully spawned child process, pid 26086
Wed May 15 08:22:51 2013 [26085] info: spamd: server successfully spawned child process, pid 26087
Wed May 15 08:22:51 2013 [26085] info: prefork: child states: IS
Wed May 15 08:22:51 2013 [26085] info: prefork: child states: II
díky za nakopnutí...
-
Tak co podařilo se ti to vyřešit?
-
Ještě pořád ne :( Zapojil jsem do toho ještě poslední článek a sice amavis. To už mám pro kontrolu odeslané pošty snad všechno. Velmi pěkný návod je zde:
https://help.ubuntu.com/community/PostfixAmavisNew
Přesně dle toho jsem jel, ale nemám dojem, že by to dělalo co mělo. Zkusil jsem napsat mail s nesmyslným textem nebo nesmyslnou adresou, např "gsr2555fad@ejgks.xyz"
Ale mail vesele odešel...amavis mám za to, že by měl právě tohle stopnout.
Jaký je vlastně cíl snažení...?
Jde mi pouze o odesílanou poštu. Potřebuji, aby před odesláním ji "něco" zkontrolovalo, vyhodnotilo, zda se jedná/nejedná o spam a na základě toho pak mail propustil/nepustil.
A já mám prostě dojem, že postfix propustí vše..neprojde to žádným sítem. Ale šel jsem krok po kroku dle návodů a zatím se mi nedaří ten filtr nějak propojit.
-
a jak poznáte, že to "odešlo"?
z toho, že to máte v odeslané poště na klientu?
-
Ano, v podstatě jen podle serverového logu. Tohle považuji za odeslané, pač pokud dodám můj mail, tak to přijde..
May 15 14:01:15 hostname postfix/pickup[31494]: D7E1F5F813: uid=9999 from=<jenkins>
May 15 14:01:15 hostname postfix/cleanup[12517]: D7E1F5F813: message-id=<20130515120115.D7E1F5F813@hostname>
May 15 14:01:16 hostname postfix/qmgr[26183]: D7E1F5F813: from=<jenkins@hostname.cz>, size=1929, nrcpt=1 (queue active)
May 15 14:01:16 hostname postfix/smtp[12519]: D7E1F5F813: to=<don.memphis@yahoo.com>, relay=smtp.provider.cz[212.111.0.12]:25, delay=0.8, delays=0.4/0.06/0.02/0.33, dsn=2.0.0, status=sent (250 Ok: queued as C3F5F81A066)
May 15 14:01:16 hostname postfix/qmgr[26183]: D7E1F5F813: removed
A v logu spamassassin nic...čili přes něj to vůbec nešlo. Když do /etc/postfix/main.cf dodám:
content_filter = spamassassin:[127.0.0.1]:783
, tak se sice něco děje, ale při odeslání pokusného mailu se odesílá pořád dokola, tzn dochází ke spamu cca tří mailů za vteřinu:
May 15 20:30:45 hostname postfix/pickup[1810]: AEC9F5F81C: uid=10000 from=<ladik@hostname.cz>
May 15 20:30:45 hostname postfix/cleanup[2244]: AEC9F5F81C: message-id=<20130515183044.CE7BE5F814@hostname>
May 15 20:30:45 hostname postfix/qmgr[1811]: AEC9F5F81C: from=<ladik@hostname.cz>, size=960, nrcpt=1 (queue active)
May 15 20:30:45 hostname postfix/pipe[2246]: AEC9F5F81C: to=<muj@mail.cz>, relay=spamassassin, delay=0.15, delays=0.07/0/0/0.08, dsn=2.0.0, status=sent (delivered via spamassassin service)
May 15 20:30:45 hostname postfix/qmgr[1811]: AEC9F5F81C: removed
...musím ale provést /etc/init.d/postfix stop ..jinak by to pravděpodobně nepřestalo. Ale ve /var/log/spamassassin zase nacházím:
Thu May 16 17:34:37 2013 [26085] info: prefork: child states: II
Thu May 16 17:34:37 2013 [26086] info: spamd: connection from localhost [127.0.0.1] at port 60789
Thu May 16 17:34:37 2013 [26086] info: spamd: setuid to spamd succeeded
Thu May 16 17:34:37 2013 [26086] info: spamd: processing message <20130516153432.AEC9F5F81C@hostname> for spamd:10000
Thu May 16 17:34:37 2013 [26086] info: spamd: clean message (0.0/5.0) for spamd:10000 in 0.0 seconds, 5792 bytes.
Thu May 16 17:34:37 2013 [26086] info: spamd: result: . 0 - FREEMAIL_FROM,NO_RELAYS,T_TO_NO_BRKTS_FREEMAIL scantime=0.0,size=5792,user=spamd,uid=10000,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=60789,mid=<20130516153432.AEC9F5F81C@hostname>,autolearn=unavailable
Thu May 16 17:34:37 2013 [26085] info: prefork: child states: II
..čili konečně nějaká odezva. Nicméně ten řádek do main.cf jsem zadal jen intuitivně, pač amavis to takhle má. V žádném návodu to ale pro spamassassin není.
Předpokládám, že spamassassin tu vazbu provádí v master.cf po doplnění "-o content_filter=spamassassin". Ale tu teda asi nebere...tady žádnou spolupráci nevidím.
No a nehledě na to, že to stejně nefunguje...jen se mi tím podařilo vyvolat konečně nějakou odezvu.
-
, tak se sice něco děje, ale při odeslání pokusného mailu se odesílá pořád dokola, tzn dochází ke spamu cca tří mailů za vteřinu:
jsi asi zachycený ve smyčce smtp -> sa -> smpt -> sa a furt dokola musis při zpětném získání zprávy od sa vynulovat ten nastavený filtr
-o content_filter=
-
Takže, do /etc/postfix/master.cf jsem změnil tento řádek:
smtp inet n - - - - smtpd -o content_filter=spamassassin
na
smtp inet n - - - - smtpd -o content_filter=
..a v /etc/postfix/main.cf jsem nechal:
content_filter = spamassassin:[127.0.0.1]:783
...ale výsledek bohužel stejný. Opět začne dokola posílat maily..nebo posílat..ono je to asi neposílá, ale dělá něco cyklicky.
Nejspíš to, co popisuje ETNyx..