Postfix + SpamAssassin ?

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 03 авг 2005, 17:11

Но после надо править main.cf, переделывать права доступа (filter) и так далее.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 03 авг 2005, 17:18

Ну а это к слову сказать, дефолтный конфиг, строка из него, :twisted:.

Код: Выделить всё

# transport for spamassisn
spam      unix  -       n       n       -       5      pipe
  flags=Rq user=filter argv=/usr/bin/spamc -u mailnull

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 03 авг 2005, 18:16

Большое ССПАСИБО. Такого полного ответа я прямо не ожидал. Буду пробывать. Еще раз СПАСИБО  :!:

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 03 авг 2005, 20:27

Как я и ожидал ничего не вышло :( Писмо отправляется но до адресата не доходит.
Пробывал разные варианты. Вот пример с дефолтным конфигом
-----------------
smtp  inet  n - n - - smtpd -o content_filter=checkfilter
#smtp      inet  n       -       n       -       -       smtpd

checkfilter      unix  -       n       n       -       5      pipe
 flags=Rq user=filter argv=/usr/bin/spamc -u filter
-------------------

Вот лог. Насколько я понял, письмо проверяется на спам и не доставляется адресату.
--------------
Aug  3 18:56:02 molodechno postfix/smtpd[2829]: connect from unknown[192.168.2.30]
Aug  3 18:56:02 molodechno postfix/smtpd[2829]: 6693128448: client=unknown[192.168.2.30], sasl_method=PLAIN, sasl_username=anatoly@molodechno.by
Aug  3 18:56:02 molodechno postfix/cleanup[2832]: 6693128448: message-id=<1913891889.20050730202114@molodechno.by>
Aug  3 18:56:02 molodechno postfix/qmgr[2824]: 6693128448: from=<anatoly@molodechno.by>, size=712, nrcpt=1 (queue active)
Aug  3 18:56:02 molodechno spamd[905]: connection from localhost.by [127.0.0.1] at port 54751
Aug  3 18:56:02 molodechno spamd[905]: Creating default_prefs [/nonexistent/.spamassassin/user_prefs]
Aug  3 18:56:02 molodechno spamd[905]: Cannot write to /nonexistent/.spamassassin/user_prefs: Permission denied
Aug  3 18:56:02 molodechno spamd[905]: Couldn't create readable default_prefs for [/nonexistent/.spamassassin/user_prefs]
Aug  3 18:56:02 molodechno spamd[905]: processing message <1913891889.20050730202114@molodechno.by> for drweb:426.
Aug  3 18:56:02 molodechno postfix/smtpd[2829]: disconnect from unknown[192.168.2.30]
Aug  3 18:56:02 molodechno spamd[905]: clean message (-102.6/3.5) for drweb:426 in 0.2 seconds, 725 bytes.
Aug  3 18:56:02 molodechno spamd[905]: result: . -102 - ALL_TRUSTED,DATE_IN_PAST_48_96,USER_IN_WHITELIST scantime=0.2,size=725,mid=<1913891889.20050730202114@molodechno.by>,autolearn=disabled
Aug  3 18:56:02 molodechno postfix/pipe[2833]: 6693128448: to=<webmaster@molodechno.by>, relay=checkfilter, delay=0, status=sent (molodechno.by)
Aug  3 18:56:02 molodechno postfix/qmgr[2824]: 6693128448: removed
---------------

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 04 авг 2005, 10:16

AnatolySh писал(а):Aug  3 18:56:02 molodechno spamd[905]: Creating default_prefs [/nonexistent/.spamassassin/user_prefs]
Aug  3 18:56:02 molodechno spamd[905]: Cannot write to /nonexistent/.spamassassin/user_prefs: Permission denied
Aug  3 18:56:02 molodechno spamd[905]: Couldn't create readable default_prefs for [/nonexistent/.spamassassin/user_prefs]
Напутано в правами доступа к каталогам. Демону спамд не хватает прав. Не совсем понятно, почему фигурирует nonexistent. Читайте внимательно и сделайте все по порядку, как написано в трех статьях здесь на форуме. Там разжевано все до мелочей.

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 04 авг 2005, 14:59

Вроде немного разобрался. spamassassin создал нужные директории и файлы, но почта все равно не доэодит до получателей. Без спам фильтра все Ок.
Глядя в логи обнаружил вот такую разницу. Почта без фильтра:
---------------------
Aug  4 11:42:14 molodechno postfix/virtual[8875]: 6674328476: to=<webmaster@molodechno.by>, relay=virtual, delay=0, status=sent (delivered to maildir)
Aug  4 11:42:14 molodechno postfix/qmgr[8870]: 6674328476: removed
----------------------
и почта доставлена.

C фильтром:
----------------------
Aug  3 18:56:02 molodechno postfix/pipe[2833]: 6693128448: to=<webmaster@molodechno.by>, relay=checkfilter, delay=0, status=sent (molodechno.by)
Aug  3 18:56:02 molodechno postfix/qmgr[2824]: 6693128448: removed
----------------------

И почта не доставлена. :(

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 04 авг 2005, 15:40

main.cf & master.cf в студию.

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 04 авг 2005, 16:18

postfix собран с поддержкой mysql. В базе храняться пользователи, транспорт, алиасы.
-----------
#main.cf
---------------------------------------------------
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
mail_owner = postfix
default_privs = nobody
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8, 86.57.128.0/28, 192.168.2.0/28
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
mail_spool_directory = /var/mail
smtpd_banner = $myhostname SMTP mail server
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = no
#-------------------------------------------------------------
maps_rbl_reject_code = 554
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
transport_maps = mysql:/usr/local/etc/postfix/sql/transport.cf
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/sql/users.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/sql/aliases.cf
virtual_uid_maps = mysql:/usr/local/etc/postfix/sql/uids.cf
virtual_gid_maps = mysql:/usr/local/etc/postfix/sql/gids.cf
relay_domains = $transport_maps
local_recipient_maps = $virtual_mailbox_maps $virtual_maps $transport_maps
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

content_filter = checkfilter
------------- Конец main.cf -----------------------------

--------------
master.cf
---------------------------------
#
# Postfix master process configuration file.  For details on the format
# of the file, see the Postfix master(5) manual page.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
#drWeb
#smtp  inet  n - n - - smtpd -o content_filter=checkfilter:dummy
#smtp  inet  n - n - - smtpd -o content_filter=checkfilter
smtp      inet  n       -       n       -       -       smtpd

#submission inet n      -       n       -       -       smtpd
# -o smtpd_etrn_restrictions=reject
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps    inet  n       -       n       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission   inet    n       -       n       -       -       smtpd
#  -o smtpd_etrn_restrictions=reject
#  -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628      inet  n       -       n       -       -       qmqpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       n       -       -       smtp
-o fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache  unix - - n - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
 flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix  -       n       n       -       -       pipe
 flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
cyrus     unix  -       n       n       -       -       pipe
 user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# See the Postfix UUCP_README file for configuration details.
#
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=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient

#-----------------------------------------------------------------------------
checkfilter unix - n n - 5 pipe
   flags=Rq user=filter argv=/usr/local/bin/spamc -u filter
-------------Конец master.cf-------------------

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 04 авг 2005, 16:28

AnatolySh писал(а):#-----------------------------------------------------------------------------
checkfilter unix - n n - 5 pipe
   flags=Rq user=filter argv=/usr/local/bin/spamc -u filter
-------------Конец master.cf-------------------
Демон стартует от имени filter? Его домашним каталогом должен быть каталог, в котором лежат базы. Очень похоже, что демону спамд не хватает прав. Проверьте лог spamd.log, чего он так говорит? Если не понятно, увеличте уровень записи в лог и еще раз проверьте.

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 04 авг 2005, 22:48

С правами я разобрался. Ошибок на счет прав больше нет нигде
В домашней директории пользователя filter лежат и базы и нужные файлы. Они там сами появились.
Судя по логам spamd.log все ок. Писмо проверяется на спам, но почему не раскладывается по ящикам после проверки???

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 05 авг 2005, 10:06

AnatolySh писал(а):С правами я разобрался. Ошибок на счет прав больше нет нигде
В домашней директории пользователя filter лежат и базы и нужные файлы.
кусочек лога спамд при обработке почты?

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 05 авг 2005, 11:22

Вот один кусочек. Письмо от отправителя из whitelist
---------------------
Aug  4 21:34:07 molodechno spamd[11094]: connection from localhost.by [127.0.0.1] at port 60892
Aug  4 21:34:07 molodechno spamd[11094]: processing message <684537223.20050803191329@molodechno.by> for filter:0.
Aug  4 21:34:07 molodechno spamd[11094]: clean message (-102.5/3.5) for filter:0 in 0.3 seconds, 707 bytes.
Aug  4 21:34:07 molodechno spamd[11094]: result: . -102 - ALL_TRUSTED,AWL,DATE_IN_PAST_24_48,USER_IN_WHITELIST scantime=0.3,size=707,mid=<684537223.20050803191329@molodechno.by>,autolearn=ham  
---------------------

Вот еще кусочек. Вроде распознало письмо как спам
--------------------
Aug  4 21:44:57 molodechno spamd[11090]: connection from localhost.by [127.0.0.1] at port 60697
Aug  4 21:44:57 molodechno spamd[11090]: processing message <004101c48f4b$f19d4a62$532216a4@lkqida> for filter:0.
Aug  4 21:45:01 molodechno spamd[11090]: identified spam (19.1/3.5) for filter:0 in 3.7 seconds, 4522 bytes.
Aug  4 21:45:01 molodechno spamd[11090]: result: Y 19 - DATE_IN_PAST_96_XX,DNS_FROM_RFC_WHOIS,FORGED_OUTLOOK_HTML,FROM_ILLEGAL_CHARS,HEAD_ILLEGAL_CHARS,HTML_60_70,HTML_FONT_BIG,HTML_MESSAGE,HTML_TAG_BALANCE_BODY,HTML_TITLE_EMPTY,MIME_HTML_ONLY,MSGID_OUTLOOK_INVALID,RCVD_ILLEGAL_IP,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DSBL,RCVD_IN_XBL,SUBJ_ILLEGAL_CHARS scantime=3.7,size=4522,mid=<004101c48f4b$f19d4a62$532216a4@lkqida>,autolearn=spam  
--------------------

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 05 авг 2005, 11:32

AnatolySh писал(а):Вот один кусочек. Письмо от отправителя из
Попробуйте вот эту строку убрать:
relay_domains = $transport_maps

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Сообщение Stranger03 » 05 авг 2005, 11:39

Блин, ничего страшного не вижу. Надо попробовать поднять уровень логов в постфиксе, обнулить лог и попробовать покидаться письмами. На первый взгляд все хорошо.

AnatolySh
Junior member
Сообщения: 13
Зарегистрирован: 30 июл 2005, 23:07

Сообщение AnatolySh » 05 авг 2005, 22:28

Stranger03 писал(а):Попробуйте вот эту строку убрать:
relay_domains = $transport_maps
Пробывал. Эффект тот же.
Без фильтра письма доходят, с фтльтром нет.

Глупый вопрос: как поднять уровень лог файлов?

Еще: Я так понял к постфиксу в качестве фильтра можно написать люьой скрипт. Можно ли написать какой нить скрипт, который бы просто или ничего с письмом не делал или добавлял что-нитть незначительное. Просто проверить проблема со спам фильтром или с постфиксом, который после обращения к любому фильтру просто теряет письмо.

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»