На предприятиях нередко возникает ситуация, когда требуется создание так называемого VIP-почтового ящика, отправлять письма на который может только определенный круг лиц. Такие почтовые ящики характерны для любых топ-менеджеров с личными секретарями. Всю электронную почту вместо топ-менеджера получает секретарь, который затем выбирает из общего потока действительно важные и нужные сообщения и перенаправляет их на почтовый ящик своего руководителя. Обычный же сотрудник предприятия при попытке отправить сообщение на VIP-почтовый ящик должен получать уведомление о том, что его сообщение не было доставлено. Такой VIP-почтовый ящик можно без труда реализовать в Zimbra Open-Source Edition с помощью встроенных инструментов для фильтрации почты под названием Amavis и cbpolicyd.

image

Amavis координирует действия агента пересылки электронной почты Postfix, спам-фильтра Spam Assassin, антивируса ClamAV и ряда других. В комплексе все эти утилиты обеспечивают надежную защиту от спама и вирусов, а также фишинговых писем, представляющих серьезную угрозу для информационной безопасности предприятия. По умолчанию Amavis подвергает такой фильтрации все электронные письма без исключения, однако встроенная функциональность ограничения политик позволяет не только отключить такую фильтрацию для каких-либо почтовых ящиков, но также и ограничить список лиц, которые в принципе могут отправлять на почтовые ящики электронные письма.

Для примера возьмем почтовый ящик генерального директора ceo@example.ru, для которого необходимо ограничить круг лиц, которые могут присылать сообщения напрямую. Список будет ограничен топ-менеджментом компании в виде CTO, CIO и CFO, а также личным секретарем. Для этого мы и воспользуемся ограничениями политик Amavis. С помощью команды zmprov ma ceo@example.ru +amavisWhitelistSender secretary@example.ru cto@example.ru cio@example.ru cfo@example.ru мы добавим в белый список адреса, которые могут писать электронные письма генеральному директору напрямую, а с помощью команды zmprov ma ceo@example.ru amavisBlacklistSender example.ru мы добавляем в черный список остальных.

Для того, чтобы убедиться в том, что все сделано верно, можно выполнить команду zmprov -l ga ceo@example.ru | grep amavis | grep Sender. В выводе команды будет видно как тех, кому разрешено отправлять сообщения генеральному директору, так и тех, кому отправка сообщений на его адрес электронной почты запрещена. Однако, помимо пользователей домена предприятия, письма на почтовый ящик генерального директора могут поступать и с доменов во внешнем интернете. Поэтому разумным шагом было бы введение безусловного запрета на получение электронных писем из внешнего интернета для данного почтового ящика.

Ввести подобные ограничения можно за счет использования cbpolicyd — службы политик, встроенной в Zimbra Collaboration Suite Open-Source Edition. Для того, чтобы её воспользоваться, необходимо сперва активировать соответствующий модуль в Zimbra OSE. Для этого необходимо ввести команду zmprov ms mail.example.ru +zimbraServiceEnabled cbpolicyd. Выполните эту команду на узле с MTA в том случае, если ваша Zimbra OSE работает на мультисерверной инфраструктуре. Также потребуется открыть доступ к cbpolicyd через веб-интерфейс. Для этого введем команду ln -s /opt/zimbra/data/cbpolicyd/share/webui /opt/zimbra/httpd/htdocs/, которая создаст символьную ссылку в сервере Apache. Кроме того, необходимо добавить в файл /opt/zimbra/cbpolicyd/share/webui/includes/config.php информацию о базе данных, к которой должно происходить подключение. Для этого в любом текстовом редакторе добавим в данный файл строку $DB_DSN=«sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb»;. После этого останется только перезапустить Zimbra OSE и веб-сервер Apache с помощью команд zmcontrol restart и zmapachectl restart.

Теперь веб-интерфейс для администрирования cbpolicyd доступен по адресу mail.example.ru:7780/webui/index.php, однако стоит учесть, что он может быть недоступен из-за настроек брандмауэра. Настройте его, чтобы получить доступ к веб-интерфейсу cbpolicyd. После того как вы зайдете в веб-интерфейс cbpolicyd, необходимо создать две группы: users_local_only для пользователей, которые могут получать почту только от пользователей локального домена, а также local_domain для локального домена и включить их, убрав галочку с пункта «Отключено». После этого нужно добавить участников в группы. В нашем случае мы добавим ceo@example.ru в группу users_local_only и домен example.ru в группу local_domain.





Теперь приступим к настройкам политик. Назовем нашу «Receiving Local Only» и укажем в ней группы пользователей, на которых она будет распространяться, и доменов, которые считаются локальными. В качестве их следует указать группы users_local_only и local_domain, а также указать приоритет применения политики. Это необходимо для тех случаев, когда к одному и тому же почтовому ящику применяются сразу несколько политик. На основе приоритета cbpolicyd решает, какая политика будет применяться, а какая будет проигнорирована. В нашем случае можно выставить приоритет 100 и в дальнейшем, если появятся дополнительные накладывающиеся друг на друга политики, скорректировать его.



Еще одним важным моментом является настройка действия при срабатывании политики. Иными словами, если мы запретили почтовому ящику генерального директора получать письма от любых внешних доменов, то надо определиться с тем, что будет происходить с письмами, которые продолжат поступать на его почтовый ящик. Предлагаем просто отклонять такие письма с помощью опции REJECT. После внесения изменений, остается лишь применить политики и перезапустить cbpolicyd с помощью команд zmprov ms mail.example.ru zimbraCBPolicydAccessControlEnabled TRUE и zmcbpolicydctl restart.

Таким образом, с помощью встроенных инструментов Zimbra Collaboration Suite Open-Source Edition мы создали VIP-почтовый ящик, отправлять письма в который могут лишь несколько человек. Используя данный шаблон, вы можете расширить число VIP-почтовых ящиков, а также число учетных записей, способных отправлять им письма.