Была конкретная задача, поднять spamd на своем сервере, при этом уже
использовался IPFW 1. Так как сервер стоял и работал достаточно
исправно, то на него хотело ставить всего по минимуму.
Все примеры которые встречались, были основаны на использовании PF.
Оно и понятно. Spamd, так же как и PF был портирован с OpenBSD. Но мне
хотелось использовать именно IPFW. На freebsd.org нашел, что spamd
должен работать в том числе и только с IPFW без PF.
Т.к. периодически качать списки адресов спамеров душила жаба, то
остановился на использовании только серых списков.
Ставилось из портов.
# cd /usr/ports/mail/spamd/
После долгих поисков нашел что для IPFW компилировать нужно так
# make -DWITH_IPFW
Из-за того что был IPFW 1, который не поддерживает таблицы,
компилироваться оно отказывалось ругаясь:
grey.c: In function `configure_pf':
grey.c:189: error: syntax error before "ent"
grey.c:201: error: `ent' undeclared (first use in this function)
grey.c:201: error: (Each undeclared identifier is reported only once
grey.c:201: error: for each function it appears in.)
grey.c:202: error: `IP_FW_TABLE_FLUSH' undeclared (first use in this function)
grey.c:216: error: `IP_FW_TABLE_ADD' undeclared (first use in this function)
Error code 1
Когда ставил с IPFW 2 во время работы оно ругалось:
IPFW socket unavailable (Operation not permitted)
Т.к. основная задача была чтобы работало, то было решено просто
отключить места общения с фаерволом.
Для этого содержимое функции configure_pf была изменена в следующих
файлах:
Соответственно в один файл заносим то, что нужно пропускать сразу, а в
другой, то что пропускать вообще не надо.
В IPFW перед правилом разрешающим ходить почте на наш сервер, создаем
правило перенаправления почтового трафика на spamd:
ipfw add fwd 127.0.0.1,8025 tcp from any to me dst-port 25
Т.к. у нас spamd получился без возможности общения с фаерволом, то мы
разрешающие правила мы должны создавать сами. Для этого используем
следующий скрипт:
Соответственно нужно правильно выставить номера правил. ipfw_rulez -
должно быть меньше номера правила перенаправления на spamd, а
ipfw_rulez_skipto должно быть наоборот, больше номера правила
перенаправления на spamd.
Теперь можно пытаться запустить spamd:
# /usr/local/etc/rc.d/pfspamd.sh start
Смотреть результаты работы можно через лог-файл:
# cat /var/log/spamd.log
а так же через:
/usr/local/sbin/spamdb
Статьи которые сильно помогли:
http://www.samag.ru/art/07.2005/07.2005_05.html
http://devnull.lt/misc/spamd_on_freebsd_4_with_ipfw
http://myforum.net.ua/index.php?showtopic=5843&pid=46782&st=0entry46782
Человек пытается портировать
http://www.mail-archive.com/freebsd-ipfw@freebsd.org/msg00904.html
1220 Прочтений • [Поднятие spamd на FreeBSD 5 в связке с IPFW v1 (spam freebsd mail ipfw)] [08.05.2012] [Комментариев: 0]