ManageSieve

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:52, 15 января 2019.

ManageSieve - это небольшой сервер, который принимает свои собственные правила от пользователей Mailaccount и активирует их в системе. Таким образом, пользователи больше не зависят от администратора при внесении изменений в фильтры, но могут по желанию расширять или изменять свои собственные фильтры. Администрирование скриптов осуществляется через клиент Sieve. [Источник 1]


Управление установкой

Сначала войдите в систему как пользователь root на сервере Linux, чтобы установить Managesieve:

$ sudo -s 

На Ubuntu Server Managesieve предоставляется пакетом "dovecot-managed":

$ apt-get install dovecot-managesieved 

После установки необходимо немного отрегулировать Sieve, чтобы фильтры были сохранены в нужном месте. Существует каталог / var / vmail / sieve /. Например, конфигурация в файле /etc/dovecot/dovecot.conf может выглядеть так:

1  plugin {
2     sieve_before = /var/vmail/sieve/spam-global.sieve
3     sieve_dir = /var/vmail/sieve/scripts/%u
4     sieve = /var/vmail/sieve/%u.sieve
5  }
  • «Sieve_before» - это фильтр, который всегда запускается перед всеми другими фильтрами, независимо от пользователя. (Полезно, например, для фильтрации спама).
  • «Sieve_dir» указывает путь к каталогу, в котором создаются сценарии фильтров пользователей.
  • «Sieve» указывает путь к символической ссылке, которая указывает на текущий используемый набор фильтров.

В разделе «протоколы» добавлено «Sieve»:

$ protocols = imap lmtp sieve 

Кроме того, в качестве плагина для LMTP добавлено Sieve:

1  plugin {
2  protocol lmtp {
3     mail_plugins = $mail_plugins sieve
4   } 
5  }

Теперь Dovecot необходимо перезапустить, чтобы изменения вступили в силу

$ service dovecot restart 

Конфигурация ManageSieve

Конфигурация ManageSieve состоит из настроек протокола ManageSieve и настроек, связанных с интерпретатором Sieve . Настройки интерпретатора Sieve используются совместно с настройками плагина Sieve для локального агента доставки (LDA) и LMTP Dovecot . Сначала описываются настройки протокола ManageSieve, а затем описываются соответствующие настройки Sieve.

Конфигурация протокола

В разделе протокола Sieve можно настроить следующие параметры :

managesieve_max_line_length = 65536 - максимальная длина командной строки ManageSieve в байтах. Этот параметр напрямую заимствован из IMAP.


managesieve_logout_format = bytes =% i /% - задает строковый шаблон, используемый для составления сообщения о выходе из сеанса с проверкой подлинности. Доступны следующие замены:

%i - общее количество байтов, прочитанных с клиента;
%o - общее количество байтов, отправленных клиенту.

managesieve_implementation_string = Dovecot Pigeonhole. Чтобы обмануть клиентов ManageSieve, ориентированных на временные характеристики CMU, вы можете указать возможность IMPLEMENTATION, о которой Dovecot сообщает клиентам (например, «Cyrus timsieve v2.2.13»).

managesieve_max_compile_errors = 5 - максимальное количество ошибок компиляции, которые возвращаются клиенту при загрузке скрипта или проверке скрипта.

managesieve_sieve_capability =, managesieve_notify_capability. Соответственно, возможности Sieve и Notify, о которых сообщает служба ManageSieve перед аутентификацией. Если они не назначены, они будут назначаться динамически в соответствии с тем, что по умолчанию поддерживает интерпретатор Sieve (после входа в систему это может отличаться в зависимости от аутентифицированного пользователя).

Конфигурация интерпретатора Sieve

Часть конфигурации интерпретатора Sieve, которая имеет отношение к ManageSieve, в основном состоит из параметров, которые определяют, где хранятся скрипты пользователя и где находится активный скрипт. Служба ManageSieve в первую очередь использует следующую настройку интерпретатора Sieve в разделе плагина конфигурации Dovecot:

