Содержание
Zimbra
Команды запускаются от пользователя zimbra, например (перезагрузка MTA):
sudo su -l zimbra -c "zmmtactl reload"
или (при этом способе переменные пользователя работают, команды из /opt/zimbra/bin/ запускаются без указания пути)
sudo su - zimbra zmmtactl reload
статус служб zimbra:
sudo su -l zimbra -c "zmcontrol status"
zmprov
https://wiki.zimbra.com/wiki/Zmprov
Утилита для работы с LDAP Zimbra
Admin Account
Создать учетную запись:
sudo su -l zimbra -c "zmprov ca testadmin@domain.com test123 zimbraIsAdminAccount TRUE"
Повысить права до админа:
sudo su -l zimbra -c "zmprov ma futur-admin@domain.com zimbraIsAdminAccount TRUE"
Изменить пароль:
sudo su -l zimbra -c "zmprov sp testadmin@domain.com NEW_PASSWORD"
Переиндексация ящиков
Переиндексировать ящик admin@domain.com:
sudo su - zimbra -c "zmprov rim admin@domain.com start"
Посмотреть статус переиндексации ящика admin@domain.com:
sudo su - zimbra -c "zmprov rim admin@domain.com status"
Запустить переиндексацию каждого ящика в домене domain.com:
for i in `sudo su - zimbra -c "zmprov -l gaa domain.com"`; do sudo su - zimbra -c "echo Start $i: && zmprov rim $i start"; done
zmlocalconfig
https://wiki.zimbra.com/wiki/CLI_zmlocalconfig_(Local_Configuration)
Утилита для работы с конфигурацией сервера Zimbra.
Конфигурируются:
- /opt/zimbra/conf/localconfig.xml
MySql Password
Посмотреть текущие учетные данные Mysql:
su zimbra -c "/opt/zimbra/bin/zmlocalconfig -s | grep mysql | grep password"
DKIM
Добавление DKIM данных для домена
su -l zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -a -d example.com"
Из вывода берем TXT запись для добавляения в DNS
DKIM Data added to LDAP for domain example.com with selector 58B7D326-523B-11E4-9AA8-7DBC76E3D896 Public signature to enter into DNS: 58B7D326-523B-11E4-9AA8-7DBC76E3D896._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa2RW/2sINyRxYhouxkcBSF75LXyEZRAJD5MdMsIH/0AQwmFPfnv8gcdX8vYRA/6i0p9yFDvbjsH7z68IlLyDpHepuIvLtmnnUaAxLx2w2QI3M2M+MCqXlCiKpuOWMCNazohOCiId8Q6qautu/C+0AdsXFmi/aerRJLsMrs25eBwIDAQAB" ) ; ----- DKIM key 58B7D326-523B-11E4-9AA8-7DBC76E3D896 for example.com
Проверка сохраненных DKIM данных для домена
sudo su -l zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -q -d example.com"
Для проверки, что служба работает.
Должна быть строчка в /opt/zimbra/common/conf/master.cf.in
[%%zimbraLocalBindAddress%%]:10030 inet n - n - - smtpd ... -o smtpd_milters=inet:127.0.0.1:8465 ...
Для проверки DNS записи:
dig -t txt 58B7D326-523B-11E4-9AA8-7DBC76E3D896._domainkey.example.com ns.example.com | grep DKIM
Проверяем, что открытый ключ соответствует закрытому:
sudo /opt/zimbra/common/sbin/opendkim-testkey -d example.com -s 58B7D326-523B-11E4-9AA8-7DBC76E3D896 -x /opt/zimbra/conf/opendkim.conf
Удаление DKIM данных для домена
su -l zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -r -d example.com"
Блокировка входящей почты
Блокируем всю входящую почту на noreply@domain.com
Создаем /opt/zimbra/conf/protected_recipients:
/^noreply\@domain\.ru$/ REJECT
В /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf добавляем в начало:
check_recipient_access regexp:/opt/zimbra/conf/protected_recipients
Перегружаем MTA:
sudo su - zimbra -c "zmmtactl restart"
Ограничение исходящей почты по доменам
Разрешаем отправку почты с доверенных сетей
Проверяем текущий список сетей:
sudo su -l zimbra -c "zmprov gs zimbra.domain.ru zimbraMtaMyNetworks"
Изменить список:
sudo su -l zimbra -c "zmprov ms zimbra.domain.ru zimbraMtaMyNetworks '127.0.0.0/8 192.168.9.10/32 192.168.10.160/32 192.168.10.113/32'"
DoSFilter
Управление механизмом DosFilter https://wiki.zimbra.com/wiki/DoSFilter
Параметры блокировки:
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
| zimbraInvalidLoginFilterDelayInMinBetwnReqBeforeReinstating | 15 | Длительность блокировки IP в минутах |
| zimbraInvalidLoginFilterMaxFailedLogin | 10 | Количество ошибочных входов перед блокировкой IP |
| zimbraInvalidLoginFilterReinstateIpTaskIntervalInMin | 5 | Интервал в минутах для подсчёта ошибочных входов |
Белый список IP адресов
Посмотреть текущий список:
sudo su -l zimbra -c "zmprov gcf zimbraHttpThrottleSafeIPs"
Создать список IP адресов:
sudo su -l zimbra -c "zmprov mcf zimbraHttpThrottleSafeIPs 10.0.0.0/16 zimbraHttpThrottleSafeIPs 10.1.0.0/16"
Добавить IP в существующий список:
sudo su -l zimbra -c "zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.10.250/32"
Graylisting / cbpolicyd
http://itzx.ru/zimbra/install-policyd-with-webui - Установка плагина Policyd с web-интерфейсом в Zimbra
http://itzx.ru/zimbra/howto-greylisting-in-policyd-with-webui - Настройка серых списков (Greylisting) в Zimbra при помощи Policyd
https://wiki.zimbra.com/wiki/How-to_for_cbpolicyd
Чёрные и белые списки
Добавляем domain.com в чёрный список. В файле /opt/zimbra/conf/amavisd.conf.in после
{ # a hash-type lookup table (associative array)
вписываем в конце блока «# soft-blacklisting (positive score)»:
'domain.com' => -10.0,
и перегружаем amavis:
sudo su -l zimbra -c "zmamavisdctl stop && zmamavisdctl start"
http://hidx.wordpress.com/2010/05/14/чёрные-и-белые-списки-в-zimbra/
Антивирус
Разрешаем зашифрованные архивы во вложениях
В панели администрирования: Настройка → Глобальные настройки → AS/AV → Настройки антивируса - снимаем галочку с «Блокировать зашифрованные архивы»
или на сервере в /opt/zimbra/conf/clamd.conf.in меняем строчку:
%%uncomment VAR:zimbraVirusBlockEncryptedArchive%%ArchiveBlockEncrypted yes
на:
%%comment VAR:zimbraVirusBlockEncryptedArchive%%ArchiveBlockEncrypted yes
Резервное копирование
Для копирования писем на определенный ящик, создаём /opt/zimbra/postfix/conf/bcc_maps:
/^(?!all\@|admin\@|noreply\@|root\@).*domain.(ru|com)$/ backup@domain.ru
В файле /opt/zimbra/conf/zmconfigd.cf ищем первую строчку (должна быть в конце секции SECTION mta DEPENDS amavis):
RESTART mta
и перед этой строкой вставляем строки:
POSTCONF recipient_bcc_maps pcre:/opt/zimbra/postfix/conf/bcc_maps POSTCONF sender_bcc_maps pcre:/opt/zimbra/postfix/conf/bcc_maps
и перегружаем MTA:
sudo su -l zimbra -c "zmmtactl restart"
Для проверки, в конце файла /opt/zimbra/postfix/conf/main.cf будут строки:
sender_bcc_maps = pcre:/opt/zimbra/postfix/conf/bcc_maps recipient_bcc_maps = pcre:/opt/zimbra/postfix/conf/bcc_maps
Настройка уведомлений мониторинга диска
Для изменений значений команду zmlocalconfig добавляем опцию -e.
Текущий лимит для уведомлений Warning и Critical (по умолчанию 85% и 90%):
sudo su -l zimbra -c "zmlocalconfig zmdisklog_warn_threshold" sudo su -l zimbra -c "zmlocalconfig zmdisklog_critical_threshold"
От кого отправляется уведомление, поле From:
sudo su -l zimbra -c "zmlocalconfig smtp_source"
Кому отправляется, поле To:
sudo su -l zimbra -c "zmlocalconfig smtp_destination"
Интервал уведомлений (по умолчанию 600 секунд):
sudo su -l zimbra -c "zmlocalconfig zmstat_disk_interval"
Пример для изменения настроек лимита и интервала:
sudo su -l zimbra -c "zmlocalconfig -e zmdisklog_warn_threshold=90" sudo su -l zimbra -c "zmlocalconfig -e zmdisklog_critical_threshold=98" sudo su -l zimbra -c "zmlocalconfig -e zmstat_disk_interval=3600"
после изменения настроек перегружаем MTA:
sudo su -l zimbra -c "zmmtactl restart"
https://wiki.zimbra.com/wiki/Setting_Thresholds_for_Disk_Monitoring
Уведомления о входящей почте
Добавляем конфигурацию в rsyslog /etc/rsyslog.d/61-zimbra_jabber.conf:
$template zimbra,"%msg%" :syslogtag,contains,"amavis" ^/zimbra/tools/sendxmpp.pl;zimbra:
Добавляем в /etc/sudoers:
syslog ALL=NOPASSWD: /opt/zimbra/bin/zmmailbox, /opt/zimbra/common/sbin/postcat
Добавляем скрипт по отправке /zimbra/tools/sendxmpp.pl должны быть установлены perl модули объявленные в скрипте.
Проблемы
Исправление прав доступа
Команда для исправления прав в расширенном режиме (исправляет все файлы):
sudo /opt/zimbra/libexec/zmfixperms -extended
https://wiki.zimbra.com/wiki/Fix_the_Zimbra_Collaboration_Permissions
Ошибка сети
У пользователей при авторизации появляется сообщение «ошибка сети».
В /opt/zimbra/log/mailbox.log регистрируется: «Access to IP XXXXXX suspended, for repeated failed login.»
При этом блокируется IP адрес пользователя.
Для снятия блокировки необходимо подождать 15 мин (по умолчанию) или выполнить:
sudo su -l zimbra -c "zmmailboxdctl restart"
postqueue: fatal: Connect to the Postfix showq service: Permission denied
В /opt/zimbra/log/mailbox.log регистрируется: «postqueue: fatal: Connect to the Postfix showq service: Permission denied»
Исправление:
sudo adduser zimbra postdrop sudo su -l zimbra -c "zmcontrol restart"
http://forums.zimbra.org/viewtopic.php?f=13&t=59951&start=10&sid=76fcf22b39d7fe02d68c079d45906467
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1518, <DATA> line 755.
Ошибки при обновлении (8.7.x,…):
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1518, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1561, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1690, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1731, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1740, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1749, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1758, <DATA> line 755.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE zimbra_home}/ at /opt/zimbra/libexec/zmupgrade.pm line 1767, <DATA> line 755.
Для решения пред запуском обновления (./install.sh) в файле ./util/utilfunc.sh вставляем строчку в функцию «restoreExistingConfig» после 'echo «done»':
sed '/zimbra_home.*;$/s/\${zimbra_home}/\$\\{zimbra_home\\}/g' -i /opt/zimbra/libexec/zmupgrade.pm
должно получиться:
echo "done" sed '/zimbra_home.*;$/s/\${zimbra_home}/\$\\{zimbra_home\\}/g' -i /opt/zimbra/libexec/zmupgrade.pm fi
Backup / Restore
Если zimbra восстанавливается на новый сервер, установить можно с ключем ./install.sh -s без конфигурирования.
Порядок горячего резервного копирования:
- Письма rsync
- Конфигурация
- LDAP
- MySQL
- Письма rsync
Порядок восстановления:
- Установка zimbra (если новый сервер)
- Конфигурация
- LDAP
- MySQL
- Письма
Конфигурация
Бэкап:
tar czf /tmp/zimbraconf.tgz /opt/zimbra/conf/ca /opt/zimbra/conf/nginx/includes /opt/zimbra/conf/nginx/resolvers.conf \ /opt/zimbra/conf/sa /opt/zimbra/conf/localconfig.xml /opt/zimbra/conf/my.cnf /opt/zimbra/conf/*.crt /opt/zimbra/conf/*.key \ /opt/zimbra/conf/dhparam.pem /opt/zimbra/mailboxd/etc/keystore
Восстановление:
sudo tar xzf /tmp/zimbraconf.tgz -C /
LDAP
Бэкап:
sudo su -l zimbra -c "/opt/zimbra/libexec/zmslapcat /tmp" sudo su -l zimbra -c "/opt/zimbra/libexec/zmslapcat -c /tmp"
Восстановление:
sudo su -l zimbra -c "ldap stop" sudo mv /opt/zimbra/data/ldap/mdb /opt/zimbra/data/ldap/mdb.bak sudo su -l zimbra -c "mkdir -p /opt/zimbra/data/ldap/mdb/db" sudo mv /opt/zimbra/data/ldap/config /opt/zimbra/data/ldap/config.bak sudo su -l zimbra -c "mkdir /opt/zimbra/data/ldap/config" sudo su -l zimbra -c "/opt/zimbra/libexec/zmslapadd -c /tmp/ldap-config.bak" sudo su -l zimbra -c "/opt/zimbra/libexec/zmslapadd /tmp/ldap.bak"
MySQL
Если не используются бинарные логи:
Бэкап:
sudo /opt/zimbra/common/bin/mysqldump --user=root --password=`sudo /opt/zimbra/bin/zmlocalconfig -s | grep ^mysql_root_password | awk -F' = ' '{print $2}'` --socket=`sudo /opt/zimbra/bin/zmlocalconfig -s | grep ^mysql_socket | awk -F' = ' '{print $2}'` --all-databases --single-transaction --flush-logs > /tmp/dump.sql
Восстановление:
Если не проводилась первоначальная настройка zimbra и не инициализирован mysql:
/opt/zimbra/common/share/mysql/scripts/mysql_install_db --datadir=/opt/zimbra/db/data --basedir=/opt/zimbra/common --user=zimbra
Запускаем mysql и заливаем dump баз:
sudo su -l zimbra -c "/bin/sh /opt/zimbra/common/bin/mysqld_safe --defaults-file=/opt/zimbra/conf/my.cnf --external-locking --log-error=/opt/zimbra/log/mysql_error.log --malloc-lib=/opt/zimbra/common/lib/libtcmalloc_minimal.so --ledir=/opt/zimbra/common/sbin &" sudo /opt/zimbra/common/bin/mysql -S `sudo /opt/zimbra/bin/zmlocalconfig -s | grep ^mysql_socket | awk -F' = ' '{print $2}'` < /tmp/dump.sql sudo su -l zimbra -c "killall mysqld"
Если mysql запущени и работает с устаревшими базами:
/opt/zimbra/common/bin/mysql -S `sudo /opt/zimbra/bin/zmlocalconfig -s | grep ^mysql_socket | awk -F' = ' '{print $2}'` -p`sudo /opt/zimbra/bin/zmlocalconfig -s | grep ^mysql_root_password | awk -F' = ' '{print $2}'` < /tmp/dump.sql
Письма
rsync
Пример для сервера /etc/rsyncd.conf (клиент 192.168.9.14):
uid = nobody gid = nogroup max connections = 10 read only = yes list = yes use chroot = yes [store] path = /opt/zimbra/store comment = Zimbra store uid = zimbra gid = zimbra hosts allow = 192.168.9.14 hosts deny = *
Пример для клиента (сервер 192.168.9.10):
rsync -zavP --size-only --delete 192.168.9.10:/opt/zimbra/store/ store/ >/tmp/rsync.log
tar
Бэкап:
sudo tar czf /tmp/store.tgz /opt/zimbra/store
Восстановление:
sudo tar xzf /tmp/store.tgz -C /
Ссылки
Аналоги
Mailcow - https://mailcow.email
Carbonio - https://zextras.com/carbonio-community-edition
Poste.io - https://poste.io
iRedMail - https://iredmail.org
