The OpenNET Project / Index page

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

Интеграция Postfix, Maildrop и DSPAM (postfix spam filter mail)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: postfix, spam, filter, mail,  (найти похожие документы)
From: Eugene Hartmann (Dezz) <dezz@sibmail.com.> Newsgroups: email Date: Mon, 11 Jan 2006 14:31:37 +0000 (UTC) Subject: Интеграция Postfix, Maildrop и DSPAM Данное руководство не ставит своей целью полное описание процесса настройки и интеграции МТА Postfix и спам-фильтра DSPAM. Это всего попытка рассказать о том способе взаимодействия между программами, который понравился автору. В частности, делался упор на обработку писем, обучение и корректировку словаря только средствами почтовой системы. В данной схеме нет необходимости использовать DSPAM CGI или подобные средствами требующими web-сервер. Почтовая система установлена на FreeBSD 5.4 и использованы следующие компоненты: 1) МТА - Postfix 2.2.7 2) DSPAM 3.4.8 3) Mysql 5.0.16 4) LDA - Maildrop 1.8 5) Courier-authlib 0.58 (сюда же входят courier-authlib-base 0.58, courier-authlib-mysql 0.58) 6) Courier-IMAP 4.0.6 7) p5-DBI-1.49 (p5-DBD-mysql50-3.0002) (здесь конечно же перечислены не все компоненты, но этого достаточно для понимания функционирования моей схемы) На момент начала интеграции вы должны иметь установленную почтовую систему, или установить её со следующими условиями: 1) Пофигс должен быть собран с поддержкой виртуальных пользователей, backend - mysql. Помимо этого, скрипт LDA рассчитан на то, что у нас есть поддержка индивидуальных квот (корзина не учитывается), формат ящиков - maildir (путь складывается из каталога с ящиками + имя пользователя + maildir/), список папок: INBOX. Outbox Sent Trash Инструкция предусматривает многодоменность. Пользователей хранить в таблице, как имя@домен. 2) В mysql создана база и все необходимые таблицы для функционирования почтовой системы. Создан пользователь имеющий доступ к этим таблицам. 3) В качестве IMAP/POP3 сервера я использую Courier-IMAP это и послушило причиной сборки LDA maildrop с использованием Courier-authlib. Вы можете использовать всё что угодно и тогда можно включить доступ из maildrop к таблицам mysql другими средствами. 1. Mysql Предполагается, что данная СУБД уже установлена. В ней создана база postfix, и в ней таблица mailbox следующей структуры: +----------+--------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------------------+-------+ | username | varchar(255) | NO | PRI | | | | password | varchar(255) | NO | | | | | name | varchar(255) | YES | | NULL | | | maildir | varchar(255) | NO | | | | | quota | int(10) | NO | | 0 | | | domain | varchar(255) | NO | | | | | created | datetime | NO | | 0000-00-00 00:00:00 | | | modified | datetime | NO | | 0000-00-00 00:00:00 | | | active | tinyint(1) | NO | | 1 | | | dspam | tinyint(1) | NO | | 0 | | +----------+--------------+------+-----+---------------------+-------+ 2. Courier-Authlib # cd /usr/ports/security/courier-authlib # make config (выбираем в появившемся меню: AUTH_MYSQL) # make install Идём в /usr/local/etc/authlib и правим файлы authdaemonrc и authmysqlrc, вид их должен быть примерно следующий: # more authdaemonrc authmodulelist="authmysql" authmodulelistorig="authmysql" daemons=5 subsystem=mail authdaemonvar=/var/run/authdaemon DEBUG_LOGIN=2 DEFAULTOPTIONS="wbnodsn=1" # more authmysqlrc MYSQL_SERVER место_где_живёт_mysql MYSQL_USERNAME имя_пользователя MYSQL_PASSWORD секретный_пароль MYSQL_SOCKET сокет MYSQL_PORT порт (обычно 3306) MYSQL_OPT 0 MYSQL_DATABASE postfix MYSQL_USER_TABLE mailbox MYSQL_CLEAR_PWFIELD password DEFAULT_DOMAIN ваш_домен_по_умолчанию (хотя, для maildrop это необязательно) MYSQL_UID_FIELD владелец_файлов_в_почтовом_каталоге (у меня здесь postfix или 125) MYSQL_GID_FIELD группа_владелец_файлов_в_почтовом_каталоге (то же самое) MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD почтовый_каталог (например, '/mailboxes/') MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD maildir MYSQL_QUOTA_FIELD quota MYSQL_WHERE_CLAUSE active='1' Далее идём в /usr/local/etc/rc.d и делаем # ./courier-authdaemond.sh start 3. Maildrop Шагаем в /usr/ports/mail/maildrop и компилим # make WITH_AUTHLIB=yes MAILDROP_TRUSTED_USERS=courier # cd /usr/local/bin # chown postfix:mail maildrop # chmod u+s maildrop Сочиняем maildrop скрипт, должно быть так: # more /usr/local/etc/maildroprc SHELL="/bin/sh" SENDER=$1 `test -d $HOME$DEFAULT` if ($RETURNCODE!=0) { `mkdir -p -m 0700 $HOME$DEFAULT` `mkdir -m 0700 $HOME$DEFAULT/cur` `mkdir -m 0700 $HOME$DEFAULT/new` `mkdir -m 0700 $HOME$DEFAULT/tmp` } QUOTA="$MAILDIRQUOTA"'S' `maildirmake -q $QUOTA $HOME$DEFAULT` if ($LOGNAME ne "spam@ваш_домен" && $LOGNAME ne "nospam@ваш_домен") { DSPAM=`/usr/local/etc/spam $LOGNAME` if ($DSPAM eq "1" && $SIZE < 2048000) { xfilter "/usr/local/bin/dspam --user $LOGNAME --stdout --process --deliver=innocent,spam" if (/^X-DSPAM-Result: Spam/) { `test -d $HOME$DEFAULT/.Trash` if ($RETURNCODE!=0) { `/usr/local/bin/maildirmake $HOME$DEFAULT/.Trash` } to "$HOME$DEFAULT/.Trash" } else { to "$HOME$DEFAULT" } } else { to "$HOME$DEFAULT" } } if ($LOGNAME eq "spam@ваш_домен") { DSPAM=`/usr/local/etc/spam $SENDER` if ($DSPAM eq "1" && $SIZE < 2048000) { xfilter "/usr/local/bin/dspam --user $SENDER --class=spam --source=error" } } if ($LOGNAME eq "nospam@ваш_домен") { DSPAM=`/usr/local/etc/spam $SENDER` if ($DSPAM eq "1" && $SIZE < 2048000) { xfilter "/usr/local/bin/dspam --user $SENDER --class=innocent --source=error" } } 4. DBI # cd /usr/ports/databases/p5-DBI # make install # cd ../p5-DBD-mysql50 # make install Пишем скрипт, позволяющий проверить нужна ли пользователю фильтрация. Он должен быть такого вида: # more spam #!/usr/bin/perl use DBI; my $mysql_host = "где_живёт mysql"; my $mysql_db = "postfix"; my $mysql_user = "postfix"; my $mysql_pw = "ваш_пароль"; my $dbh = DBI->connect("DBI:mysql:$mysql_db:$mysql_host","$mysql_user","$mysql_pw", {RaiseError=> 0, PrintError => 0} ) or err_trap("Connection Error\n"); if ($ARGV[0] ne "") { $query = "SELECT dspam FROM mailbox WHERE username='$ARGV[0]'"; $qresult = $dbh->prepare($query); $qresult->execute() or die "Can't execute $query: " . $dbh->errstr . "\n"; if ($qresult->rows() ne "0") { $dspam = $qresult->fetchrow_array(); print "$dspam"; } else { print "9"; } $qresult->finish(); } else { print "9"; } $dbh->disconnect(); 5. Пофигс Я интегрировал DSPAM уже в существующую систему, с настроенными main.cf и master.cf, поэтому я не буду останавливаться на настройке MTA (это тема другой инструкции). Для успешной работы системы вам надо изменить параметр в main.cf: virtual_transport = maildrop И подправить master.cf таким образом: maildrop unix - n n - - pipe flags=DRhu user=courier argv=/usr/local/bin/maildrop -w 90 -d ${recipient} ${sender} 6. DSPAM Теперь пришёл тот самый ответственный момент, которого каждый человек ждёт всю свою жизнь :) # cd /usr/ports/mail/dspam # make config (оставляем крыжики: DEBUG, PREF_EXT, GRAHAM_BAYES, BURTON_BAYES, RPV, TEST_COND, TRUSTED_USERS, MYSQL50, VIRT_USERS, DOMAIN_SCALE, MAILDROP_LDA) # make install # chown root:courier /usr/local/bin/dspam # cd /usr/local/etc # cp dspam.conf.sample dspam.conf Меняем следующие параметры в dspam.conf... Доверенные пользователи: Trust root Trust mail Trust courier Свойства: Feature noise Feature chained Feature tb=5 Feature whitelist СУБД: MySQLServer место_где_живёт_сокет_mysql MySQLPort или_можно_порт указать MySQLUser dspam MySQLPass свой_суперсекретный_пароль ) MySQLDb dspam Notifications off (я не хочу чтобы DSPAM отсылал всякие там письма моим пользователям) SystemLog off (и статистику я тоже не хочу собирать) UserLog off Вытаскиваем из дистрибутива каталог tools.mysql.drv, делаем жутко хитрые манипуляции: # mysqladmin -uroot -p create dspam # mysql -uroot -p dspam < tools.mysql.drv/mysql_objects-4.1.sql # mysql -uroot -p dspam < tools.mysql.drv/virtual_users.sql # mysql -uroot -p dspam mysql> grant all on dspam.* to dspam@localhost identified by 'свой_суперсекретный_пароль'; mysql> exit Впихиваем в /etc/crontab строку 1 1 * * * nobody /usr/local/bin/mysql -udspam \ -pсвой_суперсекретный_пароль dspam < tools.mysql.drv/purge-4.1.sql (ваш путь к файлу очистки базы может отличаться от этого) 7. Пробуем отправить письмо на какой-нибудь свой почтовый ящик (не забываем поставить dspam = 1) После того, как проверили результаты работы, делаем один из следующих вариантов (можно выбрать несколько): а) ...довольные результатом своей работы идём к своей девушке, жене (не всё же время с серверами сексом заниматься) б) ...пьём пиво (и рыбу не забудьте купить..., можно заранее) в) ...читаем инструкцию ещё раз, потом читаем маны и ищем свои ошибки г) ...находим мои ошибки и пишем мне гневное письмо д) ...читаем текст дальше Плюсы такой схемы: а) нет необходимости использовать cgi, все манипуляции делаются почтовой системой (IMAP + The Bat рулят) б) индивидуальные словари для каждого пользователя в) высокая степеть эффективности (99% отсеивание спама начиналось после отправки 5-7 писем на spam@) Минус: При большом количестве пользователей, DSPAM'у необходимо хранить очень большие объёмы информации (примерно по 1Мб на каждого пользователя, и это лишь только начало :) Быстро достаём калькуляторы и считаем какого размера получаются базы (особо умные могут считать в уме!). У меня, например, щас 2,5 тыс. пользователей, хотя спам-фильтром пользуются не все. Послесловие: 1. От минуса можно избавиться, например включив поддержку сжатия баз при компиляции DSPAM'а, или в ущерб индивидуальности сделать один общий словарь. Ещё как вариант, если вы не параноидальный извращенец, как я, можно включить метод обучения toe, базы станут меньше, но и эффективность фильтра меньше. Можно пойти совсем другим способом - поставить Postgresql или Oracle и радоваться. Я как раз выбрал последний вариант, проблема ведь не в дисковом пространстве, а больше, в неформальных ограничениях на размер mysql базы. 2. Писал я эту инструкцию по памяти + во время работы сервера переходил от транспорта virtual к maildrop (не один из пользователей при работах не пострадал :) поэтому, в некоторых местах получилось немного криво, но тем не менее работает эффективно. Сразу прошу не пинать меня, если у вас что-то не заработает или не состыкуется при применении этой инструкции, можете писать мне на email: [email protected] или попытаться найти меня в IRC, сеть RUSNET, канал #tfug (ник: Dezzs) 3. В инструкции не затрагиваются аспекты безопасности. Так же вырезаны "проверки" из скриптов. 4. Если какие-то печатные издания, типа "Системного администратора" захотят со мной сотрудничать, могу расширить инструкцию, дополнить её скриншотами. Могу так же написать статьи на другие темы (c сохранением моего авторства), что-нибудь типа "Безопасное почтовое ядро выполненное на free-ПО для почтовой системы", "Анализ и выбор посредника для MTA Postfix и антивируса ClamAV", "Подробное описание DSPAM", могу что-нибудь на тему безопасности Apache написать... вообщем, приглашаю к сотрудничеству.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Vic (??), 22:43, 03/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Опечатка в названии пятого пункта "Пофигс"
     
  • 1.2, Den (??), 23:09, 03/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У тебя наверное с юмором туго и тебе кажеться что там ошибка :)
     
     
  • 2.3, Vic (??), 23:51, 03/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    может тогда и в параметрах всяких будем шутить?
    и потом удивляться, что новички не могут понять о чем речь идет....
     
     
  • 3.5, Dezz (??), 12:39, 04/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Я не удивляюсь, что новички не могут понять о чём речь...:) и дело даже не шутках...
     

  • 1.4, Dezz (??), 09:17, 04/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Блин, нашёл у себя ошибку...
    Нужно сделать:
    chown root:courier /usr/local/bin/dspam
    иначе DSPAM откажется запускаться
     
  • 1.6, Niks (??), 17:28, 04/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    изящно, мне понравилось
    Eugene, выкладывай свои остальные тексты
     
  • 1.7, Algor (??), 08:20, 06/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    написал бы подробно про дспам
     
  • 1.8, dvg_lab (??), 23:13, 06/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а чем maildrop лучше virtual? ато как раз сейчас подобный сервачок ставлю, может сразу maildrop заюзать
     
     
  • 2.9, Dezz (??), 05:30, 07/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Лично я не нашёл возможности в virtual сделать так, чтобы некоторые письма  по каким-то условиям клались не в maildir/ а например сразу в maildir/.trash или в maildir/.spam, maildrop позволяет скриптом обработать письмо, отправить его на фильтры, вернуть и засунуть в любое место )
     

  • 1.10, ALex_hha (??), 10:09, 07/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Пофигс должен быть собран с поддержкой виртуальных > пользователей
    это что то новое :). Вы хоть сами поняли чего написали?
     
     
  • 2.11, Dezz (??), 17:53, 07/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    точно, затупил ) имелось ввиду с с патчем VDA, индивидуальные квоты
     

  • 1.12, kot (??), 18:55, 07/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    от меня скрыт смысл написания заведомо неправильной статьи...
    sub err_trap трудно оставить что-ли было?
    а целый пласт проблем при испольовании clamsmtpd вообще скрыт за заявлением "у меня есть проверка на вирусы, но ее я вам тут не напишу"
    уж лучше перед девушкой такой статьей выделываться, а не на публичном ресурсее размещать
     
     
  • 2.13, Dezz (??), 19:31, 07/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    О чём вы?
    Тема статьи Postfix + Maildrop + DSPAM. Связка работает, не требует дополнительных программ. С чего вы взяли что она заведомо неправильная? Вы пробовали сделать как написано в инструкции?
    Про ClamSmtpd вообще не в тему, это всего лишь связка между ClamAV и МТА, если уж на то пошло, то таких связок много: clamfilter, clamassasin, clamsmtpd, dspampd наконец. С чего вам в голову свалился именно clamsmtpd объясните? Или вы просто не понимаете о чём говорите? )

    Какой целый пласт? Вы читали инструкцию? Цель видели? Во всех текстах на dspam wiki описан процесс интеграции с MTA и корректировка фильтра через DSPAM CGI. Мне этот подход не понравился, я пришёл к другому и поделился со всеми этим подходом.

    "у меня есть проверка на вирусы, но ее я вам тут не напишу" - где вы такое  видели? Я объяснил, что это не тема инструкции. Давайте меня ещё обвиним в том что я не описал squid, настройки ядра linux'а не расписал или ещё чего-нибудь....лично я же не виноват, что у вас пласт проблем при использовании "clamsmtpd"...чём меня в этом обвинять ) я не ващ личный консультант по всем вопросам open-source )

    "уж лучше перед девушкой такой статьей выделываться, а не на публичном ресурсее размещать"....как выделываться?) Ко мне обратилось уже несколько человек на email, которым эта инструкция помогла. Если вам что-то конкретно не понятно - спрашивайте, никто не будет упрекать вас ни в чём.

     

  • 1.14, kot (??), 09:52, 08/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    чего вы так заводитесь? по-моему критика наоборот полезна :)
    лично мне эта статья без надобности, асассин пока что всем удовлетворяет, но для новичков, на которых расчитана эта статья, слишком сложно написано имхо.
    до кучи - сама схема вызова dspam из maildroprc при получении каждого письма по-моему порочна, не проще ли его задемонизировать и фильтровать почту на уровне трансторта МТА?
     
     
  • 2.15, Dezz (??), 10:22, 08/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    скажу, что статья эта скорее не для новичков )

    а вообще, согласен, что для получения каждого письма вызывать доп. программу это немного неудачно, но ведь многие используют и procmail и maildrop, тут скорее вариантов других нет...нужно же спам-письмо в специализированную папку положить (внутри maildir'а), а как вы на уровне МТА это сделаете?
    я не говорю, что схема идеальна на 100%, это всего лишь мой вариант

     
  • 2.16, Dezz (??), 10:44, 08/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    и вообще, критика полезна, только когда она по делу...при написании инструкции я поставил чёткие цели, и их выполнил...
    а про clamsmtp речь вообще не велась, если уж на то пошло
     

  • 1.17, kot (??), 10:33, 09/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    насчет clamsmtp замечание было следующим - почему-то при испеользовании на тестовой машине maildroprc'шная переменная $SENDER не инициализировалась, пришлось ручками выцарапывать.

    и второй принципиальный вопрос - далеко не все пользователи могут (и хотят) перехойдить на имап...

     
     
  • 2.18, Dezz (??), 11:15, 09/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    должно всё выцарапываться нормально, если вы не забыли подкорректировать master.cf таким образом:
    maildrop  unix  -       n       n       -       -       pipe
              flags=DRhu user=courier argv=/usr/local/bin/maildrop -w 90 -d ${recipient} ${sender}

    (в инструкции это отмечено)

    хотя, опять не понял, как clamsmtp сюда относится )))

    ClamSMTP is an SMTP filter that allows you to check for viruses using
    the ClamAV anti-virus software. It accepts SMTP connections and forwards
    the SMTP commands and responses to another SMTP server.
    (это цитата из фряшных портов, да и помоему я нигде про clamsmtp ничё не говорил)
    Если же вы пытаетесь интегрировать проверку писем на вирусы можете воспользоваться командой xfilter, которая бы переправляла письмо на какой-то скрипт (пусть письмо проверяется и ворачивается на stdin) . На мой взгляд clamsmtp был бы лишнем в этой схеме.

    Ну, для тех кто не хочет пользоваться протоколом IMAP я бы предложил такие варианты:
    1. Использовать утилиту formail в скрипте и после прохождения спам-фильтра, в случае "spam" править заголовок, чтобы пользователь знал что это спам и просто удалял письмо без прочтения.
    2. Принудительно заставлять ходить, например через веб-интерфейс для просмотра корзины (у моих пользователей письма давности более недели удаляются из корзины автоматом)
    3. Сделать возможность включения/выключения спам-фильтра, и те кто не хочет пользоваться IMAP'ом, не пользуются спам фильтром )

     

  • 1.19, dvg_lab (??), 17:38, 16/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что если применить следующую схему, пофигс отдает мыло не напрямую в maildrop, а демону dspam который в свою очередь дописывает X-DSPAM- поле и после отдает в maildrop который уже в maildroprc решает куда доставить данное мыло... либо это должно работать и работать быстрее чем вызов /usr/local/bin/dspam на каждое письмо либо тут есть засада... завтра сам буду это все пробовать, пока что настроил все остальное.

    У меня следующий софт фря 6.0,
    postfix 2.2.8
    Cyrus-SASL2
    Courier-Authlib 0.58
    Courier-Imap 4.0.6
    maildrop 2.0.1
    OpenSSL 0.9.7i
    OpenLDAP 2.3.11

    Интересно заинтересует ли кого-то еси оформить это в виде статьи, граблей по ходу уже наелся много, целую неделю сижу ковыряюсь :)
    сейчас осталось антиспам и антивирь натравить и можно сказать система готова.

     
     
  • 2.20, Dezz (??), 22:12, 17/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >А что если применить следующую схему, пофигс отдает мыло не напрямую в
    >maildrop, а демону dspam который в свою очередь дописывает X-DSPAM- поле
    >и после отдает в maildrop который уже в maildroprc решает куда
    >доставить данное мыло...
    тут будет небольшая проблема, ведь существует три варианта прохождения письма через dspam:
    1. Письмо идёт к конечному пользователю
    2. Письмо идёт в ящик spam (кореектировка обучения)
    3. Письмо идёт в ящик nospam (корректировка обучения)
    и я так понимаю, во всех трёх вариантах мы должны как-то говорить dspam'у что нужно сделать с письмом... в своей схеме я решаю это в maildroprc и запускаю dspam с соответствующими параметрами, а как в вашем варианте это можно реализовать?

    >либо это должно работать и работать быстрее чем
    >вызов /usr/local/bin/dspam на каждое письмо либо тут есть засада... завтра сам
    >буду это все пробовать, пока что настроил все остальное.
    >
    >У меня следующий софт фря 6.0,
    >postfix 2.2.8
    >Cyrus-SASL2
    >Courier-Authlib 0.58
    >Courier-Imap 4.0.6
    >maildrop 2.0.1
    >OpenSSL 0.9.7i
    >OpenLDAP 2.3.11
    >
    а где вы будете словари dspam'a хранить?

    >Интересно заинтересует ли кого-то еси оформить это в виде статьи, граблей по
    >ходу уже наелся много, целую неделю сижу ковыряюсь :)
    я тоде наверно с неделю ковырялся )

    >сейчас осталось антиспам и антивирь натравить и можно сказать система готова.

    p.s. а вообще идея хорошая, если добъётесь повышения производительности, то многие вам спасибо скажут

     
     
  • 3.21, dvg_lab (??), 09:56, 22/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >тут будет небольшая проблема, ведь существует три варианта прохождения письма через dspam:

    >1. Письмо идёт к конечному пользователю
    Для моего случая этого не требуется.

    >2. Письмо идёт в ящик spam (кореектировка обучения)
    >3. Письмо идёт в ящик nospam (корректировка обучения)
    А вот над этими пунктами придется подумать... Мне нужно чтобы весь спам сыпался сразу в .Thrash а уже оттуда юзер могу кинуть либо на nospam либо из Inbox на spam... это надо обмозговать но думаю что решаемо...

    >и я так понимаю, во всех трёх вариантах мы должны как-то говорить
    >dspam'у что нужно сделать с письмом... в своей схеме я решаю
    >это в maildroprc и запускаю dspam с соответствующими параметрами, а как
    >в вашем варианте это можно реализовать?
    Первый день вышел на работу вот седня если дадут буду думать на этот счет...

    >а где вы будете словари dspam'a хранить?
    Конечно же мускул который я упустил из виду... он у меня уже стоит правда 4.0 версии что не рекомендуется в доке...

    >>сейчас осталось антиспам и антивирь натравить и можно сказать система готова.
    >p.s. а вообще идея хорошая, если добъётесь повышения производительности, то многие вам
    >спасибо скажут
    Хлам уже натравил, осталось со спамом разобраться... ну да попробую... о результатах напишу.

     
  • 3.22, dvg_lab (??), 12:14, 26/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >>А что если применить следующую схему, пофигс отдает мыло не напрямую в
    >>maildrop, а демону dspam который в свою очередь дописывает X-DSPAM- поле
    >>и после отдает в maildrop который уже в maildroprc решает куда
    >>доставить данное мыло...
    >тут будет небольшая проблема, ведь существует три варианта прохождения письма через dspam:
    >
    >1. Письмо идёт к конечному пользователю
    >2. Письмо идёт в ящик spam (кореектировка обучения)
    >3. Письмо идёт в ящик nospam (корректировка обучения)
    >и я так понимаю, во всех трёх вариантах мы должны как-то говорить
    >dspam'у что нужно сделать с письмом... в своей схеме я решаю
    >это в maildroprc и запускаю dspam с соответствующими параметрами, а как
    >в вашем варианте это можно реализовать?

    Еще раз перечитал ридмишку от dspam и нашел там такую замечательную весчь как запуск dspam в режиме демона с подключением клиента dspamc через сокет
    -----------------------
    if using a domain socket:

            ClientHost     /tmp/dspam.sock

    [...]

    The DSPAM agent can then be called the same as if you were running in
      standard (non-client/server) mode and adding --client to the set of
      parameters.
    ------------------------

    таким образом postfix отдает мыло в maildrop тот через stdout отдает в maildrop, который в свою очередь через сокет разговаривает с демоном, и обратно через сокет и stdout отдает мыло в maildrop... схема остается твоя же, только dspam переводится в режим клиент/сервер... кажется так гораздо кузявее ибо maildroprc дает гораздо более широкий простор для манипуляций нежели использование dspam в качетсве прокси LDA...

    По скорости и гибкости данная схема кажется оптимальной.

     
     
  • 4.23, dvg_lab (??), 12:21, 26/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    ошибочка вышла, сорю
    следует читать

    ...
    таким образом postfix отдает мыло в maildrop тот через stdout отдает в
    _dspamc_, который в свою очередь через сокет разговаривает с демоном,

     

  • 1.24, qwerty (??), 12:03, 28/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    шаг номер 3
    строка # make WITH_AUTHLIB=yes MAILDROP_TRUSTED_USERS=courier

    отсуствует сосбвенно сам install ;)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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