$ sieve = file:~/sieve;active=~/.dovecot.sieve 

Это указывает место, где хранятся скрипты, загруженные через ManageSieve. Во время доставки подключаемый модуль LDA Sieve использует этот параметр местоположения, чтобы найти активный сценарий фильтрации Sieve. Расширение Sieve include использует это местоположение для получения сценариев ": personal". Если тип местоположения не позволяет загружать сценарии, использование службы ManageSieve невозможно. В настоящее время только тип местоположения « файл » поддерживает ManageSieve.

Для « файла » типа расположения :

  • Местоположение - это путь к каталогу хранилища для всех личных сценариев Sieve пользователя. Скрипты хранятся в виде отдельных файлов с расширением .sieve.. Все остальные файлы игнорируются, когда сценарии перечислены клиентом ManageSieve. Каталог хранилища всегда генерируется автоматически, если он не существует (насколько система позволяет пользователю делать это; никакие привилегии root не используются). Это похоже на поведение почтовых демонов в отношении конфигурации mail_location.
  • ManageSieve поддерживает символическую ссылку, указывающую на текущий активный скрипт (скрипт, выполняемый при доставке). Расположение этой символической ссылки можно настроить с помощью параметра: active = <path>. Если обычный файл уже существует в местоположении, указанном в параметре местоположения: location ; active = <путь> , он перемещается в каталог хранения до установки символической ссылки. Он переименован в dovecot.orig.sieve и поэтому dovecot.orig клиентом ManageSieve указан как dovecot.orig.

Для версий Pigeonhole до v0.3.1 этот параметр может быть только путем файловой системы, указывающим на файл сценария, или - когда используется ManageSieve - это расположение символической ссылки, указывающей на активный сценарий в каталоге хранилища. Этот каталог хранения затем настраивается с использованием устаревшего параметра sieve_dir .

Поддержка квот

По умолчанию пользователи могут управлять неограниченным количеством скриптов Sieve на сервере через ManageSieve. Тем не менее, ManageSieve может быть настроен на применение ограничений на количество личных сценариев Sieve на пользователя и / или объем дискового пространства, используемого этими сценариями. Максимальный размер отдельных загружаемых скриптов определяется конфигурацией интерпретатора Sieve . Ограничения настраиваются в разделе плагинов конфигурации Dovecot следующим образом:

sieve_max_script_size = 1M - максимальный размер скрипта Sieve.

sieve_quota_max_scripts = 0 - максимальное количество личных скриптов Sieve, которые может иметь один пользователь.

sieve_quota_max_storage = 0 - максимальный объем дискового пространства, которое могут занимать сценарии одного пользователя.

Значение 0 для этих настроек означает, что ограничение не применяется.

Примеры

...
service managesieve-login {
  sieve #inet_listener {
  # port = 4190
  #}

  #inet_listener sieve_deprecated {
  # port = 2000
  #}

  # Количество соединений для обработки перед запуском нового процесса. Типично
  # единственные полезные значения: 0 (неограниченный) или 1. 1 более безопасный, но 0
  # быстрее. <doc/вики/LoginProcess.txt>
  #service_count = 1

  # Количество процессов, которые всегда ждут большего количества подключений.
  #process_min_avail = 0

  # Если вы установите service_count = 0, вам, вероятно, нужно это увеличить.
  #vsz_limit = 64M
}

servise managesieve {
  # Макс. количество процессов ManageSieve (соединений)
  #process_limit = 1024
}

# Service configuration

protocol sieve {
  # Максимальная длина командной строки ManageSieve в байтах. ManageSieve обычно делает
  # не включать слишком длинные командные строки, поэтому эта настройка обычно не требуется
  # регулировка
  #managesieve_max_line_length = 65536

