Spamooborona - Компиляция плагина для exim

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
aborland
рядовой
Сообщения: 19
Зарегистрирован: 2010-05-12 13:52:58

Spamooborona - Компиляция плагина для exim

Непрочитанное сообщение aborland » 2010-05-12 19:10:59

Столкнулся с тем, что многие товарищи ругают яндексовскую спамооборону
за то, что для прикручивания её к Exim, оного требуется пересобрать.

Однако, путем курения плагина от спамассасина был выработан метод борьбы, который и представляется на ваше конструктивное обозрение.

Все нижеследующее подразумевает дистрибутив Debian Lenny и спамооборону 3.2.1

Итак: в отдельном каталоге создаем Makefile

Код: Выделить всё

VERSION=3.2.1  # Здесь ставим версию спамообороны

CC=gcc
CFLAGS=-O2 -Wall -fPIC
LDFLAGS=-shared -rdynamic -ldl

EXIM_SRC= /usr/include/exim4
SUFF=-$(VERSION)

BUILDCFLAGS=-I$(EXIM_SRC) -DDLOPEN_LOCAL_SCAN $(SAFLAGS) $(CFLAGS)

SONAME=$(subst .so,$(SUFF).so,so-exim.so)

OBJECTS=$(SONAME)

all: $(OBJECTS)

$(SONAME) : so-exim.c
        @echo "Building $@"
        $(CC) $(BUILDCFLAGS) $(LDFLAGS) -o $@ $<
        chmod a+rx $(SONAME)

clean:
        @-rm -rf $(OBJECTS)
Помним о том что отступы в Makefile - это TAB


устанавливаем пакеты build-essential и exim4-dev

в файл local_scan.c поставляемый со спамообороной добавляем в конец следующие строки:

Код: Выделить всё

/* Return the verion of the local_scan ABI, if being compiled as a .so */
int local_scan_version_major(void)
{
    return LOCAL_SCAN_ABI_VERSION_MAJOR;
}

int local_scan_version_minor(void)
{
    return LOCAL_SCAN_ABI_VERSION_MINOR;
}

/* Left over for compatilibility with old patched exims that didn't have
   a version number with minor an major. Keep in mind that it will not work
   with older exim4s (I think 4.11 is required) */
#ifdef DLOPEN_LOCAL_SCAN_OLD_API
int local_scan_version(void)
{
    return 1;
}
#endif
переименовываем local_scan.c в so-exim.c , кладем рядом с нашим Makefile и компилируем:

make

в результате получаем файл so-exim-3.2.1.so

strip so-exim-3.2.1.so

cp so-exim-3.2.1.so /usr/lib/exim4/local_scan

cd /usr/lib/exim4/local_scan

ln -s so-exim-3.2.1.so so-exim.so

/etc/exim4/conf.d/main/15_so-exim_plugin_path

Код: Выделить всё

local_scan_path = /usr/lib/exim4/local_scan/so-exim.so
Вуаля

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: Spamooborona - Компиляция плагина для exim

Непрочитанное сообщение Al » 2010-05-13 10:47:40

Клева)
Но я б вообще засунул эту штуку, работающую от рута, в джайл. От греха подальше. И юзать как смтп-прокси.

aborland
рядовой
Сообщения: 19
Зарегистрирован: 2010-05-12 13:52:58

Re: Spamooborona - Компиляция плагина для exim

Непрочитанное сообщение aborland » 2010-05-13 10:59:41

Настройки самой спамообороны я здесь не касался
Ее, помоему, можно заставить работать и не от рута
а плагин может работать не через цокет а по TCP