Victor Ustugov wrote:
> p. p. s. для тех, кому интересно, гляньте примеры других более простых
> функций на
>http://www.ols.es/exim/dlext/
одну из этих функций, а именно ip2country, можно уже использовать в паровозе
итак, для начала нужно два раза выполнить gmake sync (после первого
обновиться Makefile, в котором будет указано синхронизировать каталог
dlfunc)
далее, нужно собрать библиотеку GeoIP, взять ее можно отсюда:
http://www.maxmind.com/app/chttp://www.maxmind.com/download/geoip/api/c/http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.0.tar.gz
для FreeBSD достаточно portinstall GeoIP
после этого можно указать отличный от дефолтного путь на динамически
загружаемую библиотеку. по умолчанию файл называется exim-dlfunc.so и
будет скопирован в каталог /usr/local/libexec/exim. альтернативное имя
каталога можно указать в переменной confDLFUNC_PATH в файле site/conf
для включения фильтрации по стране рилея отправителя необходимо в
site/conf включить использование переменной confCHECK_RELAY_COUNTRY_ACCESS:
проверка страны рилея отправителя в blacklist'ах
NO - не проводить проверку
REJECT - возврата по умолчанию клиенту кода 5xx
DEFER - возврата по умолчанию клиенту кода 4xx
WARN - вывода по умолчанию в лог файл предупреждения
PAUSE:XX - пауза XX секунд
GREYLIST:XX - добавить XX баллов к счетчику опционального greylisting'а
REJECT:XX - добавить XX баллов к счетчику опционального reject'а
define(`confCHECK_RELAY_COUNTRY_ACCESS', `NO')dnl
действия WARN, PAUSE:XX, GREYLIST:XX, REJECT:XX можно указывать через пробел
в файле CONFDIR/access-relay можно указать необходимые действия для
страны хоста отправителя в виде:
country_NN : action : message : log_message
где
country_ - просто статический текст
NN - двубуквенный код страны
action - действие
message - ответ SMTP клиенту (может отсутствовать)
log_message - сообщение в лог файл (может отсутствовать)
возможные значения для action:
ok - исключение из проверки для указанного хоста
warn - вывод в лог файл предупреждения
reject - отказ в приеме сообщения
deny - синоним для reject
defer - возврат временной ошибки
greylist:X - добавление X баллов к счетчику опционального
грейлистинга
reject:X - добавление X баллов к счетчику опционального
reject'а
ответ SMTP будет использован в случае указания reject/deny или defer в
качестве значения для action. если текст ответа не будет указан, будет
использован текст сообщения об ошибке по умолчанию
если параметр action не будет указан, будет использоваться действие,
указанное в переменной confCHECK_RELAY_COUNTRY_ACCESS
пример:
country_CN : defer : message defered. contact postmaster@$qualify_domain
country_MX : pause=20 warn
исключения для данного фильтра указываются в файле CONFDIR/access-relay
в виде IP адресов или сетей в виде CIDR, в качестве действия указав skip
или ok
после указания значения для confCHECK_RELAY_COUNTRY_ACCESS необходимо
пересобрать конфиги с помощью gmake all. при этом будет сгенерирован
configure, он будет отпарсен на предмет используемых динамически
загружаемых функций, которые будут при необходимости пересобраны и
библиотека скопирована в /usr/local/libexec/exim-dlfunc.so или в другой
каталог, указанный в site/conf
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694 CRV2-RIPE, CRV-UANIC