The OpenNET Project
 
Поиск (ключи):  ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
ССЫЛКИ НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. (spam spamd ipfw mail)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: spam, spamd, ipfw, mail,  (найти похожие документы)
From: Alex Samorukov <samm@os2.kiev.ua.> Newsgroups: email Date: Mon, 2 Feb 2007 14:31:37 +0000 (UTC) Subject: Использование OpenBSD spamd вместе с IPFW V2 в режиме грейлистинга. Количество спама в моём ящике стало невыносимо большим. Традиционные методы борьбы, такие как списки rbl, проверка валидности HELO, spf, spamassasin и подобные уловки стали менее эффективны (или просто спама стало больше?). Вобщем, решил я настроить грейлистинг. Так как на серверах используется FreeBSD, а делать решение зависимое от почтовика мне не хотелось - выбор пал на OpenBSD spamd Принцип работы spamd в режиме greylisting Демон spamd запускается и слушает tcp порт 8025. В Firewall стоит правило, разворачивающее все соединения пришедшие на порт 25 и не находящиеся в таблице whitelist на порт 8025 к spamd. Spamd, получив соединение, запоминает ip и адрес получателя/отправителя, после чего выдаёт сообщение о том, что сервис временно недоступен. Если при повторной попытке, произошедшей через указанное время, IP и адреса совпадут - заносим получателя в "белый" список на длительное время. Установка Казалось бы - что может быть тривиальнее чем установить BSD порт. "ничто не предвещало беды", как сказал бы диктор передачи 911. # cd /usr/ports/mail/spamd # make WITH_IPFW=you install clean WITH_IPFW обозначает "собрать с поддержкой IPFW". Дело в том, что на моих серверах используется IPFW и включать PF только ради spamd мне совершенно не хотелось. Пакет собрался и установился. Ура? Теперь самое время прописать правила для firewall в rc.firewall. Комментируем правило, разрешающее входящие соединения на 25 порт и вместо него пишем что-то вроде # bsd spamd rules set. Use table 9 and 10 fow white and black listing ${fwcmd} add fwd 127.0.0.1,8025 tcp from table\(10\) to me 25 in ${fwcmd} add allow tcp from table\(9\) to me 25 in ${fwcmd} add fwd 127.0.0.1,8025 tcp from any to me 25 in Таблицы 9 и 10 я выбрал потому, что таблицы 1-2, используемые по умолчанию, у меня уже используются для совсем других задач. Вот тут и начались первые проблемы. Утилита spamd-setup, которая заполняет таблицу "плохих" хостов на основе списков rbl при добавлении ключика -t падала с много обещающим сообщением "core dumped". GCC, gdb и send-pr - патч готов, едем дальше. Для того, чтобы логи писались "куда надо" добавляем в файл /etc/syslog.conf строки: !spamd daemon.err;daemon.warn;daemon.info /var/log/spamd и перезапускаем syslogd. Теперь прописываем в /etc/rc.conf pfspamd_enable="YES" pfspamd_flags="-t 9 -g -n bsd -v" pfspamd_setup_flags="-t 10" Как выяснилось - если на машине запущен spamd от SpamAssassin - BSD spamd просто не стартанёт. Дело в том, что стартовый rc скрипт считает, что демон уже запущен. Для исправления ситуации и добавления поддержки флагов в spamd-setup я сделал патч. Дальше - интереснее. После запуска spamd в логах стали появляться загадочные сообщения вида: spamd[3146]: IPFW socket unavailable (Operation not permitted) ps axu 3146 дал понять, что spamd пытается "работать" с ipfw под пользователем nobody. Так как для работы с BSD IPFW требуется тип сокета raw_sockets, доступный только супер-пользователю, система посылает его в сад-огород. Изучение исходников spamd показало, что он ищет системного пользователя _spamd и если не находит его - запускает детишек с правами nobody. Для решения проблемы я добавил в систему пользователя _spamd с uid 0 (естественно, без пароля и с shell nologin), перезапустив spamd. В это сложно поверить, но после стольких мучений оно заработало! "Процесс" вы можете отслеживать в spamd.log, а для управления списками очень удобно использовать утилиту spamdb. Злоключение. Хотелось бы пожелать автором портов проверять их работоспособность до отправки. Надеюсь, что эта заметка была полезной для читателя. Буду благодарен за дельные замечания и советы. Alex Samorukov, <samm@os2.kiev.ua.>

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

