dnl базовый каталог с настройками define(`confCONFDIR', `/usr/local/etc/exim')dnl dnl dnl каталог планировщика задач dnl пример для FreeBSD: dnl define(`confPERIODIC', `/usr/local/etc/periodic/daily')dnl dnl пример для Linux: dnl define(`confPERIODIC', `/etc/cron.daily')dnl define(`confPERIODIC', `/usr/local/etc/periodic/daily')dnl dnl dnl имя почтового домена по умолчанию dnl значение, которое будет использовано, как имя домена по умолчанию. dnl усли не задано, то используется FQDN. dnl пример: dnl define(`confQUALIFY_DOMAIN',`your.mail.domain')dnl dnl dnl локальные интерфейсы dnl перечисление адресов локальных интерфейсов, на которых exim dnl будет слушать входящие соединения dnl пример: dnl define(`confLOCAL_INTERFACES',`127.0.0.1 : 10.0.0.1')dnl dnl dnl ################################################################## dnl GENERAL CONFIGURATION CONTROLS dnl ################################################################## dnl dnl пользовательские параметры для секции GENERAL CONFIGURATION CONTROL dnl NO - не использовать файл с пользовательскими опциями dnl имя_файла - имя файла с пользовательскими опциями define(`confCONFIGURE_GENERAL', `NO')dnl dnl пример: dnl define(`confCONFIGURE_GENERAL', confCONFDIR`/site/configure.general')dnl dnl dnl пользователь, с правами которого запускается exim dnl define(`confEXIM_USER', `mailnull')dnl dnl по умолчанию будет использован пользователь mailnull dnl dnl группа, с правами которой запускается exim dnl define(`confEXIM_GROUP', `mail')dnl dnl по умолчанию будет использована группа mail dnl dnl ограничение размера сообщений define(`confMESSAGE_SIZE_LIMIT', `50M') dnl define(`confIGNORE_BOUNCE_ERRORS_AFTER', `2d')dnl define(`confTIMEOUT_FROZEN_AFTER', `7d')dnl dnl dnl путь на файл с perl'овыми hook'ами: dnl define(`confPERL', `CONFDIR/exim.pl') dnl файл с hook'ами необходим при использовании: dnl confGREYLIST_DBM, confMAILERTABLE, confRELAY_BASED_ON_MX, dnl confCHECK_HELO_FORGED, confCHECK_OPEN_PROXY dnl dnl ################################################################## dnl FEATURES dnl ################################################################## dnl dnl поддержка ETRN dnl NO - отключить поддержку ETRN dnl YES - включить поддержку ETRN define(`confETRN_ENABLE', `NO')dnl dnl пока ETRN поддерживается для host'ов из relay_from_hosts и trusted_hosts dnl dnl ################################################################## dnl dnl Анонимность dnl dnl скрывать в Received информацию о хостах из hosts-relayfrom dnl NO - не скрывать информцию о хостах dnl YES - скрывать информцию о хостах define(`confANONYM_RCVD_HIDE_HOST_INFO', `NO')dnl dnl dnl скрывать в Received информацию о MTA dnl NO - не скрывать информцию о MTA dnl VERSION - скрывать информцию о версии MTA dnl OS - скрывать информцию об ОС dnl ALL - скрывать всю информцию о MTA define(`confANONYM_RCVD_HIDE_MTA_INFO', `ALL')dnl dnl значения VERSION и OS могут быть указаны через пробел dnl dnl скрывать в SMTP баннере информацию о MTA dnl NO - не скрывать информцию о MTA dnl MTA - скрывать информцию о MTA dnl VERSION - скрывать информцию о версии MTA dnl DATE - скрывать дату dnl ALL - скрывать всю информцию о MTA define(`confANONYM_BANNER_HIDE_MTA_INFO', `NO')dnl dnl значения MTA, VERSION и DATE могут быть указаны через пробел dnl dnl ручная установка SMTP баннера: dnl define(`confSMTP_BANNER', `$primary_hostname ESMTP daemon')dnl dnl при ручном указании SMTP баннера значение переменной dnl confANONYM_BANNER_HIDE_MTA_INFO игнорируется dnl dnl ################################################################## dnl dnl проверка SPF записей домена отправителя dnl NO - отключить поддержку SPF dnl YES - включить поддержку SPF define(`confSPF', `NO')dnl dnl варианты действий при несоответствии рилея отправителя SPF записи домена отправителя dnl описаны в файле CONFDIR/access-spf в виде: dnl dnl sender.domain.tld|action : result1 : result2 : ... | message dnl dnl где sender.domain.tld - домен отправителя, допускаются wildcards dnl action - действие (deny, defer или warn) dnl result1, result2 - результат проверки соответствия рилея отправителя SPF записи dnl домена отправителя (pass, fail, softfail, none, neutral, dnl err_perm, err_temp; см. exiscan-acl-spec.txt, dnl 8. Sender Policy Framework (SPF) support) dnl message - сообщение, возвращаемое клиенту (опционально) dnl dnl пример: dnl *.aol.com|deny : fail | AOL sender, but not from AOL-approved relay dnl *.aol.com|warn : neutral | AOL sender, but not from AOL-approved relay dnl aol.com|deny : fail : neutral | AOL sender, but not from AOL-approved relay dnl *|deny : fail dnl *|defer : softfail : err_temp dnl *|warn : neutral dnl dnl исключения из проверки SPF записей указываются в файле CONFDIR/access-spf в виде: dnl IP_адрес_рилея : skip dnl сеть_рилея : skip dnl dnl пример: dnl 194.183.162.130 : skip dnl 194.183.162.195 : skip dnl 194.183.174.248/29 : skip dnl dnl необходимо внести в виде исключений адреса backup MX'ов dnl dnl ################################################################## dnl dnl проверка меток хостов как валидных эмиттеров в реверсной зоне dnl dnl Marking Mail Transfer Agents in Reverse DNS with TXT RRs dnl http://www.ietf.org/internet-drafts/draft-stumpf-dns-mtamark-02.txt dnl dnl NO - не проверять метки MTA dnl YES - проверять метки MTA define(`confMTA_MARK_ENABLE', `NO') dnl dnl название метки define(`confMTA_MARK', `perm.smtp.srv') dnl define(`confMTA_MARK', `_perm._smtp._srv') dnl define(`confMTA_MARK', `_send._smtp._srv') dnl dnl ################################################################## dnl dnl поддержка Reverse-Path Rewriting (aka Sender Rewriting Scheme) dnl http://spf.pobox.com/srs.html dnl http://www.infradead.org/rpr.html dnl NO - отключить поддержку SRS dnl YES - включить поддержку SRS define(`confSRS', `NO')dnl dnl dnl пароль define(`confSRS_SECRET', `somesecret')dnl dnl dnl длина hash'а define(`confSRS_HASH_LENGTH', `20')dnl dnl dnl время жизни SRS подписи, дн. define(`confSRS_DSN_TIMEOUT', `7')dnl dnl dnl SRS домен dnl пример: dnl define(`confSRS_DOMAIN', `srs.local.domain')dnl dnl при этом надо прописать wildcard для MX записей в настройках DNS сервера dnl пример: dnl *.srs.local.domain IN MX 10 this.host. dnl dnl режим отладки dnl NO - выключить режим отладки dnl YES - включить режим отладки define(`confSRS_DEBUG', `NO')dnl dnl dnl список отправителей, адреса которых подписываются SRS указывается dnl в файле CONFDIR/senders-always-srs в виде: dnl domain0 : maibox00 : mailbox01 : mailbox02 dnl domain1 : maibox10 : mailbox11 dnl список адресов по умолчанию можно указать, используя "*" в качестве домена dnl пример: dnl domain.tld : * dnl our.domain.com : !postmaster : * dnl dnl список получателей, для которых не надо подписывать обратный адрес отправителя dnl с помощью SRS указывается в файле CONFDIR/skip_srs_recipients dnl рекомендуется внести в этот файл адреса списков рассылок и других получателей, dnl которые идентифицируют отправителей по envelope from, а не по header from dnl адреса в списке указывается построчно dnl пример: dnl exim-users@exim.org.ua dnl freebsd@freebsddiary.org.ua dnl *@yahoogroups.com dnl dnl ################################################################## dnl dnl поддержка Mailman dnl NO - выключить поддержку Mailman dnl YES - включить поддержку Mailman define(`confMAILMAN', `NO')dnl dnl dnl Mailman home directory define(`confMAILMAN_HOME', `/usr/local/mailman')dnl dnl Mailman group dnl не определено dnl пример: dnl define(`confMAILMAN_GROUP', `mailnull')dnl dnl по умолчанию будет использована группа, от имени которого выполняется exim dnl dnl ################################################################## dnl dnl поддержка работы в качестве backup MX для нелокальных доменов dnl NO - выключить поддержку backup MX dnl YES - включить поддержку backup MX define(`confSECONDARY_RELAY', `NO')dnl dnl dnl ################################################################## dnl dnl пользователь, получающий письма для несуществующих пользователей локальных доменов dnl NO - не принимать письма, адресованные несуществующим пользователям dnl локальных доменов dnl addr@domain - адрес пользователя, которому будут пересылаться все письма, dnl адресованные несуществующим пользователям локальных доменов define(`confLUSER', `NO')dnl dnl dnl пример: dnl define(`confLUSER', `admin@local.domain.tld')dnl dnl dnl ################################################################## dnl dnl использование суффиксов (admin+test@local.domain.tld): dnl NO - не использовать суффиксы адресов dnl any_suffixes - использовать суффиксы адресов define(`confLOCAL_PART_SUFFIX', `NO') dnl dnl суффиксы указываются в виде списка, разделенного двоеточиями dnl dnl пример: dnl define(`confLOCAL_PART_SUFFIX', `+* : -*') dnl define(`confLOCAL_PART_SUFFIX', `+*') dnl dnl dnl ################################################################## dnl dnl таблица виртуальных пользователей dnl NO - не использовать virtusertable dnl SINGLE_FILE - хранение списка пользователей в одном текстовом файле dnl SINGLE_DBM - хранение списка пользователей в одном DBM файле dnl DOMAINS_FILES - хранение списка пользователей в отдельных файлах для каждого домена dnl MYSQL - хранение списка пользователей в БД MySQL define(`confVIRTUSERTABLE', `SINGLE_FILE')dnl define(`confVIRTUSERTABLE_SINGLE', `CONFDIR/virtusertable')dnl define(`confVIRTUSERTABLE_MYSQL', `SELECT address FROM virtusertable WHERE alias="${quote_mysql:$local_part@$domain}"')dnl define(`confVIRTUSERTABLE_DOMAIN_MYSQL', `SELECT address FROM virtusertable WHERE alias="${quote_mysql:@$domain}"')dnl define(`confVIRTUSERTABLE_DOMAINS', `CONFDIR/virt_domains')dnl dnl dnl ############################################## dnl dnl использование domain literals (например, postmaster@[207.46.245.222]) dnl NO - не использовать domain literals dnl YES - не использовать domain literals define(`confDOMAIN_LITERALS', `NO')dnl dnl соответствующие домены перечисляются в файле domains-literals: dnl пример: dnl [207.46.245.222] dnl [207.46.245.214] dnl соответствия между адресами в виде domain literals и реальными адресами получателей dnl прописываются в virtusertable dnl пример: dnl postmaster@[207.46.245.222]: postmaster@local.domain dnl abuse@[207.46.245.222]: abuse@local.domain dnl dnl ############################################## dnl dnl локальная доставка (список) dnl MBOX - доставка в mailbox'ы в /var/mail dnl с MBOX можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl PROCMAIL - использование .procmailrc в качестве фильтров dnl MDIR_USER - доставка в maildir'ы в $home/Maildir dnl с MDIR_USER можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl PROCMAIL - использование .procmailrc в качестве фильтров dnl MDIR_VIRTUAL - доставка в виртуальные maildir'ы в /var/vmail/$domain dnl с MDIR_USER и MDIR_VIRTUAL можно указывать через пробел: dnl FILTERS - использование .forward в качестве фильтров dnl PROCMAIL - использование .procmailrc в качестве фильтров dnl CYRUS - доставка в cyrus-imapd maildir define(`confDELIVERY_TO', `MBOX FILTERS PROCMAIL')dnl dnl dnl при наличии PROCMAIL в confDELIVERY_TO: dnl путь к procmail: define(`confPROCMAIL_PATH', `/usr/local/bin/procmail')dnl dnl dnl при наличии MBOX или MDIR_USER в confDELIVERY_TO: dnl dnl место хранения алиасов: dnl TEXT - хранение алиасов в текстовом файле dnl DBM - хранение алиасов в DBM файле define(`confSYSTEM_ALIASES', `DBM')dnl dnl dnl при наличии MDIR_USER в confDELIVERY_TO: dnl dnl путь к пользовательскому maildir'у: define(`confMDIR_USER_MAILDIR', `$home/Maildir/')dnl dnl define(`confMDIR_USER_MAILDIR', `/home/$local_part/Maildir/')dnl dnl define(`confMDIR_USER_MAILDIR', `/var/vmail/domain/$local_part/')dnl dnl dnl при наличии MDIR_VIRTUAL в confDELIVERY_TO: dnl dnl корневой каталог виртуальных maildir'ов виртуальных доменов define(`confVIRT_MDIR_ROOT', `/var/vmail')dnl dnl путь к maildir'у получателя dnl define(`confVIRT_MDIR_PATH', confVIRT_MDIR_ROOT`/$domain/$local_part') dnl dnl пользователь, от имени которого доставляется почта в virtual maildir'ы define(`confVIRT_MDIR_USER', `mailnull')dnl dnl dnl место хранения списка пользователей dnl SINGLE_FILE - хранение списка пользователей в файле типа passwd dnl DOMAINS_FILES - хранение списка пользователей в отдельных файлах для каждого домена dnl MYSQL - хранение списка пользователей в БД MySQL define(`confVIRT_MDIR_USERLIST', `DOMAINS_FILES')dnl dnl dnl путь к файлу типа passwd (если confVIRT_MDIR_USERLIST=SINGLE_FILE) define(`confVIRT_MDIR_USERLIST_SINGLE', `/usr/local/etc/passwd.imap')dnl dnl dnl путь к отдельным файлам для каждого домена (если confVIRT_MDIR_USERLIST=DOMAINS_FILES) define(`confVIRT_MDIR_USERLIST_DOMAINS', `CONFDIR/virt_domains')dnl dnl dnl синтаксис SQL запроса к MySQL (если confVIRT_MDIR_USERLIST=MYSQL) define(`confVIRT_MDIR_MYSQL', `SELECT id, maildir, home FROM passwd WHERE id="${quote_mysql:$local_part@$domain}"')dnl dnl dnl права на maildir'ы и файлы с письмами define(`confVIRT_MDIR_DIR_MODE', `0750')dnl define(`confVIRT_MDIR_FILE_MODE', `0640')dnl dnl dnl место хранения алиасов: dnl SINGLE_FILE - хранение алиасов в текстовом файле virt_aliases dnl SINGLE_DBM - хранение алиасов в DBM файле virt_aliases.db dnl DOMAINS_FILES - хранение алиасов в отдельных текстовых файлах для каждого домена dnl DOMAINS_DBM - хранение алиасов в отдельных DBM файлах для каждого домена dnl MYSQL - хранение алиасов в БД MySQL (только при confVIRT_MDIR_USERLIST==MYSQL) define(`confVIRT_MDIR_ALIASES', `DOMAINS_DBM')dnl define(`confVIRT_MDIR_ALIASES_SINGLE', `CONFDIR/virt_aliases')dnl define(`confVIRT_MDIR_ALIASES_DOMAINS', `CONFDIR/virt_domains')dnl define(`confVIRT_MDIR_MYSQL_ALIAS', `SELECT address FROM aliases WHERE alias="${quote_mysql:$local_part@$domain}"')dnl dnl dnl при наличии CYRUS в confDELIVERY_TO: dnl dnl путь к mbpath (используется для проверки наличия пользователя): dnl define(`confCYRUS_MBPATH_PATH', `/usr/lib/cyrus-imapd/mbpath')dnl define(`confCYRUS_MBPATH_PATH', `/usr/local/cyrus/bin/mbpath')dnl dnl dnl путь к LMTP сокету: dnl define(`confCYRUS_LMTP_SOCKET', `/var/lib/imap/socket/lmtp')dnl define(`confCYRUS_LMTP_SOCKET', `/var/imap/socket/lmtp')dnl dnl dnl пользователь, от имени которого выполняется cyrus-imapd: define(`confCYRUS_USER', `cyrus')dnl dnl dnl максимальное количество адресов, письма которым могут быть доставлены вместе за один запуск транспорта: define(`confCYRUS_BATCH_MAX', `20')dnl dnl dnl ############################################## dnl dnl отсылка сообщений через smarthost(ы) dnl NO - не использовать отсылку через smarthost dnl - использовать отсылку через smarthost dnl допускается указание нескольких хостов, разделенных двоеточиями define(`confSMART_HOST', `NO') dnl если сообщение не может быть отправлено через smarthost за confSMART_HOST_TIMEOUT секунд, dnl то при его отправке smarthost использоваться больше не будет define(`confSMART_HOST_TIMEOUT', `3600')dnl dnl при использовании confFALL_BACK_MX_DELAYED если confSMART_HOST_TIMEOUT больше, чем dnl confFALL_BACK_MX_DELAY, то сразу после роутера smarthost будет использован роутер dnl route_to_fallbackmx, в противном случае в интервале между confSMART_HOST_TIMEOUT и dnl confFALL_BACK_MX_DELAY будет использован роутер dnslookup dnl dnl ############################################## dnl dnl отсылка сообщений через fallback_hosts dnl NO - не использовать отсылку через fallback host(ы) dnl - использовать отсылку через fallback host(ы) dnl допускается указание нескольких хостов, разделенных двоеточиями define(`confFALL_BACK_MX', `NO')dnl dnl dnl ############################################## dnl dnl отсылка сообщений через fallback_hosts в случае невозможности их отправки dnl за confFALL_BACK_MX_DELAY секунд после помещения в очередь dnl NO - не использовать отсылку через fallback host(ы) dnl - использовать отсылку через fallback host(ы) dnl допускается указание нескольких хостов, разделенных двоеточиями define(`confFALL_BACK_MX_DELAYED', `NO')dnl define(`confFALL_BACK_MX_DELAY', `5400')dnl dnl dnl ############################################## dnl dnl поддержка UUCP dnl NO - выключить поддержку UUCP dnl YES - включить поддержку UUCP define(`confUUCP', `NO')dnl dnl dnl пользователь, от имени которого будет выполняться доставка define(`confUUCP_USER', `uucp')dnl dnl dnl полный путь к uux define(`confUUCP_UUX_PATH', `/usr/local/bin/uux')dnl dnl dnl ############################################## dnl dnl доставка сообщений по mailertable dnl NO - не использовать отсылку по mailertable dnl TEXT - использовать mailertable в виде текстового файла dnl DBM - использовать mailertable в виде DBM файла dnl MYSQL - использовать mailertable в виде таблицы в базе данных MYSQL define(`confMAILERTABLE', `NO')dnl define(`confMAILERTABLE_MYSQL', `SELECT transport, route FROM mailertable WHERE domain="${quote_mysql:$domain}"')dnl dnl dnl маршруты почты прописываются в CONFDIR/mailertable в виде: dnl domain : smtp : host1 : host2 : host3 dnl domain : local : local_mailbox dnl domain : virt : mailbox@virtual_domain dnl domain : uucp-dom : uucp_dom dnl dnl где local - доставка почты домена в локальный mailbox dnl virt - доставка почты домена в mailbox в виртуальном домене dnl uucp-dom - доставка почты домена в uucp mailbox dnl smtp - доставка почты домена по smtp по маршруту dnl при этом можно вместо имени хоста применить конструкцию mx(domain) dnl при этом в начале configure должен быть подключен файл exim.pl с функцией sortmx: dnl dnl sub sortmx() { dnl if(not defined(@_)) { dnl return(undef); dnl } else { dnl my($mxs) = shift; dnl my(%mx_list, $mx, $prec, $line); dnl foreach $mx (split(/\n/m, $mxs)) { dnl ($prec, $line) = split(/\s+/, $mx); dnl $prec += 20000; dnl $mx_list{$prec} = $line; dnl } dnl if (%mx_list) { dnl my($res); dnl foreach (sort(keys(%mx_list))) { dnl $res .= ':' if ($res); dnl $res .= $mx_list{$_}; dnl } dnl return($res); dnl } else { dnl return('not found'); dnl } dnl } dnl } dnl dnl ############################################## dnl dnl relay based on MX dnl NO - не использовать рилеинг на основе MX записей dnl BEST - использовать рилеинг на основе best MX записи (она должна входить в trusted сети) dnl ANY - использовать рилеинг на основе любой более младшей MX записи (она должна входить в trusted сети) dnl YES - синоним BEST define(`confRELAY_BASED_ON_MX', `NO')dnl dnl будут рилеиться все сообщения для доменов, для которых мы являемся backup MX dnl и best MX (или любая MX) запись которых входит в наши trusted сети, dnl перечисленные в файле hosts-trusted dnl dnl ############################################## dnl dnl использовать сериализацию при отправке сообщений хостам из предопределенного списка dnl NO - не использовать сериализацию dnl YES - использовать сериализацию при отправке писем хостам из CONFDIR/hosts-serialize define(`confSMTP_SERIALIZE_HOSTS', `NO') dnl dnl ############################################## dnl dnl использование серых списков с кешем в DBM dnl NO - не использовать серые списки dnl YES - использовать серые списки dnl LEARN - использовать серые списки в режиме обучения (аналог define(`confGREYLIST_DBM_BLOCKED', `0')) dnl BLOCK_FIRST_ONLY - использовать серые списки в режиме блокирования только первого письма dnl (аналог define(`confGREYLIST_DBM_BLOCKED', `-1')) dnl OPTIONAL - опциональный грейлистинг define(`confGREYLIST_DBM', `NO')dnl dnl dnl путь к файлу DBM кеша define(`confGREYLIST_DBM_CACHE', `/var/spool/exim/db/greylist.db')dnl dnl dnl время блокировки записи в "сером списке" в минутах define(`confGREYLIST_DBM_BLOCKED', `55')dnl dnl dnl режим обучения: dnl define(`confGREYLIST_DBM_BLOCKED', `0')dnl dnl время блокировки записи в "сером списке" равно нулю dnl (принимаем все сообщения, производится лишь обучение кеша) dnl dnl режим обучения с блокированием лишь первой попытки отправки почты: dnl define(`confGREYLIST_DBM_BLOCKED', `-1')dnl dnl время блокировки записи в "сером списке" меньше нуля dnl (первое сообщение задерживается, остальные пропускаются) dnl dnl минимальное время жизни записи в "сером списке" в минутах define(`confGREYLIST_DBM_RECORD_EXPIRE_MIN', `300')dnl dnl dnl время жизни записи в "сером списке" в днях define(`confGREYLIST_DBM_RECORD_EXPIRE', `36')dnl dnl dnl исключение для писем от postmaster'ов dnl NO - не делать исключений из механизма greylisting'а для почты от postmaster'ов dnl YES - делать исключений из механизма greylisting'а для почты от postmaster'ов define(`confGREYLIST_EXCLUDE_POSTMASTER', `YES')dnl dnl dnl сообщение, возвращаемое клиенту при задержке почтового сообщения dnl define(`confGREYLIST_MESSAGE', `Message delayed as part of spam avoidance measure')dnl dnl define(`confGREYLIST_MESSAGE', `System too busy. Please try again later')dnl define(`confGREYLIST_MESSAGE', `Temporary local problem - please try later')dnl dnl dnl домены получателей, проверяемые по серым спискам, перечисляются в domains-greylist dnl хосты и сети, исключаемые из проверки по серым спискам, перечисляются в skip_greylist_relays dnl списки отправителей, исключаемых из проверки по серым спискам, перечисляются в файле skip_greylist_senders dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl zuper.domain.com : user : info : admin dnl списки отправителей, исключаемых из проверки по серым спискам, перечисляются в файле skip_greylist_recipients dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl zuper.domain.com : user : info : admin dnl триплеты адрес_рилея/адрес_отправителя/адрес_получателя, исключаемые из проверки по серым спискам, dnl перечисляются в файле skip_greylist в виде: dnl A.B.C.D|sender@domain1.tld|recipient@domain2.tld dnl пример: dnl 113.130.15.19|corvax@test.org.ua|test@local.domain dnl dnl страны, сети которых будут исключены из skip_greylist_relays define(`confGREYLIST_DBM_COUNTRIES', `ar br cl cn co hk jp kr mx ng pe ph th tw')dnl dnl команда получения списка сетей по странам define(`confGREYLIST_DBM_COUNTRIES_SYNC', `rsync -avz rsync://rsync.blackholes.us/zones/countries/${COUNTRY}.txt ../countries/${COUNTRY}.txt')dnl dnl dnl количество баллов, при которых письмо задерживается (применяется при define(`confGREYLIST_DBM', `OPTIONAL')) define(`confGREYLIST_DBM_BLOCKED_OPTIONAL', `10')dnl dnl dnl ############################################## dnl dnl роутинг почты для MS Exchange dnl NO - не производить роутинг dnl RELAY_LIST - производить роутинг, используя список рилеев dnl (список A или PTR записей, разделенных двоеточиями) define(`confEXCHANGE_ROUTERS', `NO')dnl dnl dnl список адресов контроллеров домена со списком пользователей MS Exchange в AD dnl define(`confEXCHANGE_AD_HOSTS', `10.0.0.1 : 10.0.0.2')dnl define(`confEXCHANGE_AD_HOSTS', `')dnl dnl dnl параметры запроса к LDAP серверу dnl define(`confEXCHANGE_LDAP_USER', `cn=ldapuser,cn=Users,dc=domain,dc=ua')dnl dnl define(`confEXCHANGE_LDAP_USER', `ldapuser@domain.ua')dnl dnl define(`confEXCHANGE_LDAP_PASSWORD', `password')dnl dnl define(`confEXCHANGE_LDAP_BASE', `dc=domain,dc=ua')dnl dnl dnl адреса, исключаемые из проверки получателей, указываются в CONFDIR/domains-exchange dnl в виде: dnl dnl domain : addr1 : addr2 : addr3 dnl dnl пример: dnl zuper.domain.com : user : info : admin dnl dnl проверка пользователя MS Exchange в роутере имеет по сравнению с приведенной dnl ниже проверкой в acl_smtp_rcpt как недостаток (при каждой проверке происходит и dnl обращение по LDAP протоколу к AD и обращение по SMTP протоколу к MS Exchange), dnl так и преимущество (verify = recipient кешируется exim'ом) dnl dnl deny domains = +exchange_domains dnl ! recipients = @@lsearch;CONFDIR/skip_exch_check dnl condition = ${if eq{${lookup ldap{\ dnl user="confEXCHANGE_LDAP_USER" pass=confEXCHANGE_LDAP_PASSWORD \ dnl ldap:///confEXCHANGE_LDAP_BASE?proxyAddresses?sub?\ dnl (proxyAddresses=smtp:$local_part@$domain)}\ dnl {ok}fail}}{ok}{no}{yes}} dnl message = Unrouteable address dnl dnl ############################################## dnl dnl роутинг почты для Lotus Domino dnl NO - не производить роутинг dnl RELAY_LIST - производить роутинг, используя список рилеев dnl (список A или PTR записей, разделенных двоеточиями) define(`confDOMINO_ROUTERS', `NO')dnl dnl dnl список адресов LDAP серверов со списком пользователей Lotus Domino dnl define(`confDOMINO_HOSTS', `10.0.0.1 : 10.0.0.2')dnl dnl dnl параметры запроса к LDAP серверу dnl define(`confDOMINO_LDAP_BASE', `o=ZUPER_ORG,c=ua')dnl dnl dnl адреса, исключаемые из проверки получателей, указываются в CONFDIR/domains-domino dnl в виде: dnl dnl domain : addr1 : addr2 : addr3 dnl dnl пример: dnl zuper.domain.com : user : info : admin dnl dnl проверка пользователя Lotus Domino в роутере имеет по сравнению с приведенной dnl ниже проверкой в acl_smtp_rcpt как недостаток (при каждой проверке происходит и dnl обращение по LDAP протоколу к LDAP серверу и обращение по SMTP протоколу к Lotus Domino), dnl так и преимущество (verify = recipient кешируется exim'ом) dnl dnl deny domains = +domino_domains dnl ! recipients = @@lsearch;CONFDIR/skip_domino_check dnl condition = ${if eq{${lookup ldap{\ dnl ldap:///confDOMINO_LDAP_BASE?mail?sub?\ dnl (mail=$local_part@$domain)}\ dnl {ok}fail}}{ok}{no}{yes}} dnl message = Unrouteable address dnl dnl ############################################## dnl dnl поддержка STARTTLS dnl NO - не поддерживать STARTTLS dnl YES - поддерживать STARTTLS define(`confSTARTTLS', `NO')dnl dnl dnl пути на файл сертификата и ключа: define(`confTLS_CERTIFICATE', `CONFDIR/exim.pem')dnl define(`confTLS_PRIVATEKEY', `CONFDIR/exim.pem')dnl dnl dnl использовать список исключений для анонсирования STARTTLS dnl NO - не использовать список исключений dnl YES - использовать список исключений define(`confSTARTTLS_SKIP_ADVERTIZE', `NO')dnl dnl сети и хосты должны быть перечислены в файле CONFDIR/skip_tls_advertise dnl dnl ############################################## dnl dnl поддержка клиентской SMTP Auth (список) dnl NO - не использовать SMTP Auth dnl PLAIN - использовать PLAIN SMTP Auth dnl LOGIN - использовать LOGIN SMTP Auth dnl CRAM-MD5 - использовать CRAM-MD5 SMTP Auth define(`confSMTP_AUTH_CLIENT', `NO')dnl dnl dnl данные аутентификации указываются в файле CONFDIR/smtpauthdb в виде трех колонок, dnl разделенных двоеточиями: dnl host:login:password dnl dnl пример: dnl mail.server:clientname:secret dnl *:defaultclientname:defaultsecret dnl dnl ############################################## dnl dnl поддержка SMTP Auth на сервере dnl NO - не использовать SMTP Auth dnl YES - использовать SMTP Auth define(`confSMTP_AUTH', `NO')dnl dnl использование метода LOGIN dnl NO - не использовать метод LOGIN dnl YES - использовать метод LOGIN define(`confSMTP_AUTH_LOGIN', `YES')dnl dnl использование метода PLAIN dnl NO - не использовать метод PLAIN dnl YES - использовать метод PLAIN define(`confSMTP_AUTH_PLAIN', `YES')dnl dnl использование метода CRAM-MD5 dnl NO - не использовать метод CRAM-MD5 dnl YES - использовать метод CRAM-MD5 define(`confSMTP_AUTH_CRAM_MD5', `NO')dnl dnl использование метода SPA dnl NO - не использовать метод SPA dnl YES - использовать метод SPA define(`confSMTP_AUTH_SPA', `NO')dnl dnl откуда берем пароли dnl PAM - использовать PAM dnl SASLAUTHD - использовать saslauthd dnl PASSWD_PLAIN- использовать нешифрованные пароли из файла passwd dnl PASSWD - использовать шифрованные пароли из файла passwd dnl MYSQL_PLAIN - использовать нешифрованные пароли из MySQL DB dnl MYSQL_ - использовать шифрованные пароли из MySQL DB dnl IMAP - проверять SMTP логин и пароль с использованием IMAP сервера define(`confSMTP_AUTH_SOURCE', `PAM')dnl dnl путь к файлу с нешифрованными паролями define(`confSMTP_AUTH_PASSWD_PLAIN', `/etc/passwd.plain')dnl dnl путь к файлу с шифрованными паролями define(`confSMTP_AUTH_PASSWD', `/etc/master.passwd')dnl dnl запрос к MySQL DB для проверки пароля define(`confSMTP_AUTH_MYSQL_PLAIN', `SELECT clear FROM passwd WHERE id="LOGIN"')dnl define(`confSMTP_AUTH_MYSQL', `SELECT crypt FROM passwd WHERE id="LOGIN"')dnl dnl имя хоста и порт IMAP сервера define(`confSMTP_AUTH_IMAP_HOST', `localhost')dnl define(`confSMTP_AUTH_IMAP_PORT', `143')dnl dnl dnl ############################################## dnl dnl использовать список исключений для анонсирования SMTP Auth dnl NO - не использовать список исключений dnl YES - использовать список исключений define(`confSMTP_AUTH_SKIP_ADVERTIZE', `NO')dnl dnl сети и хосты должны быть перечислены в файле CONFDIR/skip_auth_advertise dnl dnl ############################################## dnl dnl запрет SMTP Auth без шифрования для нелокальных хостов dnl NO - не запрещать SMTP Auth вообще dnl PLAINTEXT - запрет аутентификации с использованием механизмов LOGIN или PLAIN dnl ALL - запрет аутентификации с использованием любых механизмов define(`confDISABLE_AUTH_WITHOUT_TLS', `NO')dnl dnl dnl ################################################################## dnl RELAY dnl ################################################################## dnl dnl глобальный белый список рилеев (исключаются все проверки): dnl NO - не использовать белый список dnl filename - путь к файлу с белым списком define(`confWHITE_LIST_RELAYS', `NO')dnl dnl пример: dnl define(`confWHITE_LIST_RELAYS', CONFDIR`/white_list_relays')dnl dnl dnl ############################################## dnl dnl использовать список рилеев, коннекты с которых будут dropped dnl со стороны клиента это будет выглядеть как connection refused dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_RELAY_DROPPED', `YES')dnl dnl список хостов и сетей указывается в виде CIDR в файле CONFDIR/hosts-dropfrom dnl dnl ############################################## dnl dnl встречная проверка open proxy dnl требуется установленный proxycheck (/usr/ports/security/proxycheck) dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_OPEN_PROXY', `NO')dnl dnl путь к файлу кеша define(`confCHECK_OPEN_PROXY_CACHE', `/var/spool/exim/db/proxycheck.db')dnl dnl время жизни записей в кеше в минутах define(`confCHECK_OPEN_PROXY_CACHE_TTL', `1440')dnl dnl тайм-аут define(`confCHECK_OPEN_PROXY_TIMEOUT', `60')dnl dnl в переменной confCHECK_OPEN_PROXY_HOST необходимо указать хост и порт эталонного MTA dnl в переменной confCHECK_OPEN_PROXY_BANNER необходимо указать SMTP баннер эталонного MTA dnl пример: dnl define(`confCHECK_OPEN_PROXY_HOST', `mail.lucky.net:25')dnl dnl define(`confCHECK_OPEN_PROXY_HOST', `220 planka.carrier.kiev.ua ESMTP')dnl dnl dnl ############################################## dnl dnl проверка наличия записи рилея в реверсной зоне DNS (список) dnl NO - не проводить проверку dnl WARN - вывод в лог файл предупреждения dnl DEFER - возврата клиенту кода 451 dnl REJECT - возврата клиенту кода 5xx, если запись отсутствует в реверсной зоне dnl и 451 в случае проблем с резолвингом dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга dnl DELAY:XX - задержка XX секунд перед ответом на RCPT TO dnl MAIL - проверка резолвинга в acl_smtp_mail dnl RCPT - проверка резолвинга в acl_smtp_rcpt define(`confCHECK_RELAY_RESOLVE', `WARN RCPT')dnl dnl необходимо, чтобы confCHECK_RELAY_RESOLVE наряду с WARN, DEFER или REJECT содержал dnl одно из пары значений MAIL или RCPT dnl значение GREYLIST несовместимо со значением MAIL dnl dnl проверка совпадения записей рилея в прямой и реверсной зонах DNS dnl (проверка работает только если переменная confCHECK_RELAY_RESOLVE не установлена в NO) dnl NO - не проводить проверку dnl WARN - вывод в лог файл предупреждения dnl DEFER - возврата клиенту кода 451 dnl REJECT - возврата клиенту кода 5xx dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга dnl DELAY:XX - задержка XX секунд перед ответом на RCPT TO define(`confCHECK_RELAY_FORGED', `WARN')dnl dnl dnl исключеня из проверки резолвинга в реверсной зоне (список) dnl NO - не делать исключений из проверки резолвинга в реверсной зоне dnl AUTH - не проводить проверку аутентифицированных отправителей dnl RELAY_FROM - не проводить проверку исходящих сообщений dnl WARN - вывод в лог файл предупреждения define(`confCHECK_RELAY_RESOLVE_SKIP', `AUTH RELAY_FROM')dnl dnl в confCHECK_RELAY_RESOLVE_SKIP могут быть указаны несколько значений, разделеные пробелом dnl dnl exim должен быть скомпилирован с поддержкой dnsdb dnl dnl ############################################## dnl dnl проверка PTR записи рилея на принадлежность к dial-up/dsl/cable сетям dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl DEFER - возврата клиенту кода 451 dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_RELAY_DIALUP', `WARN')dnl dnl dnl списки dial-up/dsl/cable хостов и сетей можно указывать в виде PTR записей и доменных зон dnl указываются в файле CONFDIR/access-relay-dialup dnl dnl списки dial-up/dsl/cable хостов и сетей можно указывать в виде A записей и номеров сетей dnl указываются в файле CONFDIR/access-relay-dialup-addr dnl dnl ############################################## dnl dnl проверка рилея в DNS black list-ах dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_RELAY_DNSBL', `NO')dnl dnl dnl список хостов, исключаемых из проверки, указывается в skip_dnsbl_check в виде dnl A записей хостов или CIDR dnl dnl список DNSBL'ей указывается в confCONFDIR/dnsbls.list в виде: dnl dnl : : : dnl dnl dnsbl_zone - зона DNSBL dnl action - что делать при попадании хоста отправителя в DNSBL dnl возможные значения: dnl warn - выводить в лог файл предупреждение dnl reject - отвергать сообщение dnl deny - синоним reject dnl action_if_resolve_tempfail - что делать при временных проблемах с резолвингом dnl возможные значения: dnl pass - принять сообщение dnl defer - вернуть клиенту 4xx dnl dnsbl_type - тип DNSBL'я (может отсутствовать) dnl возможные значения: dnl dialup dnl dnl пример: dnl dynablock.easynet.nl : deny : pass : dialup dnl list.dsbl.org : deny : defer dnl dnl ############################################## dnl dnl проверка рилея в black list'ах dnl NO - не проводить проверку dnl WARN - вывода по умолчанию в лог файл предупреждения dnl REJECT - возврата по умолчанию клиенту кода 5xx dnl DEFER - возврата по умолчанию клиенту кода 4xx dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_RELAY_BLACKLIST', `WARN')dnl dnl dnl в файле access-relay-addr перечисляются A записи хостов и сети в виде CIDR dnl для хостов и сетей, перечисленных в файле access-relay-addr, применяется dnl действие, указанное в переменной confCHECK_RELAY_BLACKLIST dnl dnl в файле access-relay-host перечисляются A записи хостов, сети в виде CIDR, dnl PTR записи хостов, доменные зоны в виде wildcard или регулярных выражений dnl dnl в файле access-relay-host можно указать необходимое действие для данного dnl хоста в виде: dnl host : action : message dnl dnl где dnl host - A запись хоста, сеть в виде CIDR, PTR запись хоста или доменная зона dnl в виде wildcard или регулярного выражения dnl action - действие dnl message - ответ SMTP клиенту dnl dnl возможные значения для action: dnl warn - вывод в лог файл предупреждения dnl reject - отказ в приеме сообщения dnl deny - синоним для reject dnl defer - возврат временной ошибки dnl greylist:X - добавление X баллов к счетчику опционального грейлистинга dnl ok - исключение из проверки для указанного хоста dnl dnl ответ SMTP будет использован в случае указания reject/deny или defer в dnl качестве значения для action. если текст ответа не будет указан, будет dnl использован текст сообщения об ошибке по умолчанию dnl dnl если параметр action не будет указан, будет использоваться действие, указанное dnl в переменной confCHECK_RELAY_BLACKLIST dnl dnl пример: dnl A.B.C.D : defer : message defered. contact postmaster dnl A.B.C.0/24 : deny : sender network blacklisted dnl host.domain.tld : warn dnl host2.domain.tld : ok dnl *.domain.tld dnl \N^.+\.zuper-ISP\..+$\N : reject dnl dnl ################################################################## dnl ENVELOPE dnl ################################################################## dnl dnl встроенная проверка HELO dnl NO - не проводить проверку dnl YES - вывода в лог файл предупреждения define(`confVERIFY_HELO', `NO')dnl dnl dnl ############################################## dnl dnl проверка HELO в виде нашего имени хоста, наших доменов dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_OWN', `WARN')dnl dnl dnl ############################################## dnl dnl проверка наличия HELO в черном списке dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_HELO_BLACKLIST', `NO')dnl dnl dnl черный список HELO находится в файле confCONFDIR/access-helo в виде: dnl : <значение> dnl dnl в качестве "значения" могут выступать: dnl ok - принимать сообщения с данным mail from dnl warn - добавлять в заголовки сообщения поле X-Warn-Sender dnl текст сообщения об ошибке может быть указан через двоеточие dnl deny - отвергать сообщения с данным mail from dnl текст сообщения об ошибке может быть указан через двоеточие dnl dnl пример: dnl # Our own HELO dnl # HMY -- HELO used my credentials dnl # dnl [127.0.0.1] : deny : HMY: Invalid greeting used dnl localhost : deny : HMY: Invalid greeting used dnl [194.183.174.249] : deny : HMY: Invalid greeting used dnl domain.tld : deny : HMY: Invalid greeting used dnl # untrusted HELO dnl # HBL -- HELO blacklisted dnl \N^.+\.localhost\N : deny : HBL: Invalid greeting used dnl localhost.localdomain : deny : HBL: Invalid greeting used dnl compuserv.com : deny : HBL: Invalid greeting used dnl microsoft.com : deny : HBL: Invalid greeting used dnl QRJATIDY : deny : HBL: Invalid greeting used dnl QRJATYDI : deny : HBL: Invalid greeting used dnl dnl ############################################## dnl dnl HELO, состоящих из одной точки, или без точки dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_MISCONFIGURED', `WARN')dnl dnl dnl ############################################## dnl dnl HELO, содержит символ подчеркивания "_" dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_UNDERSCORE', `NO')dnl dnl dnl ############################################## dnl dnl проверка HELO в виде IP адреса без квадратных скобок dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_IP', `WARN')dnl dnl dnl ############################################## dnl dnl проверка соответствия HELO и PTR записи рилея dnl в общем случае используется, когда: dnl HELO заканчивается на название домена, то и PTR запись рилея dnl должна заканчиваться на этот домен dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_HELO_FORGED', `NO')dnl dnl dnl соответствие HELO и PTR записей рилеев описано в файле confCONFDIR/access-helo-forged в виде: dnl : : : dnl dnl helo_regexp - регулярное выражение, применяемое к HELO dnl hostname_regexp - регулярное выражение, которому должна соответствовать PTR dnl запись рилея при соответствии HELO первому регуляному выражению dnl action - действие в случае несоответствия PTR записи рилея второму dnl регуляному выражению dnl возможные значения: dnl warn - выдать предупреждение в лог файл dnl deny - отвергнуть сообщение dnl reject - синоним deny dnl action_if_resolve_tempfail - действие в случае проблем с резолвингом PTR записи рилея dnl регулярное выражение обязательно указыватеся без \N в начале и в конце dnl возможные значения: dnl defer - вернуть клиенту 4xx dnl pass - принять сообщение dnl warn - выдать предупреждение в лог файл dnl dnl пример: dnl \N^(.+\.)*compuserve\.com$\N : deny : defer : ^(.+\.)*compuserve\.com$ dnl \N^(.+\.)*hotmail\.com$\N : deny : defer : ^(.+\.)*hotmail\.com$ dnl \N^(.+\.)*galaradio\.com$\N : warn : pass : ^(.+\.)*galaradio\.com$ dnl dnl исключения указываются в файле confCONFDIR/skip_helo_forged_check в виде: dnl <адрес_рилея> : dnl dnl в качестве адреса рилея может быть указана A запись хоста или сеть в виде CIDR dnl в качестве regexp указывается регулярное выражение, которому должно соответствовать HELO dnl сообщений данного рилея dnl регексп обязательно указыватеся без \N в начале и в конце dnl dnl пример: dnl 66.218.64.0/19 : ^(.+\.)*yahoo\.com$ dnl 213.180.200.0/24 : ^(.+\.)*yandex\.ru$ dnl dnl ############################################## dnl dnl проверка FQDN хоста отправителя в HELO по следующему алгоритму: dnl 1. поизводится получение A записи аргумента команды HELO dnl 2. полученная A запись сравнивается с A записью рилея dnl 3. если A записи равны, проверка оканчивается успешно dnl 4. если A записи не равны, сравниваются доменные части HELO и PTR записи рилея dnl 5. если они не равны, сообщение считается не прошедшим проверку dnl 6. если доменные части HELO и PTR записи рилея равны, то сравниваются номера dnl сетей класса C полученной ранее A записи HELO и A записи рилея dnl 7. если номера сетей равны (A запись HELO и A запись рилея находятся в одной dnl сети класса C), то проверка оканчивается успешно dnl 8. в противном случае сообщение считается не прошедшим проверку dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl DEFER - возврата клиенту кода 451 dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_FQDN', `NO')dnl dnl исключеня из проверки FQDN в HELO (список) dnl AUTH - не проводить проверку аутентифицированных отправителей dnl RELAY_FROM - не проводить проверку исходящих сообщений dnl HOST_LIST - не проводить проверку сообщений, получаемых с определенного списка хостов dnl (список хостов/сетей находится в файле skip_helo_fqdn_check) define(`confCHECK_HELO_FQDN_SKIP', `AUTH RELAY_FROM')dnl dnl dnl ############################################## dnl dnl проверка HELO в виде имени хоста, принадлежащего к dial-up/dsl сетям dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl DEFER - возврата клиенту кода 451 dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_HELO_DIALUP', `WARN')dnl dnl dnl ############################################## dnl dnl проверка наличия 8-битных символов в ENVELOPE FROM dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_MAIL_8BIT', `REJECT')dnl dnl dnl ############################################## dnl dnl проверка A записи домена отправителя dnl (несуществующие домены из зон .net и .com могут иметь A запись 64.94.110.11) dnl NO - не проводить проверку dnl YES - проводить проверку dnl IGNORE - возврата клиенту кода 5xx при встречной проверке отправителя define(`confCHECK_MAIL_DOMAIN', `NO')dnl dnl dnl ############################################## dnl dnl проверка адреса отправителя dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения (не выводятся для сообщений, попадающих в исключения) dnl WARN_LOG - вывода в лог файл предупреждения (выводятся и для сообщений, попадающих в исключения) dnl REJECT - возврата клиенту кода 5xx dnl REJECT_LOG - возврата клиенту кода 5xx (для сообщений, попадающих в исключения, выводится предупреждения) define(`confVERIFY_SENDER', `REJECT')dnl dnl dnl не нужно производить встречную проверку отправителя для: dnl получателей, перечисленных в skip_verify_sender_rcpt dnl отправителей, перечисленных в skip_verify_sender_mail dnl рилеев, перечисленных в skip_verify_sender_relay dnl dnl величина таймаута при проверке отправителя define(`confVERIFY_SENDER_TIMEOUT', `120s')dnl dnl dnl файл с перечисленными адресами/доменами получателей, для которых при verify sender надо использовать defer=ok define(`confVERIFY_SENDER_DEFER_OK_RCPT', `')dnl dnl пример: dnl define(`confVERIFY_SENDER_DEFER_OK_RCPT', `CONFDIR/verify_sender_defer_ok_rcpt')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl my.domain.com : user : info : admin dnl my.another.domain.com : !user : * dnl dnl файл с перечисленными доменами/адресами отправителей, для которых при verify sender надо использовать defer=ok define(`confVERIFY_SENDER_DEFER_OK_MAIL', `')dnl dnl пример: dnl define(`confVERIFY_SENDER_DEFER_OK_MAIL', `CONFDIR/verify_sender_defer_ok_mail')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl sender.domain.com : user : info : admin dnl dnl ############################################## dnl dnl проверка получателя в relay_to_domains dnl dnl величина таймаута при проверке получателя в relay_to_domains define(`confVERIFY_RECIPIENT_TIMEOUT', `120s')dnl dnl dnl файл с перечисленными адресами/доменами получателей, для которых при verify recipient надо использовать defer=ok define(`confVERIFY_RECIPIENT_DEFER_OK_RCPT', `')dnl dnl пример: dnl define(`confVERIFY_RECIPIENT_DEFER_OK_RCPT', `CONFDIR/verify_recipient_defer_ok_rcpt')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl my.domain.com : user : info : admin dnl my.another.domain.com : !user : * dnl dnl файл с перечисленными доменами/адресами получателей, для которых при verify recipient надо использовать defer=ok define(`confVERIFY_RECIPIENT_DEFER_OK_MAIL', `')dnl dnl пример: dnl define(`confVERIFY_RECIPIENT_DEFER_OK_MAIL', `CONFDIR/verify_recipient_defer_ok_mail')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl sender.domain.com : user : info : admin dnl dnl ############################################## dnl dnl указание списка адресов, письма для которых не подвергаются проверкам dnl NO - не указывается список (по умолчанию проверкам не подвергаются dnl ящики postmaster и abuse локальных доменов) dnl YES - использовать список адресов из файла CONFDIR/recipients_spam_friends define(`confRECIPIENTS_SPAM_FRIENDS', `NO')dnl dnl dnl адреса в файле CONFDIR/recipients_spam_friends указываются в виде: dnl domain0 : maibox00 : mailbox01 : mailbox02 dnl domain1 : maibox10 : mailbox11 dnl список адресов по умолчанию можно указать, используя "*" в качестве домена dnl пример: dnl domain.tld : abuse dnl our.domain.com : postmaster : abuse : the_boss dnl other.domain.com : !spam_hater : * dnl * : postmaster : abuse dnl dnl ############################################## dnl dnl проверка существования получателей в доменах с фиксированным списком получателей dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_RCPT_INVALID', `NO')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl zuper.domain.com : user : info : admin dnl dnl применим для доменов, для которых мы являемся backup MX dnl dnl для доменов с фиксированным набором ящиков можно указать их как исключения в данном списке dnl (предварив каждый знаком "!") и указать последним элементом знак "*": dnl test.kiev.ua : !postmaster : !abuse : * dnl test2.kiev.ua : !postmaster : !abuse : !iam : !alex : * dnl dnl ############################################## dnl dnl проверка приема/передачи почты с только входящих адресов dnl почта с таких адресов не принимается dnl сообщения об ошибках для таких адресов не принимаются dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_RCPT_INCOMING_ONLY', `NO')dnl dnl dnl список только входящих адресов указывается в файле CONFDIR/addresses_incoming_only в виде: dnl domain : addr1 : addr2 : addr3 dnl dnl пример: dnl my.domain.com : support : sales : info dnl dnl ############################################## dnl dnl защита от словарных аттак на локальные домены dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_DICT_ATTACK', `NO')dnl dnl максимально допустимое количество несуществующих пользователей define(`confCHECK_DICT_ATTACK_RCPT_FAIL_COUNT', `5')dnl dnl задержка перед выводом последнего сообщения об ошибке и обрыве коннекта define(`confCHECK_DICT_ATTACK_DELAY', `30')dnl dnl dnl ############################################## dnl dnl проверка количества получателей в письмах с MAIL FROM:<> dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_DSN_RCPT_COUNT', `WARN')dnl dnl исключение соощений от локальных пользователей из проверки количества получателей в письмах с MAIL FROM:<> dnl NO - не делать исключение dnl YES - делать исключение define(`confCHECK_DSN_RCPT_COUNT_SKIP_RELAYFROM', `YES')dnl dnl dnl ############################################## dnl dnl проверка адресов хостов отправителя на принадлежность к relay_from_hosts, dnl если в MAIL FROM или RCPT TO указан внутренний домен dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_FAKE_INTERNAL', `WARN')dnl dnl список доменов и отдельных адресов, счиющихся внутренними, указан в файле domains-internal dnl dnl ############################################## dnl dnl проверка адресов хостов отправителя на принадлежность к relay_from_hosts, dnl если в MAIL FROM и RCPT TO указаны одинаковые адреса из локальных доменов dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_FAKE_LOCAL', `WARN')dnl dnl dnl ############################################## dnl dnl проверка адреса получателя в black list'ах dnl NO - не проводить проверку dnl YES - не проводить проверку define(`confCHECK_RCPT_BLACKLIST', `NO')dnl dnl dnl черный список получателей находится в файле confCONFDIR/access-rcpt в виде: dnl : <значение> dnl dnl в качестве "значения" могут выступать: dnl ok - принимать сообщения с данным rcpt to dnl warn - добавлять в заголовки сообщения поле X-Warn-Recipient dnl текст сообщения об ошибке может быть указан через двоеточие dnl deny - отвергать сообщения с данным rcpt to dnl текст сообщения об ошибке может быть указан через двоеточие dnl dnl пример: dnl lesya@tcu.kiev.ua : deny : RAB: Access denied dnl *@realdeals4u.net : deny dnl shadowcrew@ziplip.com : deny dnl postmaster@domain.ua : ok dnl abuse@domain.ua : warn dnl admin@domain.ua : ok dnl *@domain.ua : reject : access denied dnl dnl ############################################## dnl dnl проверка адреса отправителя в black list'ах dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_MAIL_BLACKLIST', `NO')dnl dnl dnl черный список отправителей находится в файле confCONFDIR/access-mail в виде: dnl : <значение> dnl dnl в качестве "значения" могут выступать: dnl ok - принимать сообщения с данным mail from dnl warn - добавлять в заголовки сообщения поле X-Warn-Sender dnl текст сообщения об ошибке может быть указан через двоеточие dnl deny - отвергать сообщения с данным mail from dnl текст сообщения об ошибке может быть указан через двоеточие dnl reject - аналог deny dnl dnl пример: dnl lesya@tcu.kiev.ua : deny : SAB: Access denied dnl *@realdeals4u.net : deny dnl shadowcrew@ziplip.com : deny dnl postmaster@domain.ua : ok dnl abuse@domain.ua : warn dnl admin@domain.ua : ok dnl *@domain.ua : reject : access denied dnl dnl ############################################## dnl dnl проверка комбинации адреса отправителя и получателя dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_COMPAT', `NO')dnl dnl dnl комбинации адресов отправителей и получателей указываются в файле CONFDIR/access-compat dnl в виде: dnl sender_mailbox@sender.domain<@>rcpt_mailbox@rcpt.domain : action : message dnl dnl в качестве action могут быть использованы: dnl warn - выдача предупреждения в лог файл и в заголовки письма dnl deny или reject - отказ в приеме сообщения dnl drop или discard - удаление сообщения dnl defer - возврат временной ошибки отправителю dnl dnl сообщение message может отсутствовать dnl dnl в адресе отправителя в левой части допустимо использование масок: dnl *@sender.domain<@>rcpt_mailbox@rcpt.domain : deny : Access denied dnl dnl допустимо использование регулярных выражений: dnl \N^<@>(hostmaster|ftpmaster)@rcpt\.domain$\N : deny : Null sender rejected. This is incoming address only. dnl dnl примеры: dnl <@>hostmaster@domain.tld : deny : Null sender rejected. This is incoming address only. dnl a@b.c<@>hostmaster@domain.tld : warn dnl *@b.c<@>hostmaster@domain.tld : drop dnl *<@>hostmaster@domain.tld : warn dnl <@>*@domain.tld : deny dnl a@b.c<@>*@domain.tld : warn : Access denied dnl *@b.c<@>*@domain.tld : warn dnl *<@>*@domain.tld : warn dnl \N^<@>.+@domain.tld\N : deny dnl \N^a@b.c<@>.+@domain.tld\N : warn dnl \N^.+@b.c<@>.+@domain.tld\N : defer dnl \N^.+<@>.+@domain.tld\N : warn dnl dnl ############################################## dnl dnl проверка числовых почтовых ящиков отправителя/получателей dnl числовыми считаются ящики, состоящие только из цифр и символов ".", "-" и "_" dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_NUMERIC_MAILBOX', `WARN')dnl dnl домены, исключаемые из проверки числовых почтовых ящиков отправителей/получателей dnl перечислены в файле skip_numeric_mailbox_check dnl dnl дополнительная проверка почтовых ящиков отправителя на наличие цифр в начале dnl числовыми считаются ящики, начинающиеся с confCHECK_MAILBOX_MAXDIGITS_COUNT и более цифр define(`confCHECK_NUMERIC_MAILBOX_MAXDIGITS_COUNT', `5')dnl dnl dnl ############################################## dnl dnl проверка количества цифр в домене адреса отправителя, хосте отправителя и helo dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_DIGITS', `NO')dnl dnl dnl максимальное кол-во цифр в младшей части $sender_host_name define(`confMAX_DIGITS_SENDER_SUBHOSTNAME', `5')dnl dnl максимальное кол-во цифр в $sender_host_name define(`confMAX_DIGITS_SENDER_HOSTNAME', `6')dnl dnl dnl максимальное кол-во цифр в младшей части $sender_address_domain define(`confMAX_DIGITS_SENDER_ADDRESS_SUBDOMAIN', `5')dnl dnl максимальное кол-во цифр в $sender_address_domain define(`confMAX_DIGITS_SENDER_ADDRESS_DOMAIN', `6')dnl dnl dnl максимальное кол-во цифр в младшей части $sender_helo_name define(`confMAX_DIGITS_SENDER_SUBHELO', `5')dnl dnl максимальное кол-во цифр в $sender_helo_name define(`confMAX_DIGITS_SENDER_HELO', `6')dnl dnl dnl ############################################## dnl dnl проверка адреса получателя в RFC Ignorant Lists dnl NO - не проводить проверку dnl YES - производить роутинг define(`confCHECK_RFC_IGNORANT', `NO')dnl dnl проверка адреса получателя в abuse RFC Ignorant Lists dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl DROP - возврата клиенту кода 5xx с обрывом соединения dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_RFC_IGNORANT_ABUSE', `WARN')dnl dnl проверка адреса получателя в postmaster RFC Ignorant Lists dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl DROP - возврата клиенту кода 5xx с обрывом соединения dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_RFC_IGNORANT_POSTMASTER', `WARN')dnl dnl проверка адреса получателя в DSN RFC Ignorant Lists dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl DROP - возврата клиенту кода 5xx с обрывом соединения dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_RFC_IGNORANT_DSN', `WARN')dnl dnl проверка адреса получателя в bogusmx RFC Ignorant Lists dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl DROP - возврата клиенту кода 5xx с обрывом соединения dnl GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга define(`confCHECK_RFC_IGNORANT_BOGUSMX', `REJECT')dnl dnl dnl ############################################## dnl dnl проверка наличия почтового ящика и домена получателя в почтовом ящике отправителя dnl пример: dnl MAIL FROM: dnl RCPT TO: dnl NO - не производить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_SENDER_MAILBOX', `NO')dnl dnl dnl ################################################################## dnl HEADER dnl ################################################################## dnl dnl проверка charset из поля Content-Type: dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_CHARSET', `NO')dnl dnl dnl политика по умолчанию для проверки charset'а, если таковая не указана в dnl confCONFDIR/access-charsets: dnl OK - принимать сообщения dnl WARN - вывода в лог файл предупреждения dnl DENY - не принимать сообщения dnl REJECT - не принимать сообщения define(`confCHECK_CHARSET_DEFAULT', `WARN')dnl dnl dnl возможные действия для каждого charset приведены в файле confCONFDIR/access-charsets в виде: dnl charset : значение dnl dnl в качестве "значения" могут выступать: dnl ok - принимать сообщения с данным charset-ом dnl warn - добавлять в заголовки сообщения поле X-Warn-Charset dnl текст значения поля может быть указан через двоеточие dnl deny - не принимать сообщения с данным charset-ом dnl текст значения поля может быть указан через двоеточие dnl dnl политику по умолчанию можно определить, указав вместо чарсета слово default dnl значениями политики по умолчанию могут быть те же три значения, что и для любого чарсета: dnl ok, warn или deny с текстом сообщения об ошибке dnl если политика по умолчанию не определена в файле confCONFDIR/access-charsets, используется dnl значение, указанное в confCHECK_CHARSET_DEFAULT dnl dnl пример: dnl koi8-r : ok dnl windows-1251 : ok dnl big5 : deny : we can not understand chinesse language dnl default : warn dnl dnl при необходимости можно указать в начале сообщения об ошибке расширенный код ошибки: dnl some_charset : deny : 5.7.1 this charset disabled due to the local policy dnl dnl ############################################## dnl dnl проверка поля Content-Transfer-Encoding при наличии в поле Content-Type кириллических чарсетов dnl для text/plain и test/html сообщений dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_TRANSFER_ENCODING', `NO')dnl dnl dnl проверка поля Content-Transfer-Encoding при наличии в поле Content-Type кириллических чарсетов dnl для multipart сообщений dnl доступно с exiscan-acl-4.30-16 dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_TRANSFER_ENCODING_MULTIPART', `NO')dnl dnl dnl для описания поведения MTA используется файл confCONFDIR/access-transfer-encodings dnl в нем хранится информация трех типов: dnl 1. какие charset'ы будут маскироваться звездочкой dnl 2. кодирование разлиных X-Mailer dnl 3. собственно правила для разных триплетов charset/transfer-encoding/mailer dnl dnl charset'ы указываются в виде: dnl charset=<название charset'а> dnl dnl например: dnl charset=koi8-r dnl charset=windows-1251 dnl dnl для сообщений с этими charset'ами будут использованы правила, у которых в качестве charset dnl будет указана звездочка. обычно необходимо перечислить все кириллические (8-битные) charset'ы dnl dnl значение полей X-Mailer кодируется в виде регулярного выражения с префиксом "mailer=": dnl \N^(?i)mailer=$\N : dnl dnl кодовое название мейлера mailer_name не должно содержать пробельных символов и символа ":" dnl dnl пример: dnl \N^(?i)mailer=SquirrelMail\s*\(.+\)$\N : squirrelmail dnl dnl т. е. для сообщений со значением X-Mailer, соответствующим регулярному выражению dnl /^SquirrelMail\s*\(.+\)$/, будут применяться все правила, у которых в триплете в качестве dnl mailer'а будет указано "squirrelmail" dnl dnl собственно, сами правила указываются в виде: dnl || : <действие> : <сообщение> dnl dnl 1. в качестве charset может быть указан либо конкретный charset, либо звездочка. тогда dnl правило будет применено для charset'ов, указанных с префиксом "charset=" dnl 2. в качестве transfer-encoding'а можно использовать "7bit", "8bit" или пустое значение, dnl которое воспринимается как отсутствие поля Content-Transfer-Encoding dnl 3. в качестве mailer'а указывается то кодовое название mailer'а, которое было описано с dnl префиксом "mailer=" dnl указание mailer'а может быть опущено вместе с предшествующим разделителем "|". тогда правило dnl будет применено ко сообщениям без учета поля X-Mailer dnl dnl в качестве "действия" могут выступать: dnl ok - принимать сообщения с данным transfer-encoding-ом dnl warn - добавлять в заголовки сообщения поле X-Warn-Charset dnl текст значения поля может быть указан через двоеточие dnl deny - не принимать сообщения с данным charset-ом dnl текст сообщения об ошибке может быть указан через двоеточие dnl dnl примеры: dnl dnl отвергнуть все сообщения с charset=windows-1251 и Content-Transfer-Encoding: 7bit dnl для остальных проверяемых charset-ов добавляется поле X-Warn-Transfer-Encoding:, dnl кроме собщений, отосланных с помощью X-Mailer: PocoMail dnl \N^(?i)mailer=PocoMail\s.+$\N : pocomail dnl *|7bit|pocomail : ok dnl windows-1251|7bit : deny : 5.7.1 broken Content-Transfer-Encoding detected dnl *|7bit : warn dnl dnl отвергать все сообщения с charset=windows-1251 без поля Content-Transfer-Encoding dnl для остальных проверяемых charset-ов вставлять поле X-Warn-Transfer-Encoding: со значением dnl этого поля по умолчанию dnl для сообщений с X-Mailer: SquirrelMail вставляется поле X-Warn-Transfer-Encoding: с отдельным dnl значением dnl dnl \N^(?i)mailer=SquirrelMail\s*\(.+\)$\N : squirrelmail dnl *||squirrelmail : warn : squirrelmail does not add field Content-Transfer-Encoding :-( dnl windows-1251| : deny : 5.7.1 Content-Transfer-Encoding field expected dnl *| : warn : Content-Transfer-Encoding field expected dnl dnl ############################################## dnl dnl проверка соответсвия расширения файла аттачмента CLSID'у dnl http://www.exim.org/pipermail/exim-users/Week-of-Mon-20040105/064659.html dnl http://www.geocities.com/floydian_99/invisible.html dnl http://www.exim.org/pipermail/exim-users/Week-of-Mon-20040105/064696.html dnl http://exim.got-there.com/forums/viewtopic.php?t=463 dnl доступно с exiscan-acl-4.30-16 dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_CLSID', `NO')dnl dnl dnl ############################################## dnl dnl проверка расширений прикрепленных файлов dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl FAKEREJECT - возврата клиенту кода 5xx с одновременной доставкой сообщения define(`confCHECK_FILE_EXT', `NO')dnl dnl dnl список блокируемых расширений файлов (список, значения указываются через двоеточие) define(`confCHECK_FILE_EXT_LIST', `com:exe:bat:cmd:wsh:wsf:wsp:lnk:scr:pif:js:jse:vbs:vbe:hta:dll:hlp:chm:shs:cpl')dnl dnl define(`confCHECK_FILE_EXT_LIST', `exe:com:bat:cmd:vbs:pl:bas:js:java:reg:shs:pif:scr:dll:ssh:chm:hlp:lnk:html:htm:shtml:shtm')dnl dnl define(`confCHECK_FILE_EXT_LIST', `com:exe:bat:cmd:wsh:wsf:wsp:lnk:scr:pif:js :jse:vbs:vbe:hta:dll:hlp:chm:shs:cpl:vba:btm:msi:msc:css:sct:bas:msp:mst:pcd :url:ins:isp:vb:wsc:shb') dnl dnl исключение из проверки расширений файлов (список, значения указываются через пробел) dnl AUTH - не проводить проверку для аутентифицированных сообщений dnl RELAY_FROM - не проводить проверку для исходящих сообщений dnl WHITE_LIST_RELAYS - не проводить проверку для сообщений из white_list_relays define(`confCHECK_FILE_EXT_SKIP', `AUTH RELAY_FROM WHITE_LIST_RELAYS')dnl dnl dnl при использовании WARN или FAKEREJECT можно в системном фильтре блокировать доставку сообщений dnl и при этом сохранять их в отдельном каталоге dnl dnl ############################################## dnl dnl проверка двойных расширений прикрепленных файлов dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl FAKEREJECT - возврата клиенту кода 5xx с одновременной доставкой сообщения define(`confCHECK_DOUBLE_EXT', `NO')dnl dnl dnl список блокируемых расширений файлов (список, значения указываются через двоеточие) dnl define(`confCHECK_FILE_EXT_LIST', `com:exe:bat:cmd:lnk:scr:pif:vbs:js:dll:hlp:chm:shs')dnl dnl define(`confCHECK_FILE_EXT_LIST', `exe:com:bat:cmd:vbs:pl:bas:js:java:reg:shs:pif:scr:dll:ssh:chm:hlp:lnk:html:htm:shtml:shtm')dnl dnl dnl исключение из проверки расширений файлов (список, значения указываются через пробел) dnl AUTH - не проводить проверку для аутентифицированных сообщений dnl RELAY_FROM - не проводить проверку для исходящих сообщений dnl WHITE_LIST_RELAYS - не проводить проверку для сообщений из white_list_relays dnl ACCESS_FILENAMES - исключать из проверки имена файлов, перечисленные в CONFDIR/access-double-ext define(`confCHECK_DOUBLE_EXT_SKIP', `AUTH RELAY_FROM')dnl dnl dnl при использовании WARN или FAKEREJECT можно в системном фильтре блокировать доставку сообщений dnl и при этом сохранять их в отдельном каталоге dnl dnl ############################################## dnl dnl проверка boundary в multipart собщениях dnl доступно с exiscan-acl-4.30-16 dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl EMPTY - проверка на существование boundary dnl LONG - проверка длины boundary dnl допустимые комбинации: dnl `NO' dnl `WARN EMPTY' dnl `WARN LONG' dnl `WARN EMPTY LONG' dnl `REJECT EMPTY' dnl `REJECT LONG' dnl `REJECT EMPTY LONG' define(`confCHECK_BOUNDARY', `NO')dnl dnl максимальная длина boundary define(`confCHECK_BOUNDARY_MAX_LENGTH', `70')dnl dnl dnl ############################################## dnl dnl проверка наличия 8-битных символов в полях заголовка dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx dnl FAKEREJECT - возврата клиенту кода 5xx с одновременной доставкой сообщения define(`confCHECK_8BIT_HEADERS', `WARN')dnl dnl dnl адреса отправителей, исключаемых из проверки на наличие 8-битных символов в заголовках dnl NO - не делать исключений dnl имя файла define(`confCHECK_8BIT_HEADERS_SKIP', `NO')dnl dnl пример: dnl define(`confCHECK_8BIT_HEADERS_SKIP', CONFDIR`/skip_8bit_check_senders')dnl dnl список указывается в виде: dnl domain : addr1 : addr2 : addr3 dnl пример: dnl zuper.domain.com : user : info : admin dnl test.domain.com : !test : * dnl dnl ############################################## dnl dnl проверка поля X-Mailer dnl NO - не проводить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_MAILER', `WARN')dnl dnl dnl ############################################## dnl dnl добавление поля Date dnl по умолчанию начиная с версии 4.30 поле Date добавляется только в локально dnl полученные сообщения (не по SMTP) dnl несколько значений (кроме NO) могут быть перечислены через пробел в виде списка dnl NO - ну добавлять поле Date dnl RELAY - добавлять поле Date в сообщения от relay_from_hosts dnl AUTH - добавлять поле Date в сообщения от аутентифицированных отправителей dnl ALL - добавлять поле Date во все сообщения define(`confDATE_HEADER_ADD', `ALL')dnl dnl dnl ############################################## dnl dnl добавление поля Message-Id dnl по умолчанию начиная с версии 4.30 поле Message-Id добавляется только в локально dnl полученные сообщения (не по SMTP) dnl несколько значений (кроме NO) могут быть перечислены через пробел в виде списка dnl NO - ну добавлять поле Message-Id dnl RELAY - добавлять поле Message-Id в сообщения от relay_from_hosts dnl AUTH - добавлять поле Message-Id в сообщения от аутентифицированных отправителей dnl ALL - добавлять поле Message-Id во все сообщения define(`confMESSAGE_ID_HEADER_ADD', `RELAY AUTH')dnl dnl доменная часть поля Message-Id dnl по умолчанию используется $primary_hostname define(`confMESSAGE_ID_HEADER_DOMAIN', `')dnl dnl dnl ############################################## dnl dnl проверка поля Message-Id dnl NO - не проводить проверку dnl EMPTY:WARN - вывода в лог файл предупреждения dnl при пустом Message-Id dnl EMPTY:REJECT - возврата клиенту кода 5xx dnl при пустом Message-Id dnl OWN:WARN - вывода в лог файл предупреждения, dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl OWN:REJECT - возврата клиенту кода 5xx, dnl если Message-Id содержит $qualify_domain dnl или message_id_header_domain dnl LOCAL:WARN - вывода в лог файл предупреждения, dnl если Message-Id содержит локальный домен dnl LOCAL:REJECT - возврата клиенту кода 5xx, dnl если Message-Id содержит локальный домен define(`confCHECK_MESSAGE_ID', `WARN')dnl dnl несколько значений могут быть указаны через пробел dnl define(`confCHECK_MESSAGE_ID', `EMPTY:REJECT OWN:REJECT LOCAL:WARN')dnl dnl значение `WARN' приравнивается к dnl `EMPTY:WARN OWN:WARN LOCAL:WARN' dnl значение `REJECT' приравнивается к dnl `EMPTY:REJECT OWN:REJECT LOCAL:REJECT' dnl dnl ############################################## dnl dnl проверка поля Subject dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_SUBJECT', `NO')dnl dnl dnl возможные действия для каждого subject приведены в файле confCONFDIR/access-subject в виде: dnl subject : действие dnl dnl в качестве "действия" могут выступать: dnl ok - принимать письмо dnl warn - принимать письмо, внести в лог файл запись, добавить поле X-Warn-Subject в заголовок dnl deny - не принимать сообщения с данным Subject dnl reject - эквивалентно deny dnl любая строка - эквивалентно deny, но при этом "действие" используется как текст сообщения dnl об ошибке dnl dnl значением по умолчанию является deny dnl dnl если необходимо записать значение поля, содержащее пробелы или символ двоеточия, то dnl его (значение) надо записывать в виде регулярного выражения dnl dnl значения полей можно писать как в виде 8-битных символов, так и в виде mimed текста dnl т. е. значения, закодированные с помощью base64 и quoted-printable будут проверяться как dnl до декодирования, так и после dnl dnl пример: dnl dnl money : warn dnl \N^Украинский\s+Центр\s+Директ\s+Мэйл\N : Ukrainian Direct Mail Centre, go away dnl \N^сЙПЮХМЯЙХИ\s+жЕМРП\s+дХПЕЙР\s+лЩИК\N : Ukrainian Direct Mail Centre, go away dnl \N^\s*=\?koi8-r\?B\?7yDOz9fPzSDLzMnFztTF\?=\N : Access denied dnl dnl при необходимости можно указать в начале сообщения об ошибке расширенный код ошибки: dnl dnl some_text : 5.7.1 this subject disabled due to the local policy dnl dnl ############################################## dnl dnl проверка поля Organization dnl NO - не проводить проверку dnl YES - проводить проверку define(`confCHECK_ORG', `NO')dnl dnl dnl возможные действия для каждого Ogranization приведены в файле confCONFDIR/access-org в виде: dnl organization : действие dnl dnl в качестве "действия" могут выступать: dnl ok - принимать письмо dnl warn - принимать письмо, внести в лог файл запись, добавить поле X-Warn-Org в заголовок dnl deny - не принимать сообщения с данным Organization dnl reject - эквивалентно deny dnl любая строка - эквивалентно deny, но при этом "действие" используется как текст сообщения dnl об ошибке dnl dnl значением по умолчанию является deny dnl dnl если необходимо записать значение поля, содержащее пробелы или символ двоеточия, то dnl его (значение) надо записывать в виде регулярного выражения dnl dnl значения полей можно писать как в виде 8-битных символов, так и в виде mimed текста dnl т. е. значения, закодированные с помощью base64 и quoted-printable будут проверяться как dnl до декодирования, так и после dnl dnl пример: dnl dnl Zuper : warn dnl \N^Украинский\s+Центр\s+Директ\s+Мэйл\N : Ukrainian Direct Mail Centre, go away dnl \N^сЙПЮХМЯЙХИ\s+жЕМРП\s+дХПЕЙР\s+лЩИК\N : Ukrainian Direct Mail Centre, go away dnl \N^\s*=\?windows-1251\?B\?0\+rw4Ojt8ero6SDW5e3y8CDE6PDl6vIgzP3p6w==\?=\N : Ukrainian Direct Mail Centre, go away dnl dnl при необходимости можно указать в начале сообщения об ошибке расширенный код ошибки: dnl dnl some_text : 5.7.1 this messages rejected due to the local policy dnl dnl ################################################################## dnl BODY dnl ################################################################## dnl dnl при помещении вирусов в карантин (значение `WARN' для вышеописанных опций) сохранять ли dnl зараженные сообщения в резервных копиях писем: dnl NO - не создавать резервные копии зараженных сообщений dnl YES - создавать резервные копии зараженных сообщений define(`confANTIVIRUS_SAVE_BACKUP', `NO')dnl dnl dnl ############################################## dnl dnl использование spamassassin dnl NO - не проводить проверку dnl YES - проводить проверку define(`confSPAMASSASSIN', `NO')dnl dnl dnl команда получения названия и версии демона spamassassin define(`confSPAMASSASSIN_NAME_VERSION', `spamd -V 2>/dev/null | head -n 1 | perl -p -e "chomp"') define(`confSPAMASSASSIN_NAME_VERSION_DEFAULT', `SpamAssassin Server') dnl dnl пользователь, от имено которого запущен spamd define(`confSPAMASSASSIN_USER', `spamd')dnl dnl dnl действие в случае отсутствия ответа от spamd либо возврата кода ошибки dnl NO - возвращать клиенту 4xx dnl YES - продолжать обработку письма define(`confSPAMASSASSIN_DEFER_OK', `YES') dnl dnl исключения из проверки (список) dnl NO - не делать исключений из проверки dnl AUTH - не проводить проверку аутентифицированных отправителей dnl RELAY_FROM - не проводить проверку исходящих сообщений define(`confSPAMASSASSIN_SKIP', `AUTH RELAY_FROM')dnl dnl dnl ограничение размера проверяемых сообщений dnl NO - не ограничивать размер проверяемых сообщений dnl размер - указать максимальный размер проверяемых сообщений define(`confSPAMASSASSIN_MAX_MSG_SIZE', `128k')dnl dnl dnl величина score, при которой производится действие confSPAMASSASSIN_ACTION вместо пометки сообщения define(`confSPAMASSASSIN_ACTION_SCORE', `15')dnl dnl dnl действие для писем, набравших confSPAMASSASSIN_ACTION_SCORE баллов dnl REJECT - отказ в приеме письма (возврат клиенту кода 5xx) dnl DENY - синоним для REJECT dnl DISCARD - удаление письма dnl DROP - синоним для DISCARD dnl QUARANTINE - вывод в лог файл предупреждения и помещение зараженного письма в карантин define(`confSPAMASSASSIN_ACTION', `REJECT QUARANTINE')dnl dnl действие QUARANTINE можно указывать вместо с REJECT или DISCARD через пробел dnl dnl месторасположение каратнина: dnl доставка в maildir: dnl define(`confSPAMASSASSIN_QUARANTINE_DIR', `/var/vmail/domain.tld/admin/spam-quarantine/')dnl dnl сохранение всех писем в одном каталоге в простых текстовых файлах: define(`confSPAMASSASSIN_QUARANTINE_DIR', `/usr/local/mail/sa/${tod_zulu}-${message_id}')dnl dnl сохранение всех писем в подкаталогах одного каталога в простых текстовых файлах, имя подкаталога состоит из даты: dnl define(`confSPAMASSASSIN_QUARANTINE_DIR', `/usr/local/mail/sa/${substr_1_8:${tod_zulu}}/${tod_zulu}-${message_id}')dnl dnl сохранение в mailbox'е: dnl define(`confSPAMASSASSIN_QUARANTINE_DIR', `/var/mail/sa-quarantine')dnl dnl сохранение в mailbox'е в зависимости от текущей даты: dnl define(`confSPAMASSASSIN_QUARANTINE_DIR', `/var/mail/sa-quarantine-${substr_1_8:${tod_zulu}}')dnl dnl dnl месторасположение каратнина для писем, не получивших максимальную dnl оценку bayes фильтра: dnl define(`confSPAMASSASSIN_QUARANTINE_DIR_LEARN', `/usr/local/mail/sa-learn/${tod_zulu}-${message_id}')dnl dnl правила формирования confSPAMASSASSIN_QUARANTINE_DIR_LEARN такие же, dnl как и для confSPAMASSASSIN_QUARANTINE_DIR dnl dnl действие для старых заголовков (X-Spam-Status, X-Spam-Flag, X-Spam-Score, X-Spam-Report) dnl RENAME - переименование старых заголовков (в конец имени добавляется -Old) dnl REMOVE - удаление старых заголовков dnl NOTHING - оставлять заголовки без изменений define(`confSPAMASSASSIN_OLD_HEADERS', `RENAME')dnl dnl dnl заголовки spamassassin define(`confSPAMASSASSIN_HEADERS', `X-Spam-Checker-Version:X-Spam-Info:X-Spam-Score:X-Spam-Status:X-Spam-Report:X-Spam-Flag:X-Spam-Level:X-Spam-Action:X-Spam-Original-Recipients')dnl dnl dnl имя файла, в котором указаны индивидуальные баллы для пометки и отвержения сообщений dnl в зависимости от адреса получателя dnl NO - не использовать индивидуальные баллы dnl имя_файла - имя файла с индивидуальных баллов define(`confSPAMASSASSIN_SCORE_FILE', `NO')dnl dnl dnl пример: dnl define(`confSPAMASSASSIN_SCORE_FILE', `CONFDIR/sa-scores')dnl dnl баллы в файле указываются в виде: dnl recipient@address : балл_для_пометки : балл_для_отвержения dnl в адресах допустимы шаблоны dnl баллы должны быть целыми числами dnl в качестве балла для пометки можно использовать символ "*" (звездочку) dnl в этом случае сообщение будет помечено как спам, если оно наберет количество dnl баллов, указанное в настройках SpamAssassin dnl в качестве балла для отвержения можно использовать символ "*" (звездочку) dnl в этом случае сообщение будет отвергнуто, если наберет confSPAMASSASSIN_REJECT_SCORE баллов dnl пример: dnl vasya@pupkin.org : * : 10 dnl *@pupkin.org : 7 : 15 dnl *@local.domain : * : * dnl * : 6 : 10 dnl dnl сообщение полностью исключается из проверки, если значение $acl_m9 равно "white_list_relays" dnl dnl ############################################## dnl dnl проверка ошибок MIME dnl NO - не производить проверку dnl WARN - вывода в лог файл предупреждения dnl REJECT - возврата клиенту кода 5xx define(`confCHECK_MIME_ERRORS', `NO')dnl dnl dnl ############################################## dnl dnl проверка тела сообщения по списку регулярных выражений dnl NO - не производить проверку dnl YES - производить проверку define(`confCHECK_BODY_REGEXP', `NO')dnl dnl dnl ################################################################## dnl SYSTEM FILTER dnl ################################################################## dnl dnl использование системного фильтра dnl define(`confSYSTEM_FILTER', `CONFDIR/system_filter')dnl define(`confSYSTEM_FILTER', `')dnl dnl dnl пользователь, от имени которого работает системный фильтр define(`confSYSTEM_FILTER_USER', `mailnull')dnl dnl dnl каталог, в котором сохраняются письма с предупреждениями define(`confSYSTEM_FILTER_WARNINGS_DIR', `/usr/local/mail')dnl dnl время жизни писем с предупреждениями define(`confSYSTEM_FILTER_WARNINGS_AGE', `30')dnl dnl dnl ############################################## dnl dnl использовать резервное копирование почты dnl NO - не использовать резервное копирование почты dnl ROUTER - резервное копирование почты средствами роутеров dnl SYSTEM_FILTER - резервное копирование почты средствами системного фильтра define(`confMAIL_BACKUP', `NO')dnl dnl dnl при define(`confMAIL_BACKUP', `ROUTER'): dnl почтовый адрес, на который будут доставляться резервные копии писем при использовании роутеров dnl адрес может быть нелокальным dnl пример: dnl define(`confMAIL_BACKUP_ADDR', `backup@local.domain.tld')dnl dnl dnl при define(`confMAIL_BACKUP', `SYSTEM_FILTER'): dnl путь к файлу, включаемому в системный фильтр для осуществления резервного копирования сообщений dnl пример: dnl define(`confMAIL_BACKUP_SYSTEM_FILTER', confCONFDIR`/site/system_filter_backup')dnl dnl dnl ################################################################## dnl Antiviruses dnl ################################################################## dnl dnl путь к каталогу антивирусного карантина define(`confQUARANTINE_DIR', `/usr/local/viruses')dnl dnl dnl путь к maildir'у антивирусного карантина dnl пример для dovecot: dnl define(`confQUARANTINE_MAILDIR',`/var/vmail/domain.ltd/admin/.quarantine._AV_NAME.${sg{$malware_name}{\N[\.\s]\N}{_}}/') dnl идентификатор _AV_NAME будет заменен на название антивируса dnl конструкция ${sq необходима для замены точек, используемых dovecot'ом как разделитель dnl в именами maildir'ов, и пробельных символов на символ подчеркивания dnl dnl если существуют обе переменные confQUARANTINE_DIR и confQUARANTINE_MAILDIR, dnl то в качестве антивирусного карантина используется maildir из переменной dnl confQUARANTINE_MAILDIR dnl dnl время жизни зараженных писем в карантине в днях define(`confQUARANTINE_AGE', `30')dnl dnl после удаления старых инфицированных писем для каждого вида вируса оставляется один образец dnl dnl максимальное количество вирусов в карантине dnl define(`confQUARANTINE_MAX_COUNT', `1000')dnl dnl при удалении инфицированных писем оставляется одно самое старое и остальные - самые свежие dnl dnl время жизни непроверенных писем в /var/spool/exim/scan в днях define(`confSPOOL_SCAN_AGE', `7')dnl dnl dnl ################################################################## dnl Antiviruses: настройка антивирусных квитанций dnl ################################################################## dnl dnl отсылка антивирусных квитанций: dnl NO - не отсылать антивирусные квитанции dnl RCPT - отсылать квитанции получателям зараженных сообщений dnl POSTMASTER - отсылать квитанции администратору почтовой/антивирусной системы define(`confAV_NOTIFY', `NO')dnl dnl значения RCPT и POSTMASTER можно указывать вместе, разделяя их пробелом dnl dnl исключения из отсылки антивирусных квитанций: dnl NO - не делать исключений, отсылать квитанции всем получателям dnl YES - отсылать квитанции лишь тем получателям, которые не указаны dnl в CONFDIR/skip_avir_notify_rcpt define(`confAV_NOTIFY_SKIP_RCPT', `YES')dnl dnl в CONFDIR/skip_avir_notify_rcpt исключения указываются в виде: dnl rcpt.domain: user1 : user2 dnl domain2: user2.1 : user2.2 : !* dnl * : * dnl dnl адрес администратора, получающего антивирусных квитанций: define(`confAV_ADMIN', `"AntiVirus Admin "')dnl dnl этот же адрес будет указан в квитанции, как адрес, на который получатель dnl зараженного письма может послать запрос на получение письма из карантина dnl dnl адрес, от имени которого будут отсылаться антивирусные квитанции: define(`confAV_NOTIFY_FROM', `"AntiVirus Daemon "')dnl dnl dnl тема антивирусной квитанции: define(`confAV_NOTIFY_SUBJECT', `VIRUS HAS BEEN FOUND!')dnl dnl при необходимости в теме можно использовать тему зараженного сообщения dnl пример: define(`confAV_NOTIFY_SUBJECT', `Warning: virus has been found in message with subject \"$h_Subject:\"')dnl dnl