  # Максимальное количество подключений ManageSieve, разрешенных для пользователя с каждого IP-адреса.
  # ПРИМЕЧАНИЕ. Имя пользователя сравнивается с регистром.
  #mail_max_userip_connections = 10

  # Пространственный список загружаемых плагинов (пока не известно, что они полезны). Не
  # Попробуйте загрузить плагины IMAP.
  #mail_plugins =

  # MANAGESIEVE строка формата выхода:
  #% i - общее количество байтов, считанных от клиента
  #% o - общее количество байтов, отправленных клиенту
  #managesieve_logout_format = bytes =% i /% o

  # Чтобы обмануть клиентов ManageSieve, которые сосредоточены на потерях CMU, вы можете указать
  # возможность ОСУЩЕСТВЛЕНИЯ, которую dovecot сообщает клиентам.
  # Например: «Cyrus timsieved v2.2.13»
  #managesieve_implementation_string = Dovecot Pigeonhole

  # Явным образом указывайте возможности SIEVE и NOTIFY, сообщенные сервером до
  # авторизоваться. Если они оставлены не назначенными, они будут динамически сообщаться в соответствии с тем, что
  # Ситовый интерпретатор поддерживает по умолчанию (после входа в систему это может различаться в зависимости
  # для пользователя).
  #managesieve_sieve_capability =
  #managesieve_notify_capability =

  # Максимальное количество ошибок компиляции, возвращаемых клиенту по сценарию
  # загрузка или проверка подлинности.
  #managesieve_max_compile_errors = 5

  # Обратитесь к 90-sieve.conf для настройки квоты скрипта и конфигурации
  # Пределы выполнения сита.
}


plugin {
  # Используется как сетевым плагином, так и протоколом ManageSieve
  sieve = file: ~ / sieve; active = ~ / .dovecot.sieve
}

Миграция из Dovecot v1.x ManageSieve

После релиза ManageSieve для Dovecot v1.x изменилось следующее:

  • Для Dovecot v1.0 и v1.1 параметр sieve_dir, используемый ManageSieve, назывался sieve_storage . Кроме того, настройки Sieve и sieve_storage были размещены в разделе конфигурации протокола управления. В соответствии с Dovecot v1.2 эти настройки доступны плагину Sieve и находятся в разделе плагинов конфигурации. Убедитесь, что вы обновили имя параметра sieve_dir и расположение обоих этих параметров при обновлении с ManageSieve для Dovecot v1.0 / v1.1.
  • Pigeonhole ManageSieve больше не использует конфигурацию mail_location как запасной вариант для определения местоположения по умолчанию для хранения скриптов Sieve. Он всегда использует параметр sieve_dir со значением по умолчанию ~ / sieve .
  • Служба Pigeonhole ManageSieve теперь по умолчанию привязывается к TCP-порту 4190 по умолчанию из-за назначения порта IANA для службы ManageSieve. При обновлении с v1.x это следует учитывать. Для плавного перехода служба может быть настроена вручную для прослушивания как на порте 2000, так и на порте 4190, как показано в разделе примера.
  • Конфигурация Dovecot теперь вызывает протокол ManageSieve "Sieve"вместо «Manage», поскольку он зарегистрирован как таковой в IANA. Двоичные файлы и сервисы до сих пор называются «managesieve» и «managesieve-login». Раздел примера демонстрирует, как это влияет на конфигурацию.[Источник 2]

Источники

  1. Dovecot Sieve Manager (Managesieve) installieren // thomas-leister.de. Дата обновления: 03.07.2016. URL: https://legacy.thomas-leister.de/dovecot-sieve-manager-installieren-und-einrichten/ (дата обращения: 29.11.2018).
  2. ManageSieve Configuration // Dovecot. Дата обновления: 04.06.2015. URL: https://wiki2.dovecot.org/Pigeonhole/ManageSieve/Configuration (дата обращения: 29.11.2018).

Ссылки