Обсуждение [ Ajax режим | Смотреть все | RSS ]
 
  • Использование OpenBSD spamd вместе с IPF, Samm, 12:21, 02/02/2007 [ответить] (1)
  • +/
    И ещё немного. Оказалось, что утилита spamlogd, которая отвечает за продление white листинга для валидных IP также не работает без PF (точнее, /dev/pflogd0) и требует патчинга :-/

  • Использование OpenBSD spamd вместе с IPF, Samm, 12:35, 02/02/2007 [ответить] (2)
  • +/
    Правильный URL первого PR - http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/108657

  • Использование OpenBSD spamd вместе с IPF, Samm, 12:42, 02/02/2007 [ответить] (3)
  • +/
    Вот и третий PR на эту тему, пока без патча (буду рад помощи) http://www.freebsd.org/cgi/query-pr.cgi?pr=108679

     
  • ДД, Алекс С аналогичными граблями сталкивался при попыт..., Vlad V. Teterya, 17:26, 03/02/2007 [ответить] (8)
  • +/
    текст скрыт [посмотреть] [смотреть все]

  • Использование OpenBSD spamd вместе с IPF, Zhukov Alexandr, 13:22, 02/02/2007 [ответить] (4) 
  • +/
    Спасибо за статью.
    Правда сам совсем недавно уже через это прошёл.
    А работает неплохо spamd.

     
  • Через работу с ipfw а где PR Кстати, Вам удалось ..., Samm, 13:25, 02/02/2007 [ответить] (5) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

  • Использование OpenBSD spamd вместе с IPF, Yuri Khachaturyan, 17:06, 02/02/2007 [ответить] (6) 
  • +/
    При запуске spamd-setup -t орет illegal option -- t

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


     
  • Не думаю Забыли WITH_IPFW you ..., Samm, 17:12, 02/02/2007 [ответить] (7) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

     
  • Мне лишь интересно, откуда Вы такое значение откопали -..., GateKeeper, 09:25, 04/02/2007 [ответить] (9) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

     
  • Йоу Почитав Makefile Нет, это прекрасно, что вам ..., Samm, 12:43, 04/02/2007 [ответить] (10) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

  • Использование OpenBSD spamd вместе с IPF, dark_stealth, 12:21, 05/02/2007 [ответить] (11) 
  • +/
    Во первых- автору респект.

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


  • Использование OpenBSD spamd вместе с IPF, Yuri Khachaturyan, 13:10, 05/02/2007 [ответить] (12) 
  • +/
    Я же написал - собирал все строго по статье, ничего нигде не забыл. Мало того, пытался руками собрать с нужными флагами - не прокатывает =(

     
  • Ну чудес-то не бывает 1 Проверьте версию порта mail s..., Samm, 13:38, 05/02/2007 [ответить] (13) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

     
  • 1 Версия 3 7 2 2 Сборка по make WITH_IPFW you -DIPFW..., Yuri Khachaturyan, 11:40, 07/02/2007 [ответить] (19) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

  • Использование OpenBSD spamd вместе с IPF, Instruktor, 13:46, 05/02/2007 [ответить] (14) 
  • +/
    Чудно, что появилась эта статья. Респекты!
    Как раз собирался занятья этим вопросом.
    Кстати как быть с spamlogd ? Удалось что-то сделать?

     
  • Пока нет Проблема вот какая - spamd запускает tcpdump ..., Samm, 14:28, 05/02/2007 [ответить] (15) 
  • +/
    текст скрыт [посмотреть] [смотреть все]

  • Использование OpenBSD spamd вместе с IPF, Andrey Y. Ostanovsky, 00:32, 06/02/2007 [ответить] (16) 
  • +/
    http://www.binkd.spb.ru/howto/pfspamd_3.7.diff

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


  • Использование OpenBSD spamd вместе с IPF, RedRat, 10:45, 06/02/2007 [ответить] (17) 
  • +/
    На редкость полезная и своевременная статья!

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


     
  • Использование OpenBSD spamd вместе с IPF, Samm, 10:58, 06/02/2007 [ответить] (18) 
  • +/
    >На редкость полезная и своевременная статья!
    Спасибо )
    >
    >Будем надеяться, что автору в скором времени удастся победить spamlogd.

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


  • Использование OpenBSD spamd вместе с IPF, Александр, 02:33, 14/03/2007 [ответить] (20
  • +/
    Может я чего не понял, но spamd-setup сбрасывает таблицу перед загрузкой каждого списка из spamd.conf
    В итоге имеем последний список, остальное улетает.

  • Использование OpenBSD spamd вместе с IPF, Aleksey, 18:13, 28/09/2007 [ответить] (21
  • +/
    Столкнулся с такой проблемой:
    стоит 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 вместе с IPF, Dewayne, 11:17, 25/11/2007 [ответить] (22
  • +/
    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 вместе с IPF, Aleksey, 20:03, 27/11/2007 [ответить] (23
  • +/
    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 вместе с IPF, Vladimir, 10:47, 14/07/2008 [ответить] (24
  • +/
    Вот такой наш ответ чемберлену:

    --- 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);
    }



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



    Подпишись на Linux Format и получи один из 3 ценных призов!

    Началась подписка на журнал Linux Format на 2010 год. Спешите оформить подписку на единственный в России ежемесячный журнал о Linux!

    Все, оформившие подписку на печатную версию журнала, получают диск с архивом журнала Linux Format за 2005-2009г. в подарок. Также в подарок вы получаете именную электронную версию в формате PDF. Теперь вы можете приступить к чтению журнала сразу в момент выхода свежего номера, не дожидаясь, пока вам доставят бумажную версию.

    Кроме того, все, оформившие подписку на первую половину или весь 2010 год в интернет-магазине ГНУ/Линуксцентра, автоматически становятся участниками розыгрыша ценных призов:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2010 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList