The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Проблема с clamav+clamsmtpd"
Отправлено Владимир, 08-Апр-06 17:06 
У меня такая же проблема. У меня стоит:
FreeBSD 6.0
Postfix 2.2.10
courier-imap 4.1.0,1
ClamSMTP 1.6
ClamAV 0.88.1
SpamAsassin 3.1.1
Вот мои конфиги:
Вот это я добавил в Main.cf:

content_filter = avscan:127.0.0.1:10025
receive_override_options = no_address_mappings
spamfilter_destination_recipient_limit = 1

clamsmtpd.conf:

# The address to send scanned mail to.
# This option is required unless TransparentProxy is enabled
OutAddress: 10026

# The maximum number of connection allowed at once.
# Be sure that clamd can also handle this many connections
#MaxConnections: 64

# Amount of time (in seconds) to wait on network IO
#TimeOut: 180

# Keep Alives (ie: NOOP's to server)
#KeepAlives: 0

# Send XCLIENT commands to receiving server
XClient: off

# Address to listen on (defaults to all local addresses on port 10025)
Listen: 127.0.0.1:10025

# The address clamd is listening on
ClamAddress: /var/run/clamav/clamd

# A header to add to all scanned email
Header: X-Virus-Scanned: ClamAV using ClamSMTP

# Directory for temporary files
TempDirectory: /tmp/clamav

# Whether or not to bounce email (default is to silently drop)
#Bounce: off
Bounce: off

# Whether or not to keep virus files
Quarantine: off

# Enable transparent proxy support
TransparentProxy: off

# User to switch to
User: clamav

# Virus actions: There's an option to run a script every time a virus is found.
# !IMPORTANT! This can open a hole in your server's security big enough to drive
# farm vehicles through. Be sure you know what you're doing. !IMPORTANT!
VirusAction: /usr/local/etc/clamsmtpd_virus.sh

Вот это я добавил в master.cf:
# ====================================================================
#
#                             ClamSMTP
#

avscan      unix    -    -    n    -    16    smtp
    -o smtp_send_xforward_command=yes

127.0.0.1:10026    inet    n    -    n    -    16    smtpd
#    -o content_filter=
    -o content_filter=spamfilter
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
    -o smtpd_helo_restrictions=
    -o smtpd_client_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks_style=host
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8

# ====================================================================
#
#                SpamAssasin
#
spamfilter      unix    -       n       n       -       10      pipe
    flags=R
    user=spamd argv=/usr/local/etc/postfix/spam.pl "localhost:10027" "spamfilter"\
        "${sender}" "${recipient}" "/usr/local/bin/spamc"
        
localhost:10027 inet    n       -       n       -       10      smtpd
          -o content_filter=
          -o local_recipient_maps=
          -o relay_recipient_maps=
          -o smtpd_helo_restrictions=
          -o smtpd_client_restrictions=
          -o smtpd_sender_restrictions=
          -o mynetworks=127.0.0.0/8
          -o smtpd_recipient_restrictions=permit_mynetworks,reject
          -o myhostname=localhost

Как я выяснил проблема в том, что в ClamSMTP нету опции, запрещающей посылать на проверку большие письма, a в ClamAV нету опцие запрещающей проверять большие файлы, там только можно ограничить размер проверяемых архивов. В результате если посылается письмо с преложенным 100Мб AVI или 60Мб ISO файлом, ClamAV пытается его проверить. Как вы понимаете, дело это не быстрое и через пару минут мы получаем ответ, что ClamAV не даёт ответа, хотя на самом деле бедолага усердно проверяет письмо. В логах мы видим вот это:

Apr  7 18:06:52 mail spamd[608]: prefork: child states: II Apr  7 18:10:36 mail postfix/smtpd[708]: connect from unknown[10.0.0.178] Apr  7 18:10:37 mail postfix/smtpd[708]: 2C4301076C11:
client=unknown[10.0.0.178]
Apr  7 18:10:37 mail postfix/cleanup[711]: 2C4301076C11:
message-id=<443681E0.9060500@aaaaa.aa>
Apr  7 18:15:54 mail pop3d: LOGIN, user=1@aaaaa.aa, ip=[10.0.0.178]
Apr  7 18:15:54 mail pop3d: LOGOUT, user=1@aaaaa.aa, ip=[10.0.0.178], top=0, retr=0, rcvd=12, sent=39, time=0 Apr  7 18:19:49 mail postfix/qmgr[500]: 2C4301076C11:
from=<1@aaaaa.aa>, size=143596463, nrcpt=1 (queue active)
Apr  7 18:19:49 mail postfix/smtpd[708]: disconnect from unknown[10.0.0.178] Apr  7 18:19:49 mail clamsmtpd: 100000: accepted connection from:
127.0.0.1
Apr  7 18:19:49 mail postfix/smtpd[730]: connect from mail.aaaaa.aa[127.0.0.1] Apr  7 18:19:49 mail postfix/smtpd[730]: 8C2EE1076C18: client=unknown[10.0.0.178]
Apr  7 18:23:00 mail clamsmtpd: 100000: CLAMAV: network read operation timed out
Apr  7 18:23:00 mail clamsmtpd: 100000: unexepected response from clamd:
Apr  7 18:23:00 mail clamsmtpd: 100000: from=1@aaaaa.aa, to=2@aaaaa.aa, status=CLAMAV-ERROR
Apr  7 18:23:01 mail postfix/smtp[729]: 2C4301076C11: to=<2@aaaaa.aa>, relay=127.0.0.1[127.0.0.1], delay=744, status=deferred (host 127.0.0.1[127.0.0.1] said: 451 Local Error (in reply to end of DATA
command))
Apr  7 18:23:01 mail postfix/smtpd[730]: disconnect from mail.aaaaa.aa[127.0.0.1]

Есть несколько решений этой проблемы:
1) Заставить Postfix не посылать письма, к примеру, больше 10Mb в “content_filter = avscan:127.0.0.1:10025”. Я перерыл весь инет, но не нашел как это можно сделать. Если кто знает, как можно этого добиться, расскажите.
2) Сделать скрипт который будет определять, какого размера письмо и в случае если он превышает 10Мб отправлять его на порт 1027 минуя все фильтры. Можно попробовать вставить этот скрипт сюда:

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)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#submission inet n      -       n       -       -       smtpd
-o content_filter=largefiles
#       -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            

largefiles      unix    -       n       n       -       10      pipe
    flags=R
    user=large argv=/usr/local/etc/postfix/large.pl "localhost:10027"
        
localhost:10027 inet    n       -       n       -       10      large
          -o content_filter=
          -o local_recipient_maps=
          -o relay_recipient_maps=
          -o smtpd_helo_restrictions=
          -o smtpd_client_restrictions=
          -o smtpd_sender_restrictions=
          -o mynetworks=127.0.0.0/8

(Тут я наверни-ка написал ерунду, но если будет скрипт, я придумаю как его запустить)

По моему, один из этих вариантов должен решить проблему.

Люди добрые умные, помогите. Если первый вариант не возможен, пожалуйста, напишите скрипт.

Огромное, огромное СПАСИБО, тому кто поможет.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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