Установка плагина Policyd с web-интерфейсом в Zimbra
Zimbra Collaboration Suite почтовый сервер, который использует Postfix в качестве движка для MTA. Поэтому в нем существует возможность установки плагина Policyd, который включает в себя несколько модулей:
- Access Control - ограничение приема/пересылки писем по спискам доступа (списки могут быть различными - на основе названия домена, учетной записи пользователя, почтового адреса, ip-адреса или подсети);
- HELO/EHLO Checks - организация белых и черных списков;
- SPF Checks - поведение сервера, если сервер-отправитель не прошел проверку SPF-записи;
- Greylisting - организация серых списков;
- Quotas - при помощи данного модуля можно ограничить количество принятых/отправленных сообщений в единицу времени;
- Accounting - при помощи данного модуля можно также ограничивать количество отправленных сообщений и количество отправленных килобайт.
Управление настройками Policyd в Zimbra можно осуществлять через web-интерфейс, к сожалению, он на английском, зато довольно простой и понятный.
Установка Policyd и настройка web-интерфейса
Для версии 8.6 и ниже сначала убедитесь, что установлен sqlite
# rpm -qa | grep sqlite
sqlite-3.6.20-1.el6.x86_64
Активация плагина Policyd
Для всех выпусков Zimbra сначала нужно активировать Policyd:
$ zmprov ms `zmhostname` +zimbraServiceEnabled cbpolicyd
Спустя пару минут процесс zmconfigd обнаружит, что вы захотели включить сервис, после чего автоматически установит базу данных и запустить службу.
Активация web-интерфейса Policyd
Создадим символьную ссылку:
# ln -s /opt/zimbra/common/share/webui /opt/zimbra/data/httpd/htdocs/webui
Отредактируем конфиг:
# mcedit /opt/zimbra/data/httpd/htdocs/webui/includes/config.php
$DB_DSN="sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb";
$DB_USER="root";
$DB_TABLE_PREFIX="";
Перезапускаем сервисы Zimbra и Zimbra Apache:
# su - zimbra -c "zmcontrol restart"
# su - zimbra -c "zmapachectl restart"
Зайти в управление можно по адресу http://mail.example.com:7780/webui/index.php (не забудьте разрешить подключение к порту 7780).
Защита доступа к web-интерфейсу Policyd
По умолчанию доступ к интерфейсу незащищен (если конечно вы не используете для этого firewall). Ограничим доступ с использованием htaccess.
Создадим файл .htaccess:
# mcedit /opt/zimbra/data/httpd/htdocs/webui/.htaccess
AuthUserFile "/opt/zimbra/data/httpd/htdocs/webui/.htpasswd"
AuthGroupFile /dev/null
AuthName "User and Password"
AuthType Basic
<LIMIT GET>
require valid-user
</LIMIT>
Создадим файл с паролями:
# cd /opt/zimbra/data/httpd/htdocs/webui
# /opt/zimbra/common/bin/htpasswd -cb .htpasswd USERNAME PASSWORD
Добавьте в самый конец файла /opt/zimbra/conf/httpd.conf:
Alias /webui /opt/zimbra/data/httpd/htdocs/webui/
<Directory /opt/zimbra/data/httpd/htdocs/webui/>
AllowOverride AuthConfig
Order Deny,Allow
Allow from all
</Directory>
Перезапустите сервер Apache:
# su - zimbra -c "zmapachectl restart"
Теперь если попытаться зайти http://mail.example.com:7780/webui/index.php система запросит имя и пароль.