# # Проверка комбинации адреса хоста отправителя, адресов отправителя и получателя # # NO - не проводить проверку # REJECT - возврат клиенту кода 5xx # REJECT_ALL - отказ в приеме письма для всех получателей # QUARANTINE - принять письмо с сохранением в карантин без доставки получателям # QUARANTINE_OTHER - при отказе в приеме письма текущему получателю и наличии других получателей # письмо доставляется в карантин без доставки этим остальным получателям # DEFER - возврат клиенту кода 451 # WARN - вывод в лог файл предупреждения # GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга # REJECT:XX - добавить XX баллов к счетчику опционального reject'а # DELAY:XX - задержка XX секунд перед ответом на RCPT TO # define(`confCHECK_ACCESS_COMPAT_RELAY', `NO')# # # место хранения списков доступа # TEXT - хранение списков доступа в access-compat-relay # DBM - хранение списков доступа в dbm файле # SQLITE - хранение списков доступа в БД SQLite # MYSQL - хранение списков доступа в БД MySQL # define(`confCHECK_ACCESS_COMPAT_RELAY_BACKEND', `TEXT')# # # при TEXT в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # # комбинации адресов отправителей и получателей указываются в файле CONFDIR/access-compat-relay # в виде: # sender_host_address<@>sender_mailbox@sender.domain<@>rcpt_mailbox@rcpt.domain : действие : сообщение : сообщение в лог файл # sender_host_name<@>sender_mailbox@sender.domain<@>rcpt_mailbox@rcpt.domain : действие : сообщение : сообщение в лог файл # sender_host_address<@>sender_mailbox@sender.domain<@> : действие : сообщение : сообщение в лог файл # # в качестве "действия" могут быть использованы: # ok - принимать сообщения с данной парой mail from и rcpt to # whitelist - исключить из проверок пары адресов отправителя и получателя # warn - выдача предупреждения в лог файл и в заголовки письма # и добавление в заголовки сообщения поле X-Warn-Compat-Relay # текст сообщения об ошибке может быть указан через двоеточие # deny или reject - отказ в приеме сообщения # reject_all - отказ в приеме письма для всех получателей # quarantine - принять письмо с сохранением в карантин без доставки получателям # quarantine_other - при отказе в приеме письма текущему получателю при наличии других получателей # письмо доставляется в карантин без доставки этим другим получателям # drop - отказ в приеме сообщения с обрывом соединения # discard - прием письма без доставки получателю # defer - возврат временной ошибки отправителю # greylist=xx - добавление xx баллов к счетчику опционального greylisting'а # greylisting=xx - синоним greylist=xx # reject=yy - добавление yy баллов к счетчику опционального reject'а # deny=yy - синоним reject=yy # delay=zz - задержка на zz секунд перед продолжением обработки сообщения # pause=zz - синоним delay=zz # submit_mysql - занесение записи о хосте в базу MySQL (только в enterprise версии) # submit_sqlite - занесение записи о хосте в базу SQLite (только в enterprise версии) # submit_rbl - занесение записи о хосте в DNSBL (только в enterprise версии) # # если в файле CONFDIR/access-compat-relay будет отсутствовать поле "действие", # то будет выполнено действие по умолчанию из переменной confCHECK_ACCESS_COMPAT_RELAY # поле "сообщение" может отсутствовать # # допустимо использование регулярных выражений: # \N^.+<@><@>(hostmaster|ftpmaster)@rcpt\.domain$\N : deny : Null sender rejected. Thist is incoming address only. # # если доставка производится в unix mailbox'ы, то возможно указание # только почтового ящика в качестве адреса получателя, если домен # получателя входит в список локальных доменов # # при DBM в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # # путь к DBM файлу # define(`confCHECK_ACCESS_COMPAT_RELAY_DBM_FILE', `confSPOOLDIR/db/access-compat-relay.dbm')# # ключ записи DBM файла указывается в виде: # адрес_отправителя<@>адрес_получателя # значение записи DBM файла указывается в виде: # expires="время в unixtime" action="действие" message="сообщение smtp клиенту" log_message="сообщение в файл протокола" # поле expires может отсуствовать, оно может использоваться для автоматически формируемых временных white lists # # при SQLITE в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # # путь к файлу sqlite # define(`confCHECK_ACCESS_COMPAT_RELAY_SQLITE_FILE', `confSPOOLDIR/db/access_list_relay.db')# # запрос к БД SQLite # define(`confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY', `SELECT action FROM access_list WHERE sender_host_address="${quote_sqlite:$sender_host_address}" AND recipient="${quote_sqlite:$local_part@$domain}" AND sender="${quote_sqlite:$sender_address}"')# # второй запрос к БД SQLite (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY2', `SELECT action FROM access_list WHERE sender_host_name="${quote_sqlite:$sender_host_name}" AND recipient="${quote_sqlite:$local_part@$domain}" AND sender="${quote_sqlite:$sender_address}"')# # третий запрос к БД SQLite (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY3', `SELECT action FROM access_list WHERE sender_host_address="${quote_sqlite:$sender_host_address}" AND sender="${quote_sqlite:$sender_address}"')# # четвертый запрос к БД SQLite (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY4', `SELECT action FROM access_list WHERE sender_host_name="${quote_sqlite:$sender_host_name}" AND sender="${quote_sqlite:$sender_address}"')# # # при MYSQL в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # # запрос к БД MySQL # define(`confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY', `SELECT action FROM access_list WHERE sender_host_address="${quote_mysql:$sender_host_address}" AND recipient="${quote_mysql:$local_part@$domain}" AND sender="${quote_mysql:$sender_address}"')# # второй запрос к БД MySQL (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY2', `SELECT action FROM access_list WHERE sender_host_name="${quote_mysql:$sender_host_name}" AND recipient="${quote_mysql:$local_part@$domain}" AND sender="${quote_mysql:$sender_address}"')# # третий запрос к БД MySQL (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY3', `SELECT action FROM access_list WHERE sender_host_address="${quote_mysql:$sender_host_address}" AND sender="${quote_mysql:$sender_address}"')# # четвертый запрос к БД MySQL (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY4', `SELECT action FROM access_list WHERE sender_host_name="${quote_mysql:$sender_host_name}" AND sender="${quote_mysql:$sender_address}"')# # # ############################################## # # Проверка комбинации страны хоста отправителя, адресов отправителя и получателя # NO - не проводить проверку # YES - проводить проверку # define(`confCHECK_ACCESS_COMPAT_RELAY_COUNTRY', `NO')# # # проверка комбинации страны хоста отправителя и адресов отправителя и # получателя является расширением проверки комбинации адреса хоста # отправителя, адресов отправителя и получателя. # т. е. confCHECK_ACCESS_COMPAT_RELAY_COUNTRY можно использовать только # вместе с confCHECK_ACCESS_COMPAT_RELAY. # # отличием confCHECK_ACCESS_COMPAT_RELAY_COUNTRY от # confCHECK_ACCESS_COMPAT_RELAY является лишь то, что вместе адреса # хоста отправителя или имени хоста отправителя можно указывать страну # хоста отправителя в виде двубуквенного кода. # # при этом запрос в access-compay-relay с комбинацией страны хоста и # адресов отправителя и получателя производится только в случае, если в # данном файле не найдены комбинации адреса хоста отправителя с # адресами отправителя и получателя или имени хоста отправителя с # адресами отправителя и получателя. # # в файле CONFDIR/access-compat-relay можно указать необходимые # действия для комбинации страны хоста отправителя, адреса # отправителя и адреса получателя в виде: # NN<@>sender_mailbox@sender.domain<@>rcpt_mailbox@rcpt.domain : действие : сообщение : сообщение в лог файл # # где # NN - двубуквенный код страны # действие - действие, применяемое к письму # сообщение - ответ SMTP клиенту (может отсутствовать) # сообщение в лог файл - сообщение в лог файл MTA (может отсутствовать) # # возможные значения для действия такие же, как при проверке кобминации # хоста отправителя и адресов отправителя и получателя (переменная # confCHECK_ACCESS_COMPAT_RELAY). # # ответ SMTP клиенту будет использован в случае указания reject/deny # или defer в качестве действия. если текст ответа не будет указан, # будет использован текст сообщения об ошибке по умолчанию # # если действие не будет указано, будет использоваться действие, # указанное в переменной confCHECK_ACCESS_COMPAT_RELAY # # пример: # CN<@>sender@ukr.net<@>recipient@local.domain.tld : ok # \N^CN<@>.+@ukr.net<@>.+@local\.domain\.tld$\N : warn pause=10 greylist=10 : Message with ukr.net sender address domain from China # \N^CN<@>.+@ukr.net<@>$\N : deny : Access denied : Message with ukr.net sender address domain from China # # в примере ко всем письмам из домена ukr.net, отправленным из Китая для пользователей домена local.domain.tld, будут применены пауза и серые списки. # прием писем из домена ukr.net, отправленных из Китая для пользователей других доменов, будет отвергнут. # исключение сделано для пары адресов отправителя и получателя sender@ukr.net и recipient@local.domain.tld # # механизм определения страны по IP адресу можно указать в переменной confIP2COUNTRY_BACKEND # # при SQLITE в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # запрос к БД SQLite # define(`confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY', `SELECT action FROM access_list WHERE country="$acl_m_sender_host_address_country" AND recipient="${quote_sqlite:$local_part@$domain}" AND sender="${quote_sqlite:$sender_address}"')# # второй запрос к БД SQLite (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY2', `SELECT action FROM access_list WHERE country="$acl_m_sender_host_address_country" AND sender="${quote_sqlite:$sender_address}"')# # # при MYSQL в confCHECK_ACCESS_COMPAT_RELAY_BACKEND: # запрос к БД MySQL # define(`confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY', `SELECT action FROM access_list WHERE country="$acl_m_sender_host_address_country" AND recipient="${quote_mysql:$local_part@$domain}" AND sender="${quote_mysql:$sender_address}"')# # второй запрос к БД MySQL (опциональный) # define(`confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY2', `SELECT action FROM access_list WHERE country="$acl_m_sender_host_address_country" AND sender="${quote_mysql:$sender_address}"')# #