dovecot.conf

Файл взят с версии Dovecot 1.2.17. ## Конфигурационный файл Dovecot # Инструкцию по быстрому старту смотреть здесь: # http://wiki.dovecot.org/QuickConfiguration # Команда "dovecot -n" выводит список измененных параметров. Используйте # эту возможность, вместо копирования содержимого файла, при обращении # в списках рассылки. # Все, что расположено после символа "#" считается комментарием. Пробелы # и символы табуляции игнорируются. Значение параметра, в котором # есть пробелы поместите в кавычки, чтобы он интерпритировался должным # образом, например key = "# char and trailing whitespace " # Значения по умолчанию представленные в данном файле не обязательно # раскомментировать. Не обязательны секции (например, namespaces {}) # или настройки плагинов, здесь они приведены для примера. Пути так же # заданы в качестве примера, значения по умолчанию в данном случае # были заданы при компиляции ( --prefix=/usr/local # --sysconfdir=/usr/local/etc --localstatedir=/var --with-ssldir=/etc/ssl ) # Директория, в которой работает Dovecot. #base_dir = /var/run/dovecot/ # Протоколы, доступные для настройки: imap imaps pop3 pop3s # Если вы хотите использовать только dovecot-auth, то укажите # здесь "none". #protocols = imap pop3 imaps pop3s # Список, разделенный запятыми, IP адресов или имен хостов, с которых # будут обрабатываться подключения. "*" - принимать подключения со всех # интерфейсов по протоколу IPv4. "[::]" - принимать подключения со всех # интерфейсов по протоколу IPv6. Укажите "*, [::]", чтобы принимать # подключения по любому протоколу. # # Если вы хотите изменить стандартный порт для сервиса, то вы должны # задать необходимы параметры в одноименной секции imap/pop3 { ... }, так # вы можете указать различные порты для IMAP/POP3. Например: # protocol imap { # listen = *:10143 # ssl_listen = *:10943 # .. # } # protocol pop3 { # listen = *:10100 # .. # } #listen = * # Отключить метод аутентификации LOGIN и другие методы с открытым текстом, # если клиент подключен не через защищенное соединение SSL/TLS. Только # учтите, что для локальных подключений это ограничение не применяется. #disable_plaintext_auth = no # Прибивать все подключения, когда завершается главный процесс Dovecot. # При "no" подключенные клиенты продолжат работу, даже если главный # процесс будет завершен (может быть полезно при обновлении, например когда # была выпущена новая версия с исправленными косяками в безопасности). # Однако, когда главный процесс будет завершен, то процессы обрабатывающие # запросы от клиентов не смогут писать в лог файлы. #shutdown_clients = yes ## ## Логи ## # Лог файл, в который будут выводится сообщения об ошибках, вместо syslog. # Укажите /dev/stderr, чтобы сообщения выводились на консоль (stderr). # Лог файл, в который выводятся информационные и отладочные сообщения. # Если не задано, то используется параметр log_path. #info_log_path = # Префикс для сообщений, формат смотреть в мане по strftime(3). #log_timestamp = "%b %d %H:%M:%S " # Раздел syslog для логов. #syslog_facility = mail ## ## Параметры SSL ## # IP или имя хоста, на котором принимаются SSL соединения. Не забудте # разрешить протоколы imaps и/или pop3s (параметр "protocols"). Если # не задан, то такой же как и параметр "listen". #ssl_listen = # Использовать SSL/TLS: yes, no, required. #ssl = yes # Сертификат и приватный ключ X.509 SSL/TLS. Файлы открываются перед тем, # как будут сброшены привелегии root, поэтому сохраняйте файл не доступным # для всех, кроме пользователя root. В дистрибутив включен скрипт (doc/mkcert.sh), # который облегчит вам создание собственных подписанных сертификатов. #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # Если файл-ключ защищен паролем, то укажите этот пароль здесь. # Так же пароль можно задать с помощью ключа -p. Since this file is often # world-readable, you may want to place this setting instead to a different # root owned 0600 file by using !include_try . #ssl_key_password = # Файл, содержащий правильные центры сертификации. Задайте, только # если вы собираетесь использовать ssl_verify_client_cert=yes. #ssl_ca_file = # Проверять сертификат пользователя. Если вы хотите сделать это # обязательным, то установите параметр ssl_require_client_cert=yes # в секции авторизации. #ssl_verify_client_cert = no # Какое поле сертификата использовать в качестве имени пользователя. # Обычно используют commonName и x500UniqueIdentifier.Вам также # потребуется задать задать параметр ssl_username_from_cert=yes. #ssl_cert_username_field = commonName # Как часто регенирировать файл параметров SSL. При генерации # интенсивно используется CPU. Значение задается в часах, # если указать 0, то данная фишка будет отключена. #ssl_parameters_regenerate = 168 # Доступные шифры SSL #ssl_cipher_list = ALL:!LOW:!SSLv2 # Выводить инфу про SSL в сообщениях об ошибках. #verbose_ssl = no ## ## Процесс авторизации ## # # Директория, в которой процесс обрабатывающий подключения будет размещать # сокеты. Сокеты создаются еще до сброса привелегий, поэтому вам не стоит # беспокоится о правах доступа. Учтите, что все, что содержится в этой # папке будет удалено при старте Dovecot. #login_dir = /var/run/dovecot/login # Запереть процесс обрабатывающий подключения в login_dir. # Единственная причина не делать этого - необходимость # запустить dovecot без корневой директории. #login_chroot = yes # Пользователь, под которым работает процесс обрабатывающий подключения. # Создайте нового пользователя и не используйте ни для чего больше, # кроме как для dovecot. Пользователь также должен иметь свою группу, # на тех же условиях, она используется, чтобы управлять доступом # для процесса аутентификации. Учтите, что этот пользователь # не используется для работы с письмами. #login_user = dovecot # Укажите максимальный размер процесса в мегабайтах. Если вы # указали login_process_per_connection=yes, то этот параметр должен # быть как можно больше. #login_process_size = 64 # Для каждого подключения создается отдельный процесс, если этот # параметр задан в "yes". Иначе этим занимается один процесс. # Первый вариант является более предпочтительным, так как это # лучше для безопасности, если конечо вы не используете SSL/TLS. # Второй вариант предпочтительнее, когда для вас важнее скорость, # чем безопасность. #login_process_per_connection = yes # Количество процессов, ждущих подключений. #login_processes_count = 3 # Максимальное количество процессов обрабатывающих подключения. # Такие процессы будут дополнительно создаваться, если к серверу # подключается много клиентов оновременно. Для предотвращения # DDoS атаки проверка доступных процессов происходит каждую секунду, # если свободных процессов не остается, то это количество удваивается, # пока не будет достигнут лимит, заданный с помощью этого параметра. #login_max_processes_count = 128 # Максимальное количество подключений на процесс. Этот параметр # используется только, если login_process_per_connection=no. Если # достигнут предел, то обрабатывающий подключения процесс сообщает # главному процессу об этом, тот в свою очередь создает новый # процесс для обработки подключений. #login_max_connections = 256 # Приветственное сообщение. #login_greeting = Dovecot ready. # Список сетей, разделенный пробелами, которым разрешен доступ. # Клиентам с этих адресов разрешено переписывать IP адресы # и порты (для проверок авторизации и аутентификации). # Параметр disable_plaintext_auth игнорируется для этих сетей. # Например, здесь можно указать адреса ваших IMAP-прокси серверов. #login_trusted_networks = # Список, разделенный пробелами того, что вы хотите писать. # Элементы, которые имеют не пустое значение будут объединяться # вместе в выходной строке с помощью запятой. #login_log_format_elements = user=%u> method=%m rip=%r lip=%l %c # Формат лога подключений. %$ заменяется на login_log_format_elements, # %s заменяется на данные. #login_log_format = %$: %s ## ## Пути к ящикам и пространства имен ## # Расположение почтовых ящиков. Такой же смысл, как у старой переменной # default_mail_env. По умолчанию эта переменная не задана, поэтому Dovecot # пытается найти почтовые ящики автоматически. Это не будет работать, если # пользователь не имеет почтового ящика, поэтому лучше задать этот параметр. # # Если вы используете mbox, то одного пути к файлам почтового ящика # (например, /var/mail/%u) не будет достаточно. Так же вы должны # предоставить Dovecot,у, где будут храниться другие почтовые ящики. # Это называется "root mail directory (корневая директория почты)" и она должна # быть задана первой в параметре mail_location. # # Так же вы можете использовать следующие переменные: # # %u - имя пользователя # %n - имя польльзователя, только без домена # %d - имя домена (пусто, если домен не указан) # %h - домашняя директория # # Полный список смотрите здесь - . Примеры: # # mail_location = maildir:~/Maildir # mail_location = mbox:~/mail:INBOX=/var/mail/%u # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n # # # mail_location = mbox:~/mail/:INBOX=/var/mail/%u # Если вы хотите задать несколько местоположений почтовых ящиков или # хотите изменить пространства имен, вы можете сделать это определяя # секции пространств имен. # # Вы можете создать приватные, разделяемые и общие пространства имен. # Приватные пространства имен используются для личных писем пользователй. # К разделяемым пространствам могут иметь доступ другие пользователи. # Общие пространства разделяется между почтовыми ящиками, которые # управляются админами. Если вы создаете разделяемые или общие # пространства, то вам понадобится ACL плагин (для управляения правами # доступа), в противном случае пользователи будут иметь доступ ко всем # разделяемым почтовым ящикам, только если у них есть такая возможность # на уровне прав доступа файловой системы. # # Запомните: Если вы добавляете какие-либо пространства имен, то пространства # имен по умолчанию должны быть добавлены обязательно, то есть значение # mail_location ничего не значит, пока в пространстве имен не задан параметр # location. По умолчанию пространство имен не имеет префикса. #namespace private { # Используйте здесь обратный слэш в роли разделителя. Вы должны # использовать такой разделитель для всех пространств имен или # могут возникнуть проблемы с некоторыми клиентами. # Зависит от формата пользовательского ящика. #separator = # Для доступа к пространству имен требуется указать префикс. Он должен # быть разным для каждого пространства имен. Например, "Public/". #prefix = # Физическое местоположение почтового ящика. Формат такой же как и # у параметра mail_location. Если не задан, то значение берется # из mail_location. #location = # Может быть только один ящик для приема сообщений и этот параметр # определяет у какого пространства имен будет этот ящик. #inbox = no # If namespace is hidden, it's not advertised to clients via NAMESPACE # extension. You'll most likely also want to set list=no. This is mostly # useful when converting from another server with different namespaces which # you want to deprecate but still keep working. For example you can create # hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/". #hidden = yes # Показывать почтовые ящики под пространствами имен в выводе для # команды LIST. Это позволяет сделать видимыми пространства имен # для клиентов, которые не поддерживают расширение - пространство # имен. # "children" value lists child mailboxes, but hides the namespace prefix. #list = yes # Namespace handles its own subscriptions. If set to "no", the parent # namespace handles them (empty prefix should always have this as "yes") #subscriptions = yes #} # Пример конфигурации разделяемого пространства имен #namespace shared { #separator = / # Почтовые ящики отображаются так - "shared/user@domain/" # %%n, %%d и %%u преобразуются в конечного пользователя. #prefix = shared/%%u/ # Местонахождение писем для других почтовых ящиков. Учтите, # что %variables и ~/ преобразуются в данные, связанные # с подключенным пользователем. %%n, %%d, %%u и %%h # преобразуются в данные, связанные с конечным пользователем. #location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u # Использовать пространство имен по умолчанию для подписчиков. #subscriptions = no # Показывать только пространство имен shared/, если выводится # список разделяемых почтовых ящиков. #list = children #} # Системные пользователь и группа, которые используются для доступа # к почтовым ящикам. Если вы используюте различных пользователей # и различные группы, то используя колонки uid или gid из БД пользователей, # можно переопределить эти значения. Вы можете использовать здесь # имена или числовые идентификаторы. #mail_uid = #mail_gid = # Группа, используемая для привилигированных операций. На данный момент # это используется только с INBOX, когда не удается его создание или # не получается блокировка (dotlock). Обычно используется группа "mail" для # доступа к /var/mail. mail_privileged_group = mail # Предоставить доступ этим группам к процессу, обрабатывающему письма. # В основном это используется для разрешения доступа к разделяемым # пространствам имен. Учтите, что это может быть опасно, если пользователи # могут создавать символические ссылки (например, если здесь указана # группа "mail", то ln -s /var/mail ~/mail/var позволит удалять пользователю # чужие почтовые ящики, или ln -s /secret/shared/box ~/mail/mybox позволит # читать их). #mail_access_groups = # Предоставить полный доступ к ФС клиентам. В этом случае не происходит # каких-либо проверок доступа, только проверки на уровне прав доступа ФС. # Это работает с Maildir и mbox, разрешая указывать префикс к имени # ящика, например, /path/ или ~/user/. #mail_full_filesystem_access = no ## ## Процесс, работающий с письмами ## # Включить вывод отладочных сообщений. Это может вам определить, # почему Dovecot не может найти ваши письма. #mail_debug = no # Префикс для выводимых сообщений в лог файл. Смотрите # , чтобы знать - какие значения здесь # возможны. #mail_log_prefix = "%Us(%u): " # Максимальное кол-во строк, выводимых процессом в секунду. # 0 значит - без ограничений. В большинстве случаев этот параметр # не требует изменений, только если вы не используете плагин # mail_log. Этот параметр игнорируется, если mail_debug=yes #mail_log_max_lines_per_sec = 10 # Не использовать системный вызов mmap(). Такое поведение # может потребоваться, если индексы хранятся на разделяемой # ФС (например, NFS или кластерная ФС). #mmap_disable = no # Использовать флаг O_EXCL, когда создаются файлы блокировки (dotlock). # NFS поддерживает O_EXCL, начиная с версии 3, так что на сегодняший # день данный параметр не создаст каких-либо проблем. dotlock_use_excl = yes # Не использовать системные вызовы fsync() или fdatasync(). Это увеличит # производительность, но возрастет риск потери данных, если сервер, # где хранятся данные, упадет. #fsync_disable = no # Для хранения писем используется NFS. Установите этот параметр в 'yes', # чтобы Dovecot при необходимости сбрасывал кэши NFS. Если вы # используете локальную ФС для хранения, то изменение этого параметра # не требуется. #mail_nfs_storage = no # Индексы тоже хранятся на NFS. Этот параметр требует # mmap_disable=yes и fsync_disable=no. #mail_nfs_index = no # Метод блокировки для индексов. Возможные значения fcntl, flock и dotlock. # В методе блокировки dotlock используются некоторые трюки, # что может увеличить нагрузку на подсистему ввода/вывода диска. # Пользователям NFS следует знать: что flock в данном случае не работает, # не забывайте изменять mmap_disable. #lock_method = fcntl # Сбрасывать все привилегии перед запуском процесса обработки писем. # Данный параметр влияет на отладку, другими словами вы не будете # получать дамп процесса. Данный параметр представляет угрозу # безопасности, если вы используете один UID для нескольких пользователей. #mail_drop_priv_before_exec = no # Использовать более информативный заголовок процесса (отображается # в команде ps). На данный момент отображаются только имя пользователя # и IP адрес. Полезно, если вы хотите видеть кого на самом деле обслуживает # IMAP процесс. verbose_proctitle = yes # Допустимые дапазоны UID для пользователей, по умолчанию от 500 и выше. # То есть никто не сможет зайти на сервер с идентификатором ниже/выше # указанного. Учтите, что руту доступ запрещен на уровне кода. first_valid_uid = 1000 #last_valid_uid = 0 # Тоже самое, только для групп. Если у пользователя основная группа # с идентификатором, выходящим из данного диапазона, то в доступе # такому пользователю будет отказано. first_valid_gid = 1000 #last_valid_gid = 0 # Максимально возможное кол-во одновременно работающих процессов. # Когда лимит исчерпан, новые пользователи не смогут подключиться. #max_mail_processes = 512 # Максимальный размер процесса в мегабайтах. Память в основном # используется для mmap()инга файлов. Так что вреда не будет, даже # если здесь указано очень большое значение. #mail_process_size = 256 # Максимальная длина для имени ключевого слова письма. # Может пригодится при создании новых ключевых слов. #mail_max_keyword_length = 50 # Список директорий, разделенный двоеточиями, в которые можно # будет chroot,иться процессу (например, если указать здесь /var/mail, # то возможен будет chroot в поддиректории). Этот параметр не влияет # на login_chroot, mail_chroot or auth chroot. Если параметр не задан, # то "/./" в домашних директориях будет игнорироваться. # Осторожно: Никогда не указывайте здесь директории, к которым # имеют доступ локальные пользователи. Этим правилом можно # пренибреч, только если у пользователей нет доступа к шелу. # #valid_chroot_dirs = # Основная директория для chroot,а процесса. Этот параметр может быть # изменен для определенных пользователей, указав в пути к # домашней директории /./ (например, /home/./user chroot в /home). # Следует знать, что в основном chroot процесса не требуется. # Dovecot не позволит пользователям получить доступ к файлам # за пределами домашней директории в любом случае. # #mail_chroot = ## ## Оптимизация работы с почтовыми ящиками ## # Минимальное количество писем в почтовом ящике перед обновлением # файла кеша. Благодаря этому параметру Dovecot будет делать меньше # операций записи на диск, но количество операций чтения возрастет. #mail_cache_min_mail_count = 0 # Если получена команда IDLE, то почтовый ящик будет периодически # проверяться на предмет получения новых писем или других изменений. # Этот параметр определяет минимальное количество секунд перед # проверкой. Dovecot может использовать dnotify, inotify и kqueue, чтобы # узнать об изменениях. #mailbox_idle_check_interval = 30 # Сохранять текст письма с CR+LF в конце вместо LF. Это может уменьшить # нанагрузку на проц при работе с некоторыми письмами, особенно если # используется системный вызов sendfile(). Но увеличиться нагрузка # на подсистему ввода/вывода, поэтому прироста в производительности # может и не быть, а может быть она вообще снизится. Так же следует знать, # что использование такой возможности может вызвать проблемы с другим # програмным обеспечением, работающем в ящиках. #mail_save_crlf = no ## ## Параметры Maildir ## # По умолчанию для команды LIST выводится все записи в почтовом ящике, # начинающиеся с точки. Включение этой опции заставляет Dovecot возвразать # только список директорий. Для каждого объекта в почтовом ящике # вызывается системный вызов stat(), что нагружает подсистему ввода/вывода. #maildir_stat_dirs = no # При копировании письма создавать жесткую ссылку, если это возможно. # В таком случае производительность возрастет без каких-либо последствий. maildir_copy_with_hardlinks = yes # При копировании письма пытаться сохранять базовое имя файла. Если # местоназначение уже содержит подобное имя (то есть копируется в ту же папку), # то будет присвоено новое имя. Данная операция выполняется с использованием # файла dovecot-uidlist, так что если другой софт работает в подобном режиме, # то это может вызвать проблемы. # Учтите: должен работать параметр maildir_copy_with_hardlinks = yes. #maildir_copy_preserve_filename = no # Если Dovecot единственной MUA, который имеет доступ к почтовым ящикам, # то возможно сканировать директорию cur/, только когда изменен mtime # или когда не удается найти письма. #maildir_very_dirty_syncs = no ## ## Параметры mbox ## # Системный вызов, используемый для блокировок при просмотре mbox. # Доступно четыре вызова: # dotlock: создавать файл .lock. Это старый способ, но безопасный # для NFS. Если вы используете директорию /var/mail, то пользователи # должны иметь права на запись в нее. # dotlock_try: тоже самое, что и dotlock, но если блокировка не удастся, # из-за прав доступа или недостаточного количества места на диске, то # то просто проигнорировать это. # fcntl: использовать, если возможно. Работает с NFS, если работает # демон lockd. # flock: данный вызов есть не во всех системах. Не работает с NFS. # lockf: данный вызов есть не во всех системах. Не работает с NFS. # Вы можете использовать несколько методов, если только из-за этого # не возникнет проблем с другим софтом (MTA/MUA), то есть другой софт # должен поддерживать данные методы. Некоторые ОС не позволяют # использовать разные блокировки одновременно. #mbox_read_locks = fcntl #mbox_write_locks = dotlock fcntl # Максимальное кол-во секунд выжидаемое для заблокированного файла # перед отменой. #mbox_lock_timeout = 300 # Пересоздать блокировку на файл, если почтовый ящик не был изменен # в течении этого времени (указывать в секундах). #mbox_dotlock_change_timeout = 120 # Когда содержимое mbox изменяется, необходимо полностью перечитать # его. Если mbox очень большой, то это может занять много времени. Так # как изменение чаще всего происходит из-за прихода нового письма, то # было бы гораздо прочитать только новые письма. Если этот параметр # включен, то Dovecot делает это, но при необходимости перечитывает mbox. # Параметр следует отключить, если другие MUA могут изменить флаги # сообщний, о чем Dovecot соответственно не будет знать. Так же следует # знать, что сброс кэшей выполняется с командами SELECT, EXAMINE, # EXPUNGE и CHECK. #mbox_dirty_syncs = yes # Аналогично mbox_dirty_syncs, но не будет осуществляться сброс кэшей, # даже если выполняются команды SELECT, EXAMINE, EXPUNGE и CHECK. # Если этот параметр включен, то параметр mbox_dirty_syncs игнорируется #mbox_very_dirty_syncs = no # Задерживать запись заголовков mbox, до тех пор пока происходит сброс # кэшей (команды EXPUNGE и CHECK, после чего файл закрывается). # Такое поведение может оказаться полезным при использовании протокола # POP3, когда пользователи пытаются удалить все письма. С другой стороны, # плохо, что другие MUA не видят изменений в ящике. #mbox_lazy_writes = yes # Не писать индекс, пока ящик mbox не наберет заданный здесь размер в # килобайтах. Если индекс уже был создан, то он будет использоваться, но # не будет обновляться, если размер ящика меньше заданного. #mbox_min_index_size = 0 ## ## Параметры dbox ## # Максимальный размер файла dbox в килобайтах, перед ротацией. #dbox_rotate_size = 2048 # Минимальный размер файла dbox в килобайтах, перед ротацией. # (параметр dbox_rotate_days учитывает это) #dbox_rotate_min_size = 16 # Максимальное время жизни dbox файла перед ротацией. # Если 0, то такая проверка отключена. #dbox_rotate_days = 0 ## ## Параметры IMAP ## protocol imap { # Исполняемый файл, который отвечает за авторизацию. #login_executable = /usr/local/libexec/dovecot/imap-login # Путь к исполняемому файлу IMAP. Изменение этого параметра # позволяет вам запускать другие проги, перед запуском imap # процесса. # # Запись логов можно было бы сделать следующим образом: # mail_executable = /usr/local/libexec/dovecot/rawlog /usr/local/libexec/dovecot/imap # # # Так можно присоединить gdb к imap процессу и писать обратные вызовы # в файлы /tmp/gdbhelper.*: # mail_executable = /usr/local/libexec/dovecot/gdbhelper /usr/local/libexec/dovecot/imap # #mail_executable = /usr/local/libexec/dovecot/imap # Максимальная длина команды IMAP в байтах. Некоторые клиенты посылают # слишком длинные команды при работе с очень большими ящиками, поэтому # вам может понадобиться отказывать таким клиентам с сообщением # "Too long argument" или "IMAP command line too large" в таком случае. #imap_max_line_length = 65536 # Максимальное кол-во подключений для пользователя с одного IP адреса. # Учтите, что в имени пользователя учитывается регистр букв. #mail_max_userip_connections = 10 # Поддержка плагинов. mail_plugins - список плагинов, разделенный # пробелами, которые должны быть загружены. #mail_plugins = #mail_plugin_dir = /usr/local/lib/dovecot/imap # Формат логов: # %i - общее кол-во байт полученных от клиента # %o - общее кол-во байт отправленных клиенту #imap_logout_format = bytes=%i/%o # Заменить ответ IMAP CAPABILITY на указанный здесь. #imap_capability = # Сколько секунд ждать ответа от клиента "OK Still here", # когда тот ничего не делает. #imap_idle_notify_interval = 120 # Идентификационные данные, отправляемые клиенту. Используйте *, # чтобы Dovecot использовал значение по умолчанию. Следующие # данные имеют значение по умолчанию: name, version, os, os-version, # support-url, support-email. #imap_id_send = # Какие идентификационные данные писать в лог. * - значит все. #imap_id_log = # Хаки для некоторых быжных клиентов: # delay-newmail: # Отправлять (EXISTS/RECENT) уведомления о новых сообщениях, # только когда получены команды NOOP и CHECK. В противном # случае некоторые клиенты игнорируют эту инфу, например # OSX Mail ( (например, %Uf будет значить, # что имя файла будет в верхнем регистре). # # %v - Mailbox's IMAP UIDVALIDITY # %u - Mail's IMAP UID # %m - хэш MD5 заголовков ящика в hex (только для mbox) # %f - имя файла (только maildir) # # Если вы хотите ,чтобы UIDL был совместим с другими POP3 серверами, # то используйте следующее: # UW's ipop3d : %08Xv%08Xu # Courier : %f or %v-%u (both might be used simultaneosly) # Cyrus (= 2.1.3) : %u # Cyrus (>= 2.1.4) : %v.%u # Dovecot v0.99.x : %v.%u # tpop3d : %Mf # # Учтите, что Outlook 2003 криво работает с форматом %v.%u, который # является значением по умолчанию для Dovecot, так что если вы # настраиваете новый сервер, то хорошим решением будет изменить # данный параметр. Формат %08Xu%08Xv является самым удачным. pop3_uidl_format = %08Xu%08Xv # Сохранять UIDLs посланные POP3 клиентам, таким образом # pop3_uidl_format не будет изменять их. На данный момент работает # только с Maildir. #pop3_save_uidl = no # Формат логов POP3: # %i - общее кол-во байт полученное от клиента # %o - общее кол-во байт отправленное клиенту # %t - количество команд TOP # %p - кол-во байт, отправленное клиенту при вып. команды TOP # %r - число команд RETR # %b - кол-во байт, отправленное клиенту при вып. команды RETR # %d - кол-во удаленных сообщений # %m - кол-во сообщений (перед удалением) # %s - размер ящика в байтах (перед удалением) #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s # Максимальное кол-во подключений для пользователя с одного IP адреса. # Учтите, что в имени пользователя учитывается регистр букв. #mail_max_userip_connections = 3 # Поддержка плагинов. mail_plugins - список плагинов, разделенный # пробелами, которые должны быть загружены. #mail_plugins = #mail_plugin_dir = /usr/local/lib/dovecot/pop3 # Хаки для некоторых быжных клиентов: # outlook-no-nuls: # Outlook и Outlook Express отупляются, если письмо содержит # символы NUL. С этим хаком такие символы будут заменены на # символ 0x80. # oe-ns-eoh: # Outlook Express и Netscape Mail тупят, если пропущено окончание # строки в заголовках. С этим хаком это дело поправимое. # # Элементы списка должны быть разделены пробелами. pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } ## ## Параметры LDA ## protocol lda { # Адрес, используемый для отправки отклоненных писем # (например, postmaster@example.com). #postmaster_address = # Имя хоста, используемое в некоторых частях письма # (например, в Message-Id). По умолчанию берется из системы. #hostname = # Поддержка плагинов. mail_plugins - список плагинов, разделенный # пробелами, которые должны быть загружены. #mail_plugins = #mail_plugin_dir = /usr/local/lib/dovecot/lda # Если пользователь превысил квоту, то вернуть ошибку о временном # сбое вместо отправки отлупа. #quota_full_tempfail = no # Формат логов. Вы можете использовать следующие значения: # %$ - статус доставки (e.g. "saved to INBOX") # %m - Message-ID # %s - тема # %f - от кого #deliver_log_format = msgid=%m: %$ # Бинарник sendmail,а для отправки отлупов. sendmail_path = /usr/sbin/sendmail # Указывать следующую тему в отлупах. Вы можете исползовать # некоторые значения как в параметре rejection_reason ниже. #rejection_subject = Rejected: %s # Сообщение об отлупах. Вы можете использовать следующие значения: # %n = CRLF, %r = reason, %s = original subject, %t = recipient #rejection_reason = Your message to %t> was automatically rejected:%n%r # Путь к UNIX сокету сервера аутентификации. #auth_socket_path = /var/run/dovecot/auth-master } ## ## Процесс аутентификации ## # Путь до исполняемого файла. #auth_executable = /usr/local/libexec/dovecot/dovecot-auth # Максимальный размер процесса в мегабайтах. #auth_process_size = 256 # Размер кэша в килобайтах. 0 значит, что кэш выключен. # Учтите, что bsdauth, PAM и vpopmail требуют, чтобы параметр # cache_key был задан, чтобы использовать кэширование. #auth_cache_size = 0 # Время жизни кэша в секундах. После истечения времени кэшированные # данные не используются, но если БД отвалилась, то остается использовать # только их. Dovecot также пытается автоматически узнать об изменении # пароля у пользователя: если предыдущая аутентификация была успешной, # но текущая потерпела неудачу, то кэш не будет использован. Сейчас это # работает только для аутентификации с открытым текстом. #auth_cache_ttl = 3600 # Время жизни для неудачных попыток (пользователь не найден, # неверный пароль). 0 значит выключить кэширование. #auth_cache_negative_ttl = 3600 # Список, разделенный пробелами, realms для механизма аутентификации # SASL. Вы можете оставить данный параметр не заданным, если вам # не нужно несколько realms. Большинство клиентов используют первый # realm из списка, поэтому ставьте основной realm первым. #auth_realms = # realm/domain по умолчанию, если тот явно не задан. Это используется # и для SASL realms, и для добавления @domain к имени пользователя # при авторизации открытым текстом. #auth_default_realm = # Список разрешенных символов в имене пользователя. Если полученное # имя пользователя имеет символы не из списка, то пользователь # автоматом получает отлуп. Это простая проверка позволяет слать # лесом ботов, ну и чтобы не получить проблем с экранированием данных # при запросах к SQL/LDAP. Если вы хотите разрешить любые символы, то # оставьте это поле пустым. #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # Преобразование имени пользователя перед поиском в БД. Значение # содержит серию замен (исходный -> нужный). Например, "#@/@" # значит, что символы '#' и '/' будут преобразованы в '@'. #auth_username_translation = # Формат имени пользователя перед просмотром в БД. Вы можете # использовать здесь стандартные значения, например, %Lu # преобразует символы в нижний регистр, %n - отбросить домен, если # он задан, или "%n-AT-%d" - заменить символ '@' на '-AT-'. Это # преобразование выполняется после auth_username_translation. auth_username_format = %Lu # If you want to allow master users to log in by specifying the master # username within the normal username string (ie. not using SASL mechanism's # support for it), you can specify the separator character here. The format # is then . UW-IMAP uses "*" as the # separator, so that could be a good choice. #auth_master_user_separator = # Имя анонимного пользователя, используемое с механизмом # ANONYMOUS SASL. #auth_anonymous_username = anonymous # Писать в лог о неудачных попытках входа и их причину. #auth_verbose = no # Выводить более информативные сообщения в лог. Так же пишутся # запросы SQL. #auth_debug = no # В случае несовпадения паролей писать в лог пароли и используемую # схему авторизации. Полезно для отладки. Перед включением # включите auth_debug. #auth_debug_passwords = no # Максимальное количество работающих процессов аутентификации. # Эти процессы создаются и уничтожаются автоматически. #auth_worker_max_count = 30 # Имя хоста используемое в GSSAPI. По умолчанию берется из системы. # Значение "$ALL" разрешает использовать любые записи keytab. # Host name to use in GSSAPI principal names. The default is to use the # name returned by gethostname(). Use "$ALL" to allow all keytab entries. #auth_gssapi_hostname = # Kerberos keytab для работы с GSSAPI. Если не указан, то # используется системное значение (обычно /etc/krb5.keytab). #auth_krb5_keytab = # Авторизация NTLM и GSS-SPNEGO через демона winbind и ntlm_auth # из пакета Samba. #auth_use_winbind = no # Путь до тулзы ntlm_auth из пакета Samba. #auth_winbind_helper_path = /usr/local/bin/ntlm_auth # Количество секунд выжидаемое перед повторной попыткой аутентификации. #auth_failure_delay = 2 auth default { # Список, разделенный пробелами, разрешенных методов аутентификации: # plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey # gss-spnego # Учитывайте значение параметра disable_plaintext_auth. mechanisms = plain login # БД паролей, используемая для проверки пользователей (и ничего более). # Вы можете настроить несколько БД паролей (passdbs) и # пользователей (userdbs). Это полезно, если вы хотите сделать доступ # системным пользователям и виртуальным одновременно, чтобы # не пришлось дублировать системных в базе виртуальных. # # # Если вы добавите в passdb master=yes, то пользователи из этой БД # будут обладать доп. привилегиями ("master users") - смогут залогиниться # как кто-либо другой. Если вы не используете PAM, то скорее всего вам # необходимо, чтобы целевой пользователь реально существовал # в какой-либо ДБ. Это можно сделать добавив в master passdb pass=yes. # # Пользователям можно временно запретить доступ , добавив в passdb # параметр deny=yes. Если пользователь будет найден в такой БД, # то в доступе ему будет отказано. Такие passdb должны быть настроены # перед остальными, чтобы они проверялись первыми. Пример: #passdb passwd-file { # Файл содержит список пользователей, по одному на строчку #args = /usr/local/etc/dovecot.deny #deny = yes #} # Аутентификация через PAM. Является основной на большинстве # современных систем. Учтите, что PAM может использоваться только # для проверки паролей, поэтому ее нельзя использовать как userdb. # Если вам не нужна раздельная БД, вы можете указать статичную. # Внимание: вы должны настроить PAM - /etc/pam.d/dovecot. # passdb pam { # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=] # [cache_key=] [] # # session=yes заставляет Dovecot открывать и немедленно закрывать # PAM сессию. Для некоторых плагинов PAM это необходимо, # например pam_mkhomedir. # # setcred=yes заставляет Dovecot предоставлять учетные данные # для PAM, если это необходимо. Хотя они никогда не удаляются, # поэтому данный параметр по умолчанию выключен. # # max_requests определяет сколько будет сделано PAM запросов # процессом, перед тем как он будет пересоздан. По умолчанию 100, # потому что в большинстве плагинов есть утечки памяти. # # cache_key можно использовать для кэширования данных из PAM. # (так же необходимо задать параметр auth_cache_size). По умочанию # данный параметр выключен, потому что модули PAM могут делать # дополнительные проверки (помимо проверки пароля), например # проверять IP адрес. Dovecot самостоятельно никак не может узнать # о таких проверках. cache_key это просто список значений (смотрите # doc/wiki/Variables.txt), которые используются для того, чтобы # определить какие данные кэшировать. # Некоторые примеры: # %u - имя пользователя. Хватает в большинстве случаев. # %u%r - имя пользователя и удаленный IP. # %u%s - имяпользователя и сервис (IMaP, POP3). # # Имя сервиса может содержать доп. значения, например при %Ls # имя сервиса будет imap или pop3. # # Примеры: # args = session=yes %Ls # args = cache_key=%u dovecot #args = dovecot args = session=yes dovecot } # Системные пользователи (NSS, /etc/passwd, и т.п.) # В большинстве современных сисстем используется Name Service Switch, # который конфигурируется через файл /etc/nsswitch.conf. # #passdb passwd { # [blocking=yes] - смотрите userdb passwd #args = #} # Shadow пароли для системных пользователей (NSS, /etc/shadow и .т.п.). # По новым правилам запрещено PAM. # #passdb shadow { # [blocking=yes] - смотрите userdb passwd #args = #} # PAM-подобная аутентификация для OpenBSD. # #passdb bsdauth { # [cache_key=] - смотрите cache_key в PAM #args = #} # passwd-подобный файл # #passdb passwd-file { # [scheme=] [username_format=] # Путь до файла> #args = #} # checkpassword исполняемый файл для аутентификации. # Заметка: Возможно вы захотите использовать вместе с "userdb prefetch". # #passdb checkpassword { # Путь до исполняемогофайла checkpassword #args = #} # SQL хранилище #passdb sql { # Путь до конфигурационного файла SQL. # Смотрите /usr/local/share/examples/dovecot/dovecot-sql.conf #args = /usr/local/etc/dovecot-sql.conf #} # LDAP хранилище #passdb ldap { # Путь до конфигурационного файла LDAP. # Смотрите /usr/local/share/examples/dovecot/dovecot-ldap.conf #args = /usr/local/etc/dovecot-ldap.conf #} # Аутентификация vpopmail #passdb vpopmail { # [cache_key=] - смотрите cache_key в PAM. # [quota_template=] - %q раскрывается в Maildir++ квоту # (eg. quota_template=quota_rule=*:backend=%q) #args = #} # # БД пользователей определяет, где хранится почта и какому # пользователю/группе она принадлежит. При конфигурации # single-UID используйте "static". # # # # БД пользователей "prefetch" используется для сохранения информации # полученной из passdb, то есть отпадает необходимость в повторном # просмотре userdb. Такое возможно сделать при работе с хранилищем # SQL и LDAP. #userdb prefetch { #} # Системные пользователи (NSS, /etc/passwd, и т.п.) # В большинстве современных сисстем используется Name Service Switch, # который конфигурируется через файл /etc/nsswitch.conf. # userdb passwd { # [blocking=yes] - по умолчанию просмотр БД пользователей выполняется # в главном процессе dovecot-auth. Этот параметр позволяет выполнять # такие запросы в процессе auth worker. Такое поведение полезно, когда # выполняются удаленные NSS запросы, которые могут блокироваться. # Заметка: используйте этот параметр с nss_ldap или пользователями, # которые могут заходить как кто-то другой! args = blocking=yes } # passwd-подобный файл # #userdb passwd-file { # [username_format=] Путь до файла> #args = #} # checkpassword исполняемый файл для поиска пользователей. # #userdb checkpassword { # Путь до исполняемого файла checkpassword #args = #} # Параметры static генерируются из шаблона #userdb static { # Шаблон для данных. Может возвращать все, что может вернуть userdb. # Например: # # args = uid=500 gid=500 home=/var/mail/%u # # If you use deliver, it needs to look up users only from the userdb. This # of course doesn't work with static because there is no list of users. # Normally static userdb handles this by doing a passdb lookup. This works # with most passdbs, with PAM being the most notable exception. If you do # the user verification another way, you can add allow_all_users=yes to # the args in which case the passdb lookup is skipped. # #args = #} # SQL хранилище #userdb sql { # Путь до конфигурационного файла SQL. # Смотрите /usr/local/share/examples/dovecot/dovecot-sql.conf #args = /usr/local/etc/dovecot-sql.conf #} # LDAP хранилище #userdb ldap { # Путь до конфигурационного файла LDAP. # Смотрите /usr/local/share/examples/dovecot/dovecot-ldap.conf #args = /usr/local/etc/dovecot-ldap.conf #} # vpopmail #userdb vpopmail { #} # Пользоватль, под которым работает процесс. Он необходим для доступа # к БД пользователей и паролей, но ничего более. Только аутентификация # shadow и pam требует привилегей пользователя root, так что используйте # другого пользователя, если это возможно. Учтите, что passwd аутентификация # напрямую работает с файлами shadow, для чего могут потребоваться # привилегии пользователя root. Так же учтите, что этот пользователь # не используется для работы с почтовыми ящиками пользователей. user = root # Директория, куда chroot,ится процесс. Большинство модулей аутентификации # не работают в таком режиме и нет смысла в chroot,е, если auth_user - root. # Учтите, что valid_chroot_dirs не требуется для этого параметра. #chroot = # Количество создаваемых процессов аутентификации. #count = 1 # Требовать SSL сертификат от клиента. Если он его не предоставит, то # ему будет отказано в доступе. #ssl_require_client_cert = no # Взять имя пользователя из SSL сертификата, используя функцию # X509_NAME_get_text_by_NID(), которая возвращает CommonName. #ssl_username_from_cert = no # Если необходимо, то дать доступ к процессу аутентификации другим прогам: socket listen { master { # Главный сокет предоставляет доступ к userdb. Например, используется # Dovecot LDA, чтобы найти путь к почтовомому ящику пользователя. path = /var/run/dovecot/auth-master mode = 0600 # Пользователь/группа, под котторыми запускается dovecot-auth (root) #user = #group = } client { # Сокет для клиентов безопасно открывать для всех. Например, # SMTP сервер может проверять пользователей, используя его. path = /var/run/dovecot/auth-client mode = 0660 } } } # Если вам необходимо использовать другой сервер аутентификаций, то # вы можете использовать подключаемые сокеты. Главный процесс Dovecot # попробует подключиться к нему. Дополнительных настроек не требуется, # только путь к сокету. Учтите, что клиентские сокеты должны существовать # в login_dir. #auth external { # socket connect { # master { # path = /var/run/dovecot/auth-master # } # } #} ## ## Настройки dictionary server ## # Словарь может использоваться некоторыми плагинами, для сохранения # значений типа ключ=значение. К таким плагинам можно отнести: quota, # expire и acl. Словарь может использоваться через сервер или напрямую. # Следующий блок dict ассоциирует имена словарей и URI, когда используется # сервер. URI имеет следующий формат "proxy::". dict { #quota = mysql:/usr/local/etc/dovecot-dict-quota.conf #expire = db:/var/db/dovecot/expire.db } # Путь до конфигурационного файла Berkeley DB. # Смотрите /usr/local/share/examples/dovecot/dovecot-db.conf #dict_db_config = /usr/local/etc/dovecot-db.conf ## ## Настройки плагинов ## plugin { # Здесь можно задать дополнительные переменные окружения для mail # процессов. В основном используется для настройки плагинов. # Раскрытие %variable выполняется для всех значений. # Квота. Поддерживается несколько методов хранения квот: # dirsize: поиск всех файлов в ящике и подсчет общего размера. # Очень медленно работает с Maildir. Может нагрузить CPU и # подсистему I/O диска. # dict: хранить данные в словаре (например, SQL) # maildir: Maildir++ quota # fs: использовать системные квоты # # Квота задается с помощью параметра "quota_rule", указывается непосредственно # в нем или в userdb. Возможно задавать размеры для папок в ящике: # quota_rule = *:storage=1048576 # quota_rule2 = Trash:storage=102400 # Юзер имеет квоту в 1GB, но для корзины выделено доп. 100MB. # # Возможны и такие конфигурации: # quota = dict:user::proxy::quota # quota2 = dict:domain:%d:proxy::quota_domain # quota_rule = *:storage=102400 # quota2_rule = *:storage=1048576 # Каждый пользователь имеею квоту в 100MB и есть одна разделяемая квота # в 1GB для домена. # # Возможно запускать исполняемый файл, когда пользователь исчерпал лимит. # Квоты могут иметь разные ограничения. Файл будет запущен, только # для первой сработавшей квоты, поэтому помещайте команды в порядке # убывания ограничений. # Учтите, что символ '%' должен экранироваться - %%, иначе он будет заменен # на пустое значение. # quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95 # quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80 #quota = maildir # Плагин ACL. vfile читает ACLs из файла "dovecot-acl", который находится # ящике пользователя. Вы можете задать глобальную директорию для ACL, # в которой будут файлы с настройками для каждого ящика, например, # INBOX или sub.mailbox. Параметр cache_secs определяет, через сколько # секунд проверять файл "dovecot-acl" на предмет изменений. #acl = vfile:/usr/local/etc/dovecot-acls:cache_secs=300 # To let users LIST mailboxes shared by other users, Dovecot needs a # shared mailbox dictionary. For example: #acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes # Плагин Convert. Если включен, то делает преобразования пути для ящиков # (mail_location), когда пользователь входит на сервер. # Существующая директория с почтой переименовывается в -converted. #convert_mail = mbox:%h/mail # Пропускать ящики, которые не удается открыть вместо отмены операции. #convert_skip_broken_mailboxes = no # Пропускать директории начинающиеся с '.' #convert_skip_dotdirs = no # If source storage has mailbox names with destination storage's hierarchy # separators, replace them with this character. #convert_alt_hierarchy_char = _ # Плагин Trash. Если при сохранении сообщения происходит превышение # квоты, то этот плагин автоматически удаляет старые письма из ящика, # до тех пор пока не влезет новое сообщение. Конфигурационный файл # имеет следующий формат: . # Первыми удаляются письма с низким приоритетом и далее по # нарастающей. #trash = /usr/local/etc/dovecot-trash.conf # Плагин Expire. Письма будут удалены из ящика по истечении указанного # времени. Время жизни сообщений для каждого ящика хранится в словаре, # что позволяет быстро определить, в котором ящике хранятся сообщения # подлежащие удалению. Чистка может быть выполнена ночью с помощью # cron, например, такой командой: # dovecot --exec-mail ext /usr/local/libexec/dovecot/expire-tool #expire = Trash 7 Spam 30 #expire_dict = proxy::expire # Плагин Lazy expunge. На данный момент работает только с Maildir. Когда # у пользователя есть письма подлежащие удалению, то эти письма # переносятся в первое пространство имен. Когда ящик удаляется, то он # перемещается во второе пространство имен. Так, если удаляемый ящик # содержит письма подлежащие удалению, то он может быть перемещен # в третье пространство имен. Такие письма не участвуют в подсчете # квоты и поэтому не могут быть удалены автоматически (используйте cron). #lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/ # Лог событий. Так же возможно добавить: flag_change #mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename # Группировать события в одной строке. #mail_log_group_events = no # Возможные поля: uid, box, msgid, from, subject, size, vsize, flags # size и vsize доступны для для expunge и copy событий. #mail_log_fields = uid box msgid size } # Включить следующие конфигурационный файлы. На данный момент deliver # не поддерживает такое. #!include /usr/local/etc/dovecot/conf.d/*.conf # Попробовать включить файл. Если файл не будет найдет, то это просто # будет проигнорировано. #!include_try /usr/local/etc/dovecot/extra.conf
Яндекс.Метрика