* [Sysadmins] dspam & postfix & mysql @ 2007-01-22 14:41 Шенцев Алексей Владимирович 2007-01-23 7:43 ` Eugene Prokopiev 0 siblings, 2 replies; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-22 14:41 UTC (permalink / raw) To: sysadmins Кто-нибудь настраивал сабж? Можете рассказать как и что у вас сделано? -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <45B4CF47.1070002@sipay.ru>]
* Re: [Sysadmins] dspam & postfix & mysql @ 2007-01-22 17:04 ` Grigory Fateyev 2007-01-22 23:58 ` altlinux 2007-01-22 23:04 ` Sergey V Kovalyov 1 sibling, 1 reply; 12+ messages in thread From: Grigory Fateyev @ 2007-01-22 17:04 UTC (permalink / raw) To: sysadmins Hello altlinux@sipay.ru! On Mon, 22 Jan 2007 19:50:47 +0500 you wrote: > Могу поделится exim+greylist+dspam. > К postfix у меня давняя неприязнь. > было бы здорово! -- Всего наилучшего! Григорий greg [at] anastasia [dot] ru Письмо отправлено: 2007/01/22 20:04 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-22 17:04 ` Grigory Fateyev @ 2007-01-22 23:58 ` altlinux 2007-01-23 6:05 ` Шенцев Алексей Владимирович 0 siblings, 1 reply; 12+ messages in thread From: altlinux @ 2007-01-22 23:58 UTC (permalink / raw) To: ALT Linux sysadmin discuss Grigory Fateyev пишет: > было бы здорово! > > Начал было описывать про DSPAM , но вспомнил про замечательный мануал http://www.lissyara.su/?id=1301. Все что нажно это установку из портов заменить на apt. Ну и несколько пути поправить. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-22 23:58 ` altlinux @ 2007-01-23 6:05 ` Шенцев Алексей Владимирович 0 siblings, 0 replies; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-23 6:05 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Вторник 23 января 2007 02:58 altlinux@sipay.ru написал(a): > Начал было описывать про DSPAM , но вспомнил про замечательный мануал > http://www.lissyara.su/?id=1301. > Все что нажно это установку из портов заменить на apt. Ну и несколько > пути поправить. Благодарю, это я читал и многое другое. Тем более мне нужго описание взаимодействия dspam с postfix, а не с exim. А статья великолепна, спору нет. -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-22 17:04 ` Grigory Fateyev @ 2007-01-22 23:04 ` Sergey V Kovalyov 1 sibling, 0 replies; 12+ messages in thread From: Sergey V Kovalyov @ 2007-01-22 23:04 UTC (permalink / raw) To: ALT Linux sysadmin discuss On Mon, Jan 22, 2007 at 07:50:47PM +0500, altlinux@sipay.ru wrote: > Могу поделится exim+greylist+dspam. > К postfix у меня давняя неприязнь. Чем обусловленна неприязнь? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-22 14:41 [Sysadmins] dspam & postfix & mysql Шенцев Алексей Владимирович @ 2007-01-23 7:43 ` Eugene Prokopiev 2007-01-23 8:13 ` Шенцев Алексей Владимирович 1 sibling, 1 reply; 12+ messages in thread From: Eugene Prokopiev @ 2007-01-23 7:43 UTC (permalink / raw) To: ALT Linux sysadmin discuss [-- Attachment #1: Type: text/plain, Size: 1181 bytes --] Шенцев Алексей Владимирович пишет: > Кто-нибудь настраивал сабж? Можете рассказать как и что у вас сделано? Правильный путь : postfix -> dspam -> dbmail-lmtp, обмен по lmtp. В 2.0 это не работало, а делать testcase и писать багрепорт было лень (сейчас осознаю, что был неправ), поэтому сделал : postfix -> dspam -> postfix -> dbmail-lmtp. Первые три компонента описаны везде, в т.ч., наверное, и в родной документации dspam, настройка dbmail-lmtpd такая же, как если бы dspam и не было. Ну еще можно связать их через pipe, но в случае dbmail эта мысль не самая удачная ;) Обработка спама: пользователь складывает в папку spam все, что считает таковым, скрипт (в аттаче - под 2.2 придется переписывать из-за изменений в структуре таблиц) выгребает из этой папки и обучает dspam. Нужно еще сделать аналогичную обработку для неспама, чтобы увеличить точность, но руки не доходят. dspam в сизифе заброшен, даже в backports к 2.4 он выглядит чуть-чуть приличнее - хорошо бы, чтоб его подобрал кто-нибудь более заинтересованный, ты например :) Кстати, как там со сборкой и опакечиванием web-морды к dbmail? -- С уважением, Прокопьев Евгений [-- Attachment #2: dspam-learn.py --] [-- Type: text/plain, Size: 4500 bytes --] #!/usr/bin/python # Copyright (C) 2006 Eugene Prokopiev <enp at altlinux dot org> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import sys, os, getopt, email.Parser, re def export(connection): parser = email.Parser.Parser() from_extractor = re.compile(r"[<>]") cursor_mailboxes = connection.cursor() cursor_messages = connection.cursor() cursor_messageblks = connection.cursor() cursor_modify = connection.cursor() sql_mailboxes = """select distinct alias from dbmail_aliases """ # alter table dbmail_messages add dspam_flag smallint not null default 0::smallint; sql_messages = """select message_idnr, internal_date from dbmail_aliases inner join dbmail_users on dbmail_aliases.deliver_to = dbmail_users.user_idnr inner join dbmail_mailboxes on dbmail_users.user_idnr = dbmail_mailboxes.owner_idnr inner join dbmail_messages on dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr inner join dbmail_physmessage on dbmail_messages.physmessage_id = dbmail_physmessage.id where dbmail_messages.dspam_flag=0 and dbmail_messages.status < 2 and dbmail_mailboxes.name = 'Spam' and dbmail_aliases.alias = %s order by message_idnr """ sql_messageblks = """ select messageblk, is_header from dbmail_messageblks inner join dbmail_messages on dbmail_messageblks.physmessage_id = dbmail_messages.physmessage_id where message_idnr = %s order by dbmail_messageblks.messageblk_idnr """ cursor_mailboxes.execute(sql_mailboxes) for alias in cursor_mailboxes.fetchall(): print "Processing mailbox %s ..." % ("%s" % alias) count = 0 cursor_messages.execute(sql_messages, alias) for message_idnr, internal_date in cursor_messages.fetchall(): count = count + 1 dspam = os.popen(("/usr/bin/dspam --class=spam --source=error --user '%s' --mode=teft --feature=chained,noise" % alias), "w") cursor_messageblks.execute(sql_messageblks, (message_idnr,)) for messageblk, is_header in cursor_messageblks.fetchall(): if (is_header == 1): from_header = from_extractor.split(parser.parsestr(messageblk).get("From")) if (len(from_header) == 1): from_header = from_header[0] elif (len(from_header) == 3): from_header = from_header[1] else: from_header = "-" print "Processing message from %s ..." % from_header dspam.write("From "+from_header+" "+internal_date.strftime()+"\n") dspam.write(messageblk+"\n") dspam.close() print "Processed mailbox %s with %s spam messages\n" % (("%s" % alias), count) cursor_modify.execute("update dbmail_messages set dspam_flag=1 where dspam_flag=0") def usage(): usage_text = """ dspam-learn - DBMail Spam mailboxes -> mbox -> DSPAM arguments: -h|--help - show this text -t|--type - database driver type -s|--server - server where DBMail database installed -d|--database - DBMail database name -l|--login - login to database -p|--password - password to database """ print usage_text def main(argv): type = "psycopg" server = "localhost" database = "dbmail" login = "dbmail" password = "dbmailpwd" try: opts, args = getopt.getopt(argv, "ht:s:d:l:p:", ["help", "type=", "server=", "database=", "login=", "password="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-t", "--type"): type = arg elif opt in ("-s", "--server"): server = arg elif opt in ("-d", "--database"): database = arg elif opt in ("-l", "--login"): login = arg elif opt in ("-p", "--password"): password = arg exec "import "+type+" as db" connection = db.connect("host="+server+" dbname="+database+" user="+login+" password="+password) connection.set_isolation_level(1); export(connection) connection.commit() if __name__ == "__main__": main(sys.argv[1:]) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 7:43 ` Eugene Prokopiev @ 2007-01-23 8:13 ` Шенцев Алексей Владимирович 2007-01-23 10:50 ` Eugene Prokopiev 0 siblings, 1 reply; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-23 8:13 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Вторник 23 января 2007 10:43 Eugene Prokopiev написал(a): > Правильный путь : postfix -> dspam -> dbmail-lmtp, обмен по lmtp. Пока нужно без dbmail'а. spamassassin работает, но пропускает достаточно спама, хотя большую часть спама отсекает. Хотел каскадом прикрутить ещё и dspam. Но пока получается колом поставить почтовик ... ;) > В 2.0 это не работало, а делать testcase и писать багрепорт было лень > (сейчас > осознаю, что был неправ), поэтому сделал : postfix -> dspam -> postfix > -> dbmail-lmtp. Первые три компонента описаны везде, в т.ч., наверное, и > в родной документации dspam, Ага, описаны. Скупо и везде по разному. Да и количество описаний очень и очень мало, по сравнению с другими. > настройка dbmail-lmtpd такая же, как если бы dspam и не было. Сиё ведомо. > Ну еще можно связать их через pipe, но в случае dbmail эта мысль не > самая удачная ;) И без dbmail'а то же мне не нравится ... > Обработка спама: пользователь складывает в папку spam все, что считает > таковым, скрипт (в аттаче - под 2.2 придется переписывать из-за > изменений в структуре таблиц) выгребает из этой папки и обучает dspam. > Нужно еще сделать аналогичную обработку для неспама, чтобы увеличить > точность, но руки не доходят. А другого пути не видишь? > dspam в сизифе заброшен, даже в backports к 2.4 он выглядит чуть-чуть > приличнее Ну его подобрал eostapets@ из orphaned как есть, исправил только --as--needed, но ... Я сильно перематерился когда увидел что изначально у нас в пакете dspam (это сделано ещё до eostapets@) отсутствует 1) вэб-морда к dspam, 2) документация, а именно: courier.txt exim.txt markov.txt mysql_drv.txt ora_drv.txt osx.txt pgsql_drv.txt pop3filter.txt postfix.txt qmail.txt relay.txt sendmail.txt sqlite_drv.txt 3) нет ни одного sql-запроса для создания БД под различные SQL-сервера, чему я сильно удивлён. Глупый вопрос: нафиг тогда нужен dspam, без своих скриптов к sql-серверам? Одно дело создание БД, но ведь у него ещё есть скрипты для очистик БД от излишних данных и черезмерного разрастания БД ... > - хорошо бы, чтоб его подобрал кто-нибудь более заинтересованный, > ты например :) Может и подобрал бы, но eostapet@ так и не ответил, будет он его сопровождать дальше или нет .. > Кстати, как там со сборкой и опакечиванием web-морды к dbmail? Пока ни как. Но это пока. -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 8:13 ` Шенцев Алексей Владимирович @ 2007-01-23 10:50 ` Eugene Prokopiev 2007-01-23 11:09 ` Шенцев Алексей Владимирович 2007-01-23 11:23 ` Шенцев Алексей Владимирович 0 siblings, 2 replies; 12+ messages in thread From: Eugene Prokopiev @ 2007-01-23 10:50 UTC (permalink / raw) To: ALT Linux sysadmin discuss >> postfix -> dspam -> postfix >>-> dbmail-lmtp. Первые три компонента описаны везде, в т.ч., наверное, и >>в родной документации dspam, > > > Ага, описаны. Скупо и везде по разному. Да и количество описаний очень и очень > мало, по сравнению с другими. /usr/share/doc/dspam-3.6.3/doc/postfix.txt >>Обработка спама: пользователь складывает в папку spam все, что считает >>таковым, скрипт (в аттаче - под 2.2 придется переписывать из-за >>изменений в структуре таблиц) выгребает из этой папки и обучает dspam. >>Нужно еще сделать аналогичную обработку для неспама, чтобы увеличить >>точность, но руки не доходят. > > > А другого пути не видишь? Тебе не нравится pipe? Ну во-первых, это значительно более редкая операция, чем доставка сообщений, а во-вторых, логика обучения в dspam - это код на С, СУБД - всего лишь хранилище. Т.е., обучать, не выходя за пределы СУБД (это и вправду было бы красиво), не выйдет, разве только придумать, как этот код прикрутить к СУБД в виде функции/процедуры - если у dspam есть вменяемый api, а консольные утилиты всего лишь морда к нему, то принципиальных проблем быть не должно... Хотя нет, то, что dspam использует СУБД, в этом случае может стать проблемой ;) >>dspam в сизифе заброшен, даже в backports к 2.4 он выглядит чуть-чуть >>приличнее > > Ну его подобрал eostapets@ из orphaned как есть, исправил только --as--needed, > но ... Я сильно перематерился когда увидел что изначально у нас в пакете > dspam (это сделано ещё до eostapets@) отсутствует 1) вэб-морда к dspam, этого и я в backports к 2.4 не делал > 2) > документация, а именно: > courier.txt > exim.txt > markov.txt > mysql_drv.txt > ora_drv.txt > osx.txt > pgsql_drv.txt > pop3filter.txt > postfix.txt > qmail.txt > relay.txt > sendmail.txt > sqlite_drv.txt это у меня разложено приличнее > 3) нет ни одного sql-запроса для создания БД под различные SQL-сервера, чему я > сильно удивлён. Глупый вопрос: нафиг тогда нужен dspam, без своих скриптов к > sql-серверам? Одно дело создание БД, но ведь у него ещё есть скрипты для > очистик БД от излишних данных и черезмерного разрастания БД ... это тоже есть + у меня есть не очень правильный init-скрипт ;) все это в backports к 2.4 я отсылал все первому мантейнеру dspam, поскольку тогда сизифом совсем не интересовался, но у него, похоже, так и не дошли руки все это сделать -- С уважением, Прокопьев Евгений ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 10:50 ` Eugene Prokopiev @ 2007-01-23 11:09 ` Шенцев Алексей Владимирович 2007-01-23 11:28 ` Eugene Prokopiev 2007-01-23 11:23 ` Шенцев Алексей Владимирович 1 sibling, 1 reply; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-23 11:09 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Вторник 23 января 2007 13:50 Eugene Prokopiev написал(a): > Тебе не нравится pipe? Ну во-первых, это значительно более редкая > операция, чем доставка сообщений, а во-вторых, логика обучения в dspam - > это код на С, СУБД - всего лишь хранилище. Т.е., обучать, не выходя за > пределы СУБД (это и вправду было бы красиво), не выйдет, разве только > придумать, как этот код прикрутить к СУБД в виде функции/процедуры - > если у dspam есть вменяемый api, а консольные утилиты всего лишь морда к > нему, то принципиальных проблем быть не должно... Хотя нет, то, что > dspam использует СУБД, в этом случае может стать проблемой ;) amavisd знает про dspam, но я так и не нашёл как его использовать в таком случае ... И amavisd мне в логах ругается, что нет dspam'а ... >> 1) вэб-морда к dspam, > этого и я в backports к 2.4 не делал Это пока не суть важно. > > > 2) > > документация, а именно: <skip> > это у меня разложено приличнее Я привёл лиш список отсутствующей документации ... :) > + у меня есть не очень правильный init-скрипт ;) уже интересней ... :) > > все это в backports к 2.4 > > я отсылал все первому мантейнеру dspam, поскольку тогда сизифом совсем > не интересовался, но у него, похоже, так и не дошли руки все это сделать Видать. Скачать, что ли твой пакет и скрестить с имеющимся в сизифе ... интересно, что получится? Может да же рабочий вариант ... -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 11:09 ` Шенцев Алексей Владимирович @ 2007-01-23 11:28 ` Eugene Prokopiev 2007-01-23 11:43 ` Шенцев Алексей Владимирович 0 siblings, 1 reply; 12+ messages in thread From: Eugene Prokopiev @ 2007-01-23 11:28 UTC (permalink / raw) To: ALT Linux sysadmin discuss Шенцев Алексей Владимирович пишет: > В сообщении от Вторник 23 января 2007 13:50 Eugene Prokopiev написал(a): > >>Тебе не нравится pipe? Ну во-первых, это значительно более редкая >>операция, чем доставка сообщений, а во-вторых, логика обучения в dspam - >>это код на С, СУБД - всего лишь хранилище. Т.е., обучать, не выходя за >>пределы СУБД (это и вправду было бы красиво), не выйдет, разве только >>придумать, как этот код прикрутить к СУБД в виде функции/процедуры - >>если у dspam есть вменяемый api, а консольные утилиты всего лишь морда к >>нему, то принципиальных проблем быть не должно... Хотя нет, то, что >>dspam использует СУБД, в этом случае может стать проблемой ;) > > amavisd знает про dspam, но я так и не нашёл как его использовать в таком > случае ... И amavisd мне в логах ругается, что нет dspam'а ... А чем в принципе amavisd + dspam лучше чем просто dspam? Или охота построить очередь из спамоловилок? ;) По-моему, такой геморрой себя не оправдает. Я-то думал, тебе наоборот хочется сделать систему быстрее, проще и изящее ... >>я отсылал все первому мантейнеру dspam, поскольку тогда сизифом совсем >>не интересовался, но у него, похоже, так и не дошли руки все это сделать > > Видать. Скачать, что ли твой пакет и скрестить с имеющимся в сизифе ... > интересно, что получится? Может да же рабочий вариант ... именно так я и советую сделать :) -- С уважением, Прокопьев Евгений ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 11:28 ` Eugene Prokopiev @ 2007-01-23 11:43 ` Шенцев Алексей Владимирович 0 siblings, 0 replies; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-23 11:43 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Вторник 23 января 2007 14:28 Eugene Prokopiev написал(a): > А чем в принципе amavisd + dspam лучше чем просто dspam? Не знаю, не сравнивал сам лично и сравнений не видел. > Или охота построить очередь из спамоловилок? ;) Да хотелось каскадную антиспамку сделать ... Наверное придётся взять вариант postfix+dspam+mysql+clamav и выкинуть amavisd-new & spamassassin ... > По-моему, такой геморрой себя не оправдает. Возможно ... > Я-то думал, тебе наоборот хочется сделать систему быстрее, проще и > изящее ... Это всегда хочется сделать. Сейчас главное сделать по максимому рабочий антиспам, а то spamassassin сильно много спама стал пропускать. Хотя в логах видно, что ~ 60-70% отсекает. > именно так я и советую сделать :) Да так и начал делать. -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Sysadmins] dspam & postfix & mysql 2007-01-23 10:50 ` Eugene Prokopiev 2007-01-23 11:09 ` Шенцев Алексей Владимирович @ 2007-01-23 11:23 ` Шенцев Алексей Владимирович 1 sibling, 0 replies; 12+ messages in thread From: Шенцев Алексей Владимирович @ 2007-01-23 11:23 UTC (permalink / raw) To: ALT Linux sysadmin discuss Да, кстати, Жень, давно уже есть dspam 3.6.8, а у тебя 3.6.3 ... -- С уважением Шенцев Алексей Владимирович. E-mail: ashen@nsrz.ru ICQ: 271053845 XMPP: AlexShen@jabber.ru ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-01-23 11:43 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-01-22 14:41 [Sysadmins] dspam & postfix & mysql Шенцев Алексей Владимирович 2007-01-22 17:04 ` Grigory Fateyev 2007-01-22 23:58 ` altlinux 2007-01-23 6:05 ` Шенцев Алексей Владимирович 2007-01-22 23:04 ` Sergey V Kovalyov 2007-01-23 7:43 ` Eugene Prokopiev 2007-01-23 8:13 ` Шенцев Алексей Владимирович 2007-01-23 10:50 ` Eugene Prokopiev 2007-01-23 11:09 ` Шенцев Алексей Владимирович 2007-01-23 11:28 ` Eugene Prokopiev 2007-01-23 11:43 ` Шенцев Алексей Владимирович 2007-01-23 11:23 ` Шенцев Алексей Владимирович
ALT Linux sysadmins discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \ sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com public-inbox-index sysadmins Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sysadmins AGPL code for this site: git clone https://public-inbox.org/public-inbox.git