URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 36600
[ Назад ]

Исходное сообщение
"Тематический каталог: Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"

Отправлено auto_topic , 02-Фев-07 12:21 
Обсуждение статьи тематического каталога: Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)

Ссылка на текст статьи: http://www.opennet.me/base/net/spamd_freebsd_ipfw2.txt.html


Содержание

Сообщения в этом обсуждении
"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Samm , 02-Фев-07 12:21 
И ещё немного. Оказалось, что утилита spamlogd, которая отвечает за продление white листинга для валидных IP также не работает без PF (точнее, /dev/pflogd0) и требует патчинга :-/

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (s"
Отправлено Samm , 02-Фев-07 12:35 
Правильный URL первого PR - http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/108657

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (s"
Отправлено Samm , 02-Фев-07 12:42 
Вот и третий PR на эту тему, пока без патча (буду рад помощи) http://www.freebsd.org/cgi/query-pr.cgi?pr=108679

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Vlad V. Teterya , 03-Фев-07 17:26 
ДД, Алекс
С аналогичными граблями сталкивался при попытке экспериментировать со spamd (лечил грязными хаками, до PR руки не дошли, а мейнтейнер в личку не ответил). Портик ооочень сырой, так что если исправите грабли и заберёте порт после 2-х недель таймаута - Родина вас не забудет (если не пожалеете личного времени, конечно :)). Подумываю об альтернативах spamd (postgrey?)

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Zhukov Alexandr , 02-Фев-07 13:22 
Спасибо за статью.
Правда сам совсем недавно уже через это прошёл.
А работает неплохо spamd.

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 02-Фев-07 13:25 
Через работу с ipfw? а где PR? :)
Кстати, Вам удалось запустить spamlogd?

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Yuri Khachaturyan , 02-Фев-07 17:06 
При запуске spamd-setup -t орет illegal option -- t

Пытался запустить на FreeBSD-6.2, собирал все строго по доке со всеми указанными патчами.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 02-Фев-07 17:12 
>При запуске spamd-setup -t орет illegal option -- t
>
>Пытался запустить на FreeBSD-6.2, собирал все строго по доке со всеми указанными
>патчами.


Не думаю. Забыли WITH_IPFW=you :)


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено GateKeeper , 04-Фев-07 09:25 
Мне лишь интересно, откуда Вы такое значение откопали - "you"? Почитать Makefile, так там достаточно make -DWITH_IPFW, или более привычное WITH_IPFW=yes...

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 04-Фев-07 12:43 
>Мне лишь интересно, откуда Вы такое значение откопали - "you"? Почитать Makefile,
>так там достаточно make -DWITH_IPFW, или более привычное WITH_IPFW=yes...

Йоу! "Почитав Makefile" :) Нет, это прекрасно, что вам "лишь это" интересно из всей статьи. Бывает же такое ) "Почитав Makefile" вполне понятно что ему совершенно индифирентно - you, yes или flooders_must_die.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено dark_stealth , 05-Фев-07 12:21 
Во первых- автору респект.

Во вторых- ничего не понимаю! Как в анекдоте "сколько не собирали велосипед- все равно танк выходит"
# make -DWITH_IPFW (либо WITH_IPFW=yes ;) )
при запуске spamd-setup
# spamd-setup: illegal option -- t
Все патчи наложены
FreeBSD 5.4


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Yuri Khachaturyan , 05-Фев-07 13:10 
Я же написал - собирал все строго по статье, ничего нигде не забыл. Мало того, пытался руками собрать с нужными флагами - не прокатывает =(

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 05-Фев-07 13:38 
Ну чудес-то не бывает.
1) Проверьте версию порта mail/spamd.
2) Пришлите подробный лог сборки - глянем.

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Yuri Khachaturyan , 07-Фев-07 11:40 
1. Версия 3.7.2
2. Сборка по make WITH_IPFW=you (-DIPFW выдает тоже самое):

===>  Extracting for spamd-3.7_2
=> MD5 Checksum OK for spamd_3.7.tar.bz2.
=> SHA256 Checksum OK for spamd_3.7.tar.bz2.
===>  Patching for spamd-3.7_2
===>  Applying FreeBSD patches for spamd-3.7_2
===>  Configuring for spamd-3.7_2
===>  Building for spamd-3.7_2
===> spamd (all)
Warning: Object directory not changed from original /usr/ports/mail/spamd/work/spamd_3.7/spamd
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi  -c spamd.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi  -c sdl.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi  -c grey.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi   -o spamd spamd.o sdl.o grey.o
gzip -cn spamd.8 > spamd.8.gz
===> spamd-setup (all)
Warning: Object directory not changed from original /usr/ports/mail/spamd/work/spamd_3.7/spamd-setup
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -D_NO_NAMESPACE_POLLUTION  -c spamd-setup.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -D_NO_NAMESPACE_POLLUTION   -o spamd-setup spamd-setup.o -lz
gzip -cn spamd-setup.8 > spamd-setup.8.gz
===> spamdb (all)
Warning: Object directory not changed from original /usr/ports/mail/spamd/work/spamd_3.7/spamdb
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -I/usr/ports/mail/spamd/work/spamd_3.7/spamdb/../spamd  -c spamdb.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -I/usr/ports/mail/spamd/work/spamd_3.7/spamdb/../spamd   -o spamdb
spamdb.o
gzip -cn spamdb.8 > spamdb.8.gz
===> spamlogd (all)
Warning: Object directory not changed from original /usr/ports/mail/spamd/work/spamd_3.7/spamlogd
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -I/usr/ports/mail/spamd/work/spamd_3.7/spamlogd/../spamd  -c
spamlogd.c
cc -O2 -pipe  -Wall -Wstrict-prototypes -ansi -I/usr/ports/mail/spamd/work/spamd_3.7/spamlogd/../spamd   -o
spamlogd spamlogd.o
gzip -cn spamlogd.8 > spamlogd.8.gz


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Instruktor , 05-Фев-07 13:46 
Чудно, что появилась эта статья. Респекты!
Как раз собирался занятья этим вопросом.
Кстати как быть с spamlogd ? Удалось что-то сделать?

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 05-Фев-07 14:28 
>Чудно, что появилась эта статья. Респекты!
>Как раз собирался занятья этим вопросом.
>Кстати как быть с spamlogd ? Удалось что-то сделать?
Пока нет. Проблема вот какая - spamd запускает tcpdump (более поздние версии - просто используют pcap()) на интерфейсе pflog, который создаёт PF. Суть проблемы в том, что там используется модификатор pass, который указывает на то, что трафик успешно прошёл через firewall. Снимать подобное с реального интерфейса бессмысленно, так как pcap на em0 будет работать _ДО_ IPFW. Пока я думаю, как можно это обойти.

Варианты такие:
1) переписать spamlogd как плагин syslog и запихнуть его в syslog.conf (я такой фокус сделал в bruteblock). А в IPFW добавить правило log до pass. Вариант мне не нравится тем, что будет куча флуда от ipfw и не будет работать при выключенном логе. Из плюсов - быстрая скорость реализации, простота (хуже воровства ;-)). Можно даже сделать в режиме тейла на /var/log/security
2) Использовать divert сокеты и команду tee. Как по мне - вполне себе вариант. Минусы - я не работал с диверт сокетами и мне потребуется время чтобы переписать spamlogd для этой цели.
Кроме того, диверт не везде вкомпилен, но это, думаю, не проблема.

я думаю,. что если мейнтейнер не ответит - я заберу порт, обновлю его до latest cvs version (там много чего улучшили) и сделаю метапорты spamd-ipfw и spamd-pf. И в spamd-ipfw сделаю другой spamlogd. Если хватит времени, конечно. Помощь - приветствуется. как и идеи по поводу  spamlogd, возможно есть более простое и красивое решение.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (s"
Отправлено Andrey Y. Ostanovsky , 06-Фев-07 00:32 
http://www.binkd.spb.ru/howto/pfspamd_3.7.diff

Я вот так курочил, но, поскольку в сях полный ноль - то ограничился косметическими правками. С pf - работает.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено RedRat , 06-Фев-07 10:45 
На редкость полезная и своевременная статья!

Будем надеяться, что автору в скором времени удастся победить spamlogd.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Samm , 06-Фев-07 10:58 
>На редкость полезная и своевременная статья!
Спасибо )
>
>Будем надеяться, что автору в скором времени удастся победить spamlogd.

Победим. Главное - найти час времени на то, чтобы разобраться с divert сокетами )


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Александр , 14-Мрт-07 02:33 
Может я чего не понял, но spamd-setup сбрасывает таблицу перед загрузкой каждого списка из spamd.conf
В итоге имеем последний список, остальное улетает.

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)"
Отправлено Aleksey , 28-Сен-07 18:13 
Столкнулся с такой проблемой:
стоит spamd-4.1.2 якобы с полной поддержкой ipfw
(бравда написано что это ещё всё же beta)
всё прекрасно работает...некоторое время,
потом в логе появляются такие сообщения:

spamd[2042]: IPFW setsockopt(IP_FW_TABLE_ADD) (File exists)

которые говорят о том, что spamd пытается добавлять в таблицу ipfw нечто уже существующее

в результате сверяясь с базой и с таблицей ipfw
обнаружил недостачу половины адресов помеченных как WHITE в /var/db/spamdb
при попытке добавлять их вручную некоторые адреса снова исчезали и письма от "белых" адресов не прошли...
вобщем, если кто-то сталкивался с этим или просто есть какие-то идеи, буду благодарен)


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Dewayne , 25-Ноя-07 11:17 
Yes. I have worked on this for most of the day.  At best I can find
14 entries in ipfw table 1; but 18 Whitelisted entries are reported
from spamd -d -v.  

I have no solution but will share as I must use this or decide on another option.


"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Aleksey , 27-Ноя-07 20:03 
I have solved this problem. Just comment return(-1) in grey.c(string 365).
But then I have another problem:) The data base not refresh dinamicly!
I have solved this problem by adding string to my cron tab to exec restart of spamd for example each three minutes, because it can't correct refresh db dinamicly, only when startup. Such are the crutches.
Другмим словами здесь поможет только хирургическое вмешательство. Глубоко вникать в механизымы работы spamdb у меня не было времени, отделался этими кастылями:)
Если кто-то разобрался, то честь ему и хвала, если он здесь напишет как.

"Использование OpenBSD spamd вместе с IPFW V2 в режиме грейли..."
Отправлено Vladimir , 14-Июл-08 10:47 
Вот такой наш ответ чемберлену:

--- spamd/grey.c.orig       2008-07-14 00:20:22.000000000 +0500
+++ spamd/grey.c    2008-07-14 11:18:48.000000000 +0500
@@ -348,6 +348,7 @@
            syslog_r(LOG_INFO, &sdata, "IPFW setsockopt(IP_FW_TABLE_FLUSH) (%m)");
            if (debug)
                    fprintf(stderr, "IPFW setsockopt(IP_FW_TABLE_FLUSH) (%s)\n",strerror(errno));
+           close(ipfw_socket);
            return(-1);
    }

@@ -362,10 +363,12 @@
            if (setsockopt(ipfw_socket, IPPROTO_IP, IP_FW_TABLE_ADD,  &ent, sizeof(ent)) < 0)
            {
                    syslog_r(LOG_INFO, &sdata, "IPFW setsockopt(IP_FW_TABLE_ADD) (%m)");
+                   close(ipfw_socket);
                    return(-1);
            }
    }

+   close(ipfw_socket);
    return(0);
}