The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"лабиринты получения почты сквозь фильтр Spamassassin"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"лабиринты получения почты сквозь фильтр Spamassassin"  
Сообщение от RVI email(ok) on 07-Июл-07, 17:17 
(Mandriva:Postfix+spamassassin+fetchmail) преамбула:
1.создаем файл spam.txt это текст любого спам письма, полученного нами.
2. Настраиваем  spamassassin
/etc/mail/spamassassin/local.cf
3.Пишем фильтр-управленец
filter.sh, который упоминается в Postfix.
4.Настраиваем Postfix
/etc/postfix/main.cf & master.cf
====================================
Проверяем:
1. Вот это работает
[root@romano filter]# cat spam.txt | spamassassin
2. Это тоже работает и без фильтра.
[root@romano filter]# cat spam.txt | spamassassin | sendmail -i "$@" -f t@g.rr filter@romano.com
Это и есть кусочек фильтра. Обработанные spamassassin складываются в ящики.
3.Проверяем работу собственно фильтра, с передачей ему отправителя и получателя, собственно тоже самое прописывается и в master.cf
$ cat spam.txt | filter -f t@g.rr filter@romano.com
Все работает.
4. Работает прекрасно и это:
[roman@localhost roman]$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 romano ESMTP Postfix (2.1.0-pre-20040209) (Mandrake Linux)
mail from:<tigrisha@test.ru>
250 Ok
rcpt to: <roman@romano.com>
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
testttt
.
250 Ok: queued as BEE6E63C9D

==============================================
Собственно вопрос
1.Почему не задействуется фильтр, если даем такую команду
$ cat spam.txt | /usr/sbin/sendmail filter@romano.com
т.е. письмо попадает в ящик, но не тронутое spamassassin
2. Почему не задействуется фильтр, при команде
# fetchmail, аналогично письма прописанные в файле /etc/.fetchmailrc приходят с POP ящиков, также минуя фильтр?
=============================================
Небольшое прояснение моих же вопросов, но ситуация осталась на месте...
Так вот в файле /etc/.fetchmailrc есть строчка:
mda "/usr/sbin/sendmail -i %T",
собственно второй вопрос действительно превращается в разновидность первого,
Если же я меняю эту строчку на
mda "spamassassin | /usr/sbin/sendmail -i %T",
тогда заработает spamassassin, но не фильтр filter.sh
все таки это обходной путь...
====================================
Другой тогда вопрос, команда /usr/sbin/sendmail -i %T
вообще минует порт 25 и складывает все по ящикам по какому то другому пути?
Или использует сервис иной, чем прописанный в master.cf
smtp    inet    n       -       n       -       -       smtpd
  -o content_filter=spamassassin:dummy

Хотя в теле письма появляется строчка
Received: by romano (Postfix, from userid 0)
        id 36E8F1C2119; Sat,  7 Jul 2007 18:23:01 +0700 (OMSST)
=======================================
Интересно, если подойти с этой стороны, то методом тыка я нашел следующий эффект:
Если переписать строчку в master.cf
pickup  fifo    n       -       n       60      1       pickup
  -o content_filter=
  -o receive_override_options=
в таком виде:
pickup  fifo    n       -       n       60      1       pickup
  -o content_filter=spamassassin:dummy
  -o receive_override_options=
и перезапустить postfix,
то фильтр заработает, но это мы увидим не сразу, т.к.
письма не дойдут, они будут накапливаться, и получить их можно будет только
вернув строчку в исходное состояние
pickup  fifo    n       -       n       60      1       pickup
  -o content_filter=
  -o receive_override_options=
и перезапустив postfix.
Увидим следующее, письма фильтром то будут обрабатываться, но они будут как бы зациклены
в теле письма будут множиться строчки
Received: by romano (Postfix, from userid 0)
        id 36E8F1C2119; Sat,  7 Jul 2007 19:23:01 +0700 (OMSST)
Received: by romano (Postfix, from userid 0)
        id 36E8F1C2119; Sat,  7 Jul 2007 20:23:01 +0700 (OMSST)
Received: by romano (Postfix, from userid 0)
        id 36E8F1C2119; Sat,  7 Jul 2007 21:23:01 +0700 (OMSST)
Конечно это не решение но сам я дойду до него, как же всё таки быть
На всякий случай я приведу
=========================
master.cf:
=========================
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
#=============== ROM ========================================
smtp    inet    n       -       n       -       -       smtpd
  -o content_filter=spamassassin:dummy

#--------------------------------------------------------------

#smtps    inet  n       -       n       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission   inet    n       -       n       -       -       smtpd
#  -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628      inet  n       -       n       -       -       qmqpd
pickup  fifo    n       -       n       60      1       pickup
  -o content_filter=
  -o receive_override_options=
cleanup unix    n       -       y       -       0       cleanup
qmgr    fifo    n       -       y       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr  fifo    -       -       y       300     1       tlsmgr
rewrite unix    -       -       y       -       -       trivial-rewrite
bounce  unix    -       -       y       -       0       bounce
defer   unix    -       -       y       -       0       bounce
trace   unix    -       -       y       -       0       bounce
verify  unix    -       -       y       -       1       verify
flush   unix    n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp    unix    -       -       n       -       -       smtp
relay   unix    -       -       y       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq   unix    n       -       y       -       -       showq
error   unix    -       -       y       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp    unix    -       -       y       -       -       lmtp
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=nobody argv=/usr/bin/maildrop -d ${recipient}
cyrus-deliver     unix  -       n       n       -       -       pipe
  user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
cyrus     unix  -       n       n       -       -       lmtp
  -o lmtp_cache_connection=yes
cyrus-inet      unix    -       -       y       -       -       lmtp
  -o lmtp_cache_connection=yes
  -o lmtp_sasl_auth_enable=yes
  -o lmtp_sasl_password_maps=hash:/etc/postfix/cyrus_lmtp_sasl_pass
  -o lmtp_sasl_security_options=noanonymous
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=/usr/bin/uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

127.0.0.1:10026 inet    n       -       y       -       -       smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_restriction_classes=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o mynetworks=127.0.0.0/8
  -o strict_rfc821_envelopes=yes

#--------------------------------------------------------------------

lmtp-filter     unix    -       -       y       -       -       lmtp
  -o lmtp_data_done_timeout=1200
  -o disable_dns_lookups=yes

smtp-filter     unix    -       -       y       -       -       smtp
  -o smtp_data_done_timeout=1200
  -o disable_dns_lookups=yes
  -o content_filter=spamassassin:dummy
##### END OF CONTENT FILTER CUSTOMIZATIONS #####
spamassassin    unix    -       n       n       -       -       pipe
  flags=Rq user=filter argv=/usr/local/bin/com_filter.sh -f ${sender} -- ${recipient}[roman@romano postfix]$

=========================================================
А это main.cf
=========================================================
readme_directory = /usr/share/doc/postfix-2.1.0/README_FILES
sample_directory = /usr/share/doc/postfix-2.1.0/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/lib/postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix

# User configurable parameters
# User configurable parameters

myhostname = romano

mynetworks_style = host
delay_warning_time = 4h
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrake Linux)
unknown_local_recipient_reject_code = 450
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2

mydestination = $myhostname, localhost.$mydomain, $myhostname.com

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
virtual_maps = hash:/etc/postfix/virtual
canonical_maps = hash:/etc/postfix/canonical

mynetworks = 10.0.0.0/24 , 127.0.0.0/8

mydomain = com
masquerade_domains =
#myorigin = mail.ru
relayhost = smtp.mail.ru

smtp_sasl_auth_enable = yes
#smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
#sender_canonical_maps = hash:/etc/postfix/sender_canonical
defer_transports = smtp
disable_dns_lookups = yes


#это я ввернул, но толку не было
content_filter = spamassassin

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "лабиринты получения почты сквозь фильтр Spamassassin"  
Сообщение от guest (??) on 09-Июл-07, 08:00 
>Собственно вопрос
>1.Почему не задействуется фильтр, если даем такую команду
>$ cat spam.txt | /usr/sbin/sendmail filter@romano.com
>т.е. письмо попадает в ящик, но не тронутое spamassassin
>2. Почему не задействуется фильтр, при команде
># fetchmail, аналогично письма прописанные в файле /etc/.fetchmailrc приходят с POP ящиков,
>также минуя фильтр?
Потому, что фильтр использующий sendmail для возврата письма postfix не работает для локальных писем (идущих через sendmail(1) -> pickup(8))

>Другой тогда вопрос, команда /usr/sbin/sendmail -i %T
>вообще минует порт 25 и складывает все по ящикам по какому то
>другому пути?
sendmail не раскладывает письма по ящикам, а работает (упрощенно) так:
sendmail(1) -> postdrop(1) -> pickup(8) ->cleanup(8) ->incoming очередь

Если вам нужно фильтровать локальные письмо, то нужно использовать фильтр возвращающий письма по l/smtp. В простейшем случае можно вместо sendmail взять что-то вроде mini_sendmail (http://www.acme.com/software/mini_sendmail/)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Спасибо, дружище!"  
Сообщение от RVI email(??) on 09-Июл-07, 20:29 
Спасибо, дружище, mini_sendmail действительно помог!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "лабиринты получения почты сквозь фильтр Spamassassin"  
Сообщение от Tsamada on 22-Ноя-07, 11:25 
>Если же я меняю эту строчку на
>mda "spamassassin | /usr/sbin/sendmail -i %T",
>тогда заработает spamassassin, но не фильтр filter.sh
>все таки это обходной путь...

-- ты ГЕНИЙ чувак :)
помогла таки строка, огромное спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру