Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FAQ по Exim MTA

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (16-05-2011 18:50): FAQ по Exim MTA #2  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

G_R



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

########################28.11.2006####################################
#                  Runtime configuration file for Exim               #
######################################################################
######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################
 
#имя нашего хоста
primary_hostname =  
 
#данные для подключения к MySQL серваку
hide mysql_servers = localhost/exim/sqlmail/my_pass
 
#Список локальных и виртуальных доменов  
domainlist local_domains = @ : @[] : localhost : \
                        ${lookup mysql{SELECT domain FROM domains \
                        WHERE domain='${domain}' AND \
                        (type='LOCAL' OR type='VIRTUAL')}}
 
#Список доменов, для которых разрешено принимать почту
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domains \
                        WHERE domain='${domain}' AND type='RELAY'}}
 
#Список доменов, с которых разрешено принимать почту
hostlist   relay_from_hosts = 127.0.0.1 : 192.168.0.0/24
 
auth_advertise_hosts = *
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /etc/ssl/certs/mail.pem
tls_privatekey = /etc/ssl/certs/mail.pem
 
#Что будем протоколировать в лог
log_selector = \
    +address_rewrite \
        +all_parents \
    +arguments \
    +connection_reject \
    +delay_delivery \
    +delivery_size \
    +dnslist_defer \
    +incoming_interface \
    +incoming_port \
        +lost_incoming_connection \
    +queue_run \
    +received_sender \
        +received_recipients \
    +sender_on_delivery \
    +size_reject \
    +skip_delivery \
        +smtp_confirmation \
        +smtp_syntax_error \
        +smtp_protocol_error \
    +subject \
    +tls_cipher \
    +tls_peerdn \
        -queue_run
 
#вызов правил доступа при проверке адреса получателя
acl_smtp_rcpt = acl_check_rcpt
 
#вызов правил проверки писем  
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_virus
 
#прикручиваем антивирус
av_scanner = clamd:/var/run/clamav/clamd.sock
 
#имя домена, добавляемое для локальных отправителей
#т.е. user@имя_домена
qualify_domain = мой домен
 
#не принимать почту вида user@111.111.111.111
allow_domain_literals = false
 
#список пользователей, которым запрещено получать почту
#для доставки им почты используется база aliases
never_users = root:daemon:bin:sync:named
 
#преобразование всех IP-адресов, содержащихся в заголовках почты, в имена хостов.
#снижает производительность. при сильной нагрузке - заремить
host_lookup = *
 
#повышают производительность сервера за счет запрета идентификационных
#соединений, описанных в RFC 1413
rfc1413_hosts = *
rfc1413_query_timeout = 0s
 
#if пиьмо было недоставлено, генерируется сообщение об ошибке. if оно не доставлено,
#то оно замараживается на указаный срок. потом еще попытка. при неудаче - удаляется.
ignore_bounce_errors_after = 30m
 
#замароженные сообщения, находящиеся в очереди больше указанного времени удаляются
#и генерируется сообщение об ошибке(если это не недост. сообщ. об ошибке)
timeout_frozen_after = 3d
 
#кому слать сообщения о замороженных письмах
freeze_tell = postmaster
 
#максимальный допустимый размер обрабатываемых сообщений
message_size_limit = 10M
 
#максимальное число обрабатываемых подключений к SMTP-серверу
smtp_accept_max = 50
 
#максимальное число сообщений, принимаемое за одно соединение от одного  
#пользователя или удаленного сервера.
smtp_accept_max_per_connection = 35
 
#максимальное число коннектов с одного хоста
smtp_accept_max_per_host = 2
 
#для увеличения производительности директория 'spool' внутри разделяется на директории
split_spool_directory = true
 
#если у сообщения много адресатов, то запускается до указанного числа
#паралельных процессов доставки
remote_max_parallel = 15
 
#содержание сообщения, получаемое удаленной системой при установке соединения
#с SMTP-сервером
smtp_banner = "Welcome on our mail server!\n\
    This system does not accept Unsolicited \
    Commercial Email\nand will blacklist \
    offenders via our spam processor.\nHave a \
    nice day!\n\n${primary_hostname} ESMTP Exim"
 
 
######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################
begin acl
 
#эти правила срабатывают для каждого получателя
acl_check_rcpt:
 
  #принимать сообщения с локалхоста
  accept  hosts = :
 
  #запрещаем письма, содержащие в локальной части @, %, !, \, |
  #проверяются локальные домены
  deny    message       = "incorrect symbol in address"
      domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]
 
  #тоже самое для нелокальных доменов
  deny    message       = "incorrect symbol in address"
      domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
 
  #принимаем почту для постмастеров локальных доменов без проверки отправителя
  accept  local_parts   = postmaster
          domains       = +local_domains
 
  #запрещаем принимать почту, если адрес не определен
  require verify        = sender
 
  #запрещаем тех, кто обменивается приветственными сообщениями (HELO/EHLO)
  deny    message       = HELO/EHLO required by SMTP RFC
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}
 
  #принимаем сообщения от тех, кто аутентифицировался
  accept  authenticated = *
   
  #запрещаем хосты типа *adsl*, *pool* и т.п. Нормальные люди с таких не пишут
  #если будут проблемы убираем проблемный пункт (например dialup)
  deny    message       = Go Away! You are spammer.
          condition     = ${if match{$sender_host_name} \
                          {bezeqint\\.net|net\\.il|dialup|dsl|pool|peer|dhcp} \
                          {yes}{no}}
 
  #запрещаем тех, кто в блэк-литсах. Серваки перебираются сверху вниз. если не
  #найден в списках - то пропускается
#  deny    message       = rejected because \
#  $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
#          log_message   = found in $dnslist_domain
#          dnslists      = relays.ordb.org : dnsbl.njabl.org : \
#                      ipwhois.rfc-ignorant.org : dialups.mail-abuse.org : \
#              list.dsbl.org : bl.spamcop.net : dnsbl.void.ru
   
  #разрешает прием сообщений только для локального хоста если получатель существует
  accept  domains       = +local_domains
          endpass
          message       = "unknown user in my mailserver"
          verify        = recipient
 
  #проверяем получателя в релейных доменах
  accept  domains       = +relay_to_domains
          endpass
          message       = "unrouteable address in relay host"
          verify        = recipient
 
  #разрешаем почту от доменов в списке relay_from_hosts
  accept  hosts         = +relay_from_hosts
   
#принимаем сообщения от тех, кто аутентифицировался
#  accept  authenticated = *
 
  deny     message       = "Spamer go to home!!!"
   
 
acl_check_mime:
 
  warn decode = default
 
  deny message = Blacklisted file extension detected ($mime_filename)
       condition = ${if match \
                    {${lc:$mime_filename}} \
                    {\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com|\.vbs|\.cpl)$\N} \
                    {1}{0}}
 
  deny message = Sorry, noone speaks chinese here
       condition = ${if eq{$mime_charset}{gb2312}{1}{0}}
 
accept
 
acl_check_virus:
#Проверяем письмо на вирусы
  deny message = "In e-mail found VIRUS - $malware_name"
  malware = *
accept
 
######################################################################
#                      ROUTERS CONFIGURATION                         #
#               Specifies how addresses are handled                  #
######################################################################
#     THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT!       #
# An address is passed to each router in turn until it is accepted.  #
######################################################################
#способы обработки почтовых адресов и способы доставки сообщений
 
begin routers
 
#Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS - то это
#"unroteable address". Локальные домены, 0.0.0.0 и 127.0.0.0/8  не проверяются
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more
 
#смотрим алиасы
system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT recipients FROM aliases \
         WHERE local_part='${local_part}' AND domain='${domain}'}}
 
#смотрим форвардинг
userforward:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT recipients FROM userforward \
         WHERE local_part='${local_part}' AND domain='${domain}'}}
 
#локальная доставка
virtual_localuser:
  driver = accept
  domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
  local_parts = ${lookup mysql{SELECT id from users \
                WHERE id='${local_part}' AND mbox_host='${domain}'}}
  transport = local_delivery
 
######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################
#доставка почты
 
begin transports
 
#Доставка на удаленные хосты по SMTP
remote_smtp:
  driver = smtp
 
#локальная доставка
local_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = ${lookup mysql{SELECT CONCAT(home, "/Maildir") FROM users \
              WHERE id='${local_part}' AND mbox_host='${domain}'}}
  directory_mode = 770
  envelope_to_add
  headers_remove = "Lines"
  headers_add = "Lines: $body_linecount\n"
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0660
  no_mode_fail_narrower
  quota = ${lookup mysql{SELECT quota FROM users \
          WHERE id='${local_part}' AND mbox_host='${domain}'}{${value}M}}
  quota_size_regex = S=(\d+)$
  quota_warn_threshold = 75%
  quota_warn_message = "\
       To: $local_part@domain\n\
       From: postmaster@domain\n\
#       Subject: Your maildir is going full\n\
       Subject: Ваш почтовый ящик переполнен\n\
       Это сообщение автоматически сгенерировано Вашим почтовым сервером.\n\
       Сообщаем, что Ваш ящик заполнен на 75%! Необходимо принять почту!\n\
       Иначе Вы не сможете получать новые письма!\n"
  return_path_add
 
#доставка в pipe
 address_pipe:
  driver = pipe
  log_defer_output
  log_fail_output
  path = "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin/:/usr/bin:/bin"
  return_output
  user = mail
  group = mail
  headers_remove = "Lines"
  headers_add = "Lines: $body_linecount\n"
 
#доставка прямо в файл
address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add
 
#транспорт для автоответов
address_reply:
  driver = autoreply
 
######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################
#повтор недоставленный писем
 
begin retry
 
*                      quota
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
 
 
######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################
 
begin rewrite
 
######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################
#секция авторизации
 
begin authenticators
 
#для Нетскапе
auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT id FROM users \
                        WHERE id = '${quote_mysql:${local_part:$2}}' \
                        AND mbox_host = '${quote_mysql:${domain:$2}}' \
                        AND passwd = '${quote_mysql:$3}' \
                        AND active = 'Y'}{yes}{no}}
  server_prompts = :
server_set_id = $2
 
#для Оутглюка
auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT id FROM users \
                        WHERE id = '${quote_mysql:${local_part:$1}}' \
                        AND mbox_host = '${quote_mysql:${domain:$1}}' \
                        AND passwd = '${quote_mysql:$2}' \
                        AND active = 'Y'}{yes}{no}}
  server_prompts = Username:: : Password::
server_set_id = $1
 
#для Летучей Мыши
auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT passwd FROM users \
                        WHERE id = '${quote_mysql:${local_part:$1}}' \
#если отремить ниже то не работает аунтефикация как я писал(пока не поборол)
#                        AND mbox_host = '${quote_mysql:${domain:$1}}' \
                        AND active = 'Y'}{$value}fail}
 
server_set_id = $1
 
# End of Exim configuration file
 

Всего записей: 38 | Зарегистр. 07-09-2006 | Отправлено: 09:47 19-12-2006
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FAQ по Exim MTA
ShriEkeR (16-05-2011 18:50): FAQ по Exim MTA #2


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru