zimbra
По умолчанию zimbra устанавливается в /opt, поэтому следует это учитывает при выделении места под partitions.
Качаем установку, разархивируем и запускаем ./install.sh. Установщик начнет задавать вопросы. Важно,если требуется изменить домен, по умолчанию устанавливается из имени машины,если этого не сделать,прийдется переустанавливать. В частном случае можно не устанавливать snmp для уменьшения нагрузки на сервер. На начало установки не обязательно иметь запись в DNS для почтового сервера.Установщик просто выдаст предупреждение. Также в ходе утсановки требуется установить пароль админа,в меню пункт будет отображен ***(***-означают,что этот пункт требует конфигурации) нажимаем номер пункта(3) ,внизу будут подсказки как вернуться в главное меню и сохранить изменения.После завершения инсталяции Веб интерфейс админа бует доступен по адресу:
Веб интерфейс пользователя по адресу:
Также требуется проверить запустились ли все службы. Заходим под пользвателем zimbra:
В идеале все службы должны быть running. Есть второстепенные службы, без которых zimbra будет работать,например memcached. Если служба в состоянии stop, то можно ее запустить по имени(имена сервисов обычно указываются в выводе команды zmcontrol status, кроме,например stats,эта служба запускается zmstatctl.
Также можно запустить/остановить/перезапусить все службы одной коммандой:
Если какая-то служба не запускается, прежде всего проверяем не занят ли порт,если занят,то убиваем не нужный процесс(особенно касается postfix и sendmail,они конфликтуют с zimbra,если не были удалены перед установкой)
Если не запускается mysql.server, а в логах ошибка access denied. Выполняем следующее:
или сбрасываем рутовый пароль коммандой:
zmmypasswd --root newrootpass
Update the zimbra mysql password:
zmmypasswd newpass Пользователи и пароли хранятся в каталоге ldap. Сбросить пароль пользователя в ldap:
Update the ldap root password.
$ zmldappasswd --root newpass
Update the zimbra ldap password.
$ zmldappasswd newpass В zimbra 8 требовалось указать также хост,т.е. ldappasswd -s admin -h mail.example.com Последняя комманда не проверена на практике,т.к. был конфликт доменных имен Если был утерян админский пароль,можно создать учетку еще одного админа из cli: zmprov ca testadmin@domain.com test123 zimbraIsAdminAccount TRUE Повысить права до админа: zmprov ma futur-admin@domain.com zimbraIsAdminAccount TRUE Сбросить пароль: zmprov sp testadmin@domain.com NEW_PASSWORD Получить список всех ящиков можно коммандой: zmprov -lgaa Получить список пользователей с статусом учетной записи и последним входом можно командой: zmaccts Перенос почты старого пользователя нового,если учетку нельзя просто переименовать делается коммандами: zmmailbox -z -m olduser@domain.com getRestURL “//?fmt=tgz” > /tmp/v.tar.gz zmmailbox -z -m newuser@domain.com postRestURL “//?fmt=tgz&resolve=reset” /tmp/v.tar.gz Миграцию между двумя серверами zimbra можно производить утилитой zmztozmig Редактируем конфиг /opt/zimbra/conf/zmztozmig.conf Указываем требуемые параметры. потом из консоли запускаем: /opt/zimbra/libexec/zmztozmig –f /opt/zimbra/conf/zmztozmig.conf Нужно иметь ввиду,что аккаунты на destination server уже должны быть созданы. Пароли также не переносятся с source сервера. Подробнее здесь: http://wiki.zimbra.com/wiki/Zimbra_to_Zimbra_Migration Сертификаты для zimbra следует ложить в /opt/zimbra/ssl/zimbra/commercial c такими именами: commercial_ca.crt commercial.crt commercial.key Проверка сертификата: /opt/zimbra/bin/zmcertmgr verifycrt comm commercial.key commercial.crt commercial_ca.crt Установка сертификата: /opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt Проверка то ли установилось: /opt/zimbra/bin/zmcertmgr viewdeployedcrt переименовать домен: zmprov -l renameDomain currentDomain.com newDomain.com Добавить общую внешнюю адресную книгу: zmprov gds galsync.r9atilpu@domain.com zmmailbox -z -m galsync.xsad2wph5s@domain.com createFolder --view contact /_addressbook zmgsautil addDataSource -a galsync.xsad2wph5s@domain.com -n addressbook --domain domain.com -t ldap -f _addressbook -p 1d zmgsautil forceSync -a galsync@domain.com -n addressbook Добавить адресную книгу всем пользователям: #!/bin/bash zmprov -l gaa| while read USER; do zmmailbox -z -m $USER cm --view contact -F# "/Адресная книга предприятия" galsync@yourdomain.com /_zimbra; done Только исключить пользователя galsync из списка
note.rajven.ru
Что-то с памятью моей стало, memtest ошибок не находит, а информация пропадает…
Zimbra – FAQ
Опубликовал(а): Roman Dmitriev в: 2012/06/02
Нагло скопипащено с http://www.ossportal.ru/technologies/zimbra
Но, поскольку сайты частенько исчезают, я лучше оставлю себе на память. Итак:
Небольшой список часто возникающих вопросов в ходе администрирования Zimbra:
1. Сегодня утром я не могу зайти под акаунтом администратора в свой любимый web-интерфейс Zimbra, что мне делать?
Если веб-интерфейс Zimbra доступен из внешней сети то скорее всего, к нему пытались подобрать пароль и он автоматически заблокировался.
Открываем консоль Zimbra, логинимся под рутом, а дальше заходим под пользователем zimbra:
su – zimbra
Выполняем следующую команду:
zmprov ma zimbraAccountStatus active
Акаунт разблокирован, проверяем web-интерфейс.
2. Я настроил проверку подлинности пользователей на Active Directory. Но моя новая учетная запись в Zimbra, не совпадает с учетной записью в Active Directory, что мне делать?
Пример: я создал в AD учётку VASYA@YOURDOMAIN.LOCAL. А человечку нужен ящик PUPKIN@YOURDOMAIN.COM. В этом случае необходимо в свойствах новой учетной записи Zimbra правильно заполнить поле «Внешняя учетная запись LDAP для проверки подлинности».
При этом используется синтаксис вида:
cn=,ou=,dc=,dc=
Между запятыми пробелов нет, скобок <> нет, русские символы допустимы. Пример:
cn=Пупкин Всемогущий,ou=USERS,dc=YOURDOMAIN,dc=COM
Теперь для входа в свой почтовый ящик и для авторизации на сервере(smtp) необходимо набирать:
– имя пользователя pupkin
– пароль от учетной записи в AD vasya@yourdomain.local
3. Как мне изменить пароль учетной записи администратора, если в веб-интерфейсе эта опция заблокирована?
Если мы настроили проверку подлинности на внешний сервер, то скорее всего поция смены пароля для администраторского аккаунта будет не доступна. Подключаемся к нашему серверу и выполняем от рута:
su – zimbra
zmprov sp
Для того чтобы узнать какие вообще на сервере есть учетные записи администраторов воспользуемся командой:
su – zimbra
zmprov gaaa
4. На мою административную учетную запись(admin@youdomain.com) периодически приходит сообщение, содержащее строки вида:
mysql.general_log
Error : You can’t use locks with log tables.
mysql.slow_log
Error : You can’t use locks with log tables.
Это баг MYSQL который можно успешно игнорировать. Его описание находится здесь: http://bugs.mysql.com/bug.php?id=30487
5. Как мне узнать пароли, которые используют сервисы Zimbra? (ldap,mysql,postfix)
Команда zmlocalconfig отвечает за конфигурацию Zimbra – позволяет просматривать и настраивать конфигурацию локального сервера. От имени пользователя Zimbra наберем:
zmlocalconfig –s | grep zimbra_ldap_password
zmlocalconfig –s | grep ldap_replication_password
zmlocalconfig -s | grep ldap_nginx_password
zmlocalconfig -s | grep ldap_postfix_password
zmlocalconfig -s | grep ldap_root_password
zmlocalconfig -s | grep mysql | grep password
zmlocalconfig -s | grep keystore | grep password
Для смены паролей используется команда zmldappasswd.
6. Мне нужно перезагрузить только сервисы Zimbra, но не весь сервер целиком, как это сделать?
От имени пользователя zimbra ввести следующую команду:
zmcontrol restart
Будут перезапущены все сервисы Zimbra. При помощи этой команды так же можно просмотреть статус запущенных сервисов:
zmcontrol status
НО данная команда показывает нам состояние только основных сервисов Zimbra:
-spell
-mailbox
-logger
-mta
-stats
-antispam
-zmconfigd
-ldap
-antivirus
-snmp
Для управления же отдельными сервисами, следует использовать следующие команды:
zmamavisdctl – запускает, перезагружает, останавливает и показывает статус AMAVIS-D NEW
zmantispamctl – запускает, перезагружает, останавливает и показывает статус Анти-Спамового сервиса
zmantivirusctl – запускает, перезагружает, останавливает и показывает статус Антивируса
zmapachectl – запускает, перезагружает, останавливает и показывает статус Apache сервиса (для spell check – проверки орфографии?)
zmauditswatchctl – запускает, перезагружает, останавливает и показывает статус Аудит сервиса
zmclamdctl – запускает, перезагружает, останавливает и показывает статус Clam AV сервиса
zmloggerctl – запускает, перезагружает, останавливает и показывает статус сервиса логирования
zmlogswatchctl – запускает, перезагружает, останавливает и показывает статус мониторинга сервера
zmmailboxdctl – запускает, перезагружает, останавливает и показывает статус компонентов почтовых ящиков (mailbox,mysql,convert)
zmmtaconfigctl – запускает, перезагружает, останавливает и показывает статус сервиса конфигурации MTA
zmmtactl – запускает, перезагружает, останавливает и показывает статус самого MTA
zmperditionctl – запускает, перезагружает, останавливает и показывает статус perdition IMAP proxy
zmproxyctl – запускает, перезагружает, останавливает и показывает статус IMAP proxy
zmsaslauthdctl – запускает, перезагружает, останавливает и показывает статус saslauthd сервиса (аутентификации)
zmspellctl – запускает, перезагружает, останавливает и показывает статус сервиса spell check (проверки орфографии)
zmstatctl – запускает, перезагружает, останавливает и показывает статус сбора статистики для Zimbra
zmstorectl – запускает, перезагружает, останавливает и показывает статус сервиса хранилища(store) Zimbra
zmswatchctl – запускает, перезагружает, останавливает и показывает статус процессов Swatch, котрый используется в мониторинге.
7. Нужно чтобы web-интерфейс Zimbra работал на http/https/обоих протоколах, как мне это сделать?
Zimbra поддерживает следующие конфигурации:
Для просмотра почты используется только протокол http. На панель управления Zimbra никак не влияет.
zmtlsctl https
Для просмотра почты и работы с панелью управления Zimbra используется только протокол https://.
zmtlsctl both
Для просмотра почты используются оба протокола (http://,https://). На время сессии пользователь будет привязан к этому протоколу.
zmtlsctl mixed
При обращении на http:// пользователь автоматически редиректится на https://, но только для аутентификации в Zimbra, после принятия логина/пароля сессия возвращается обратно в режим http://. Если пользователь обращается сразу на https://, то вся сессия будет проходить в https://.
zmtlsctl redirect
Аналогично режиму mixed, за тем исключением, что при обращении на http:// идет редирект на https:// и вся дальнейшая сессия так же будет проходить в режиме https://.
Все команды запускаются от пользователя zimbra. После изменения настроек конфигурации веб-сервера необходимо перезапустить Zimbra командой:
zmcontrol restart
8. Как мне создать еще один администраторский аккаунт в Zimbra?
Либо через меню web-интерфейса – создать новую учетную запись, проставив там галочку “Глобальный администратор”. Либо воспользовавшись консолью и введя следующую команду от пользователя zimbra:
zmprov ca testadmin@domain.com test123 zimbraIsAdminAccount TRUE
Будет создан аккаунт testadmin@admin.com c паролем test123
Так же мы можем повысить уже существующий аккаунт до администраторского следующим способом:
zmprov ma futur-admin@domain.com zimbraIsAdminAccount TRUE
Zimbra – основные команды в консоли
Статистику по размерам почтовых ящиков можно смотреть через веб-интерфейс. Но это не всегда удобно, а иногда и невозможно.
zmprov gqu имя_сервера|sort -k 3 -n|column -t gqu -- GetQuoteUsage -k 3 -- сортировать по третьему столбцу -n -- сортировать числа как числа, чтобы 20 шло после 19, а не после 10 -t -- подобрать подходящие для красивой таблички ширины столбцов
Если в логах сообщения со словами NO_SUCH_BLOB, то это значит, что произошло рассогласование между метаданными ящика и физическими файлами с письмами. Т.е. в метаданных есть ссылки на письма, а по факту файлов уже нет. Устраняется путем перестроения метаданных на основе существующих файлов с письмами в ящике. Для того, что бы найти ящики, у которых проблема:
grep -B2 NO_SUCH_BLOB /opt/zimbra/log/mailbox.lo* |grep mailbox= |sed -r 's/.*mailbox=([0-9]*).*$/\1/' |sort -u
zmblobchk --mailboxes 6919 --export-dir /tmp --missing-blob-delete-item start|status|stop zmblobchk --mailboxes 4600 --export-dir /tmp/3 --missing-blob-delete-item --unexpected-blob-list /tmp/3/blob-list start
Работа с аккаунтом galsync
Информация об источниках данных (getDataSources)
zmprov gds galsync@domain.com
Удалить аккаунт galsync
zmgsautil deleteAccount -a galsync@domain.com
Узнать аккаунт (user account) по номеру ящика (MailboxId)
su - zimbra mysql use zimbra; select comment from mailbox where comment | +----------------------+ | user@domain.com | +----------------------+ 1 row in set (0.00 sec)
Обновление правил spamassasin
zimbramon /bin/sa-update
Очистка ящиков от удаленных писем – Зимбра производит операцию purge_mailbox только для тех ящиков, которые находятся в момент выполнения операции в памяти (т.е. к ним кто то подключен). По этому для редко используемых ящиков очистка не срабатывает. В ручном режиме:
#Получаем ZimbraID ящика zmprov -l ga user@domain.com zimbraId # name letterbackup@propertyminder.com # zimbraId: 1ab5cf73-b393-4ae0-9723-05ee92131980 #Загружаем ящик в память выполнив пустую операцию zmmailbox -z -m user@domain.com noOp #Очищаем ящик zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980
Можно пройтись по всем ящикам вот таким скриптом purge-all.sh
#!/bin/bash # purge-all.sh # run as user zimbra # $ ./purge-all.sh # or crontab monthly/weekly # 0 1 1 * * /usr/local/bin/purge-all.sh # config TMPDIR="/var/tmp" LOGDIR="/opt/zimbra/log" SLEEP=10 if [ "$USER" != "zimbra" ]; then echo "Error: Must be run as user zimbra" exit 1 fi DATE="`date '+%Y%m%d-%H%M%S'`" exec >> $LOGDIR/purgeall-$DATE.log echo "`date`: START $0" zmprov -l gaa -s `zmhostname` > $TMPDIR/purgeall-list.out for MYUSER in `cat $TMPDIR/purgeall-list.out` do echo "`date`: Starting user: $MYUSER" ACCOUNT_ID="`zmprov -l ga $MYUSER zimbraId | awk '/^zimbraId:/ '`" if [ -n "$ACCOUNT_ID" ]; then zmmailbox -z -m $MYUSER noOp && \ zmsoap -v -z PurgeMessagesRequest/mbox @id=$ACCOUNT_ID if [ $? = 0 ]; then echo "`date`: Finished user: $MYUSER" else echo "`date`: Error: $MYUSER" fi fi sleep $SLEEP done echo "`date`: END $0" exit 0
Отсылка уведомлений админу о свободном месте на дисках
zmlocalconfig zmdisklog_warn_threshold zmlocalconfig zmdisklog_critical_threshold Изменим дефолтные значения на 90 и 98% соответственно zmlocalconfig -e zmdisklog_warn_threshold=90 zmlocalconfig -e zmdisklog_critical_threshold=98
С какого адреса отправляются уведомления
zmlocalconfig smtp_source Изменим адрес отправителя zmlocalconfig -e smtp_source=mailsrv@domain.ru
На какой адрес отправляются уведомления
zmlocalconfig smtp_destination Изменим адрес получателя zmlocalconfig -e smtp_destination=support@domain.ru
Интервал отправки уведомлений (по дефолту – 600сек., максимально 86400сек.)
zmlocalconfig -e zmstat_disk_interval=3600
Для применения изменений необходимо перезапустить службу
zmstatctl stop zmstatctl start
Отчет daily mail report в zimbra
Для просмотра статистики в консоли /opt/zimbra/libexec/zmdailyreport Для получения письма на почту админа /opt/zimbra/libexec/zmdailyreport -m
Экспериментальный блог
Когда-то создал ради пробы. Потом решил так и оставить.
Официальная возможность получить лицензионный софт бесплатно. Это не реклама! |
понедельник, 15 июля 2019 г.
MySQL в Zimbra: пароль доступа и некоторые параметры
Решил поглубже поковыряться в БД зимбры. И понял, что не знаю пароля. Решение:
su - zimbra zmlocalconfig -s | grep mysql | grep password
На выходе получаем что-то вроде:
mysql_logger_root_password = AWHZ60JYaBw8_hVkA9NDVGh0irmp7xVz mysql_root_password = lkAd7vkYI.Q_VeWt8uyL9kj0 zimbra_logger_mysql_password = 2iiyAVj3GeH0akkCe6M1o_HvY zimbra_mysql_password = uMv4EsNqPZdK5htERx97VY5m
и видим пароли как для пользователя root, так и для пользователя zimbra. ЧТД.
В этой БД есть разные параметры, в т.ч. и различные даты/времена. Как выяснилось, хранятся они в стандартном юниксовом формате «число секунд с начала эпохи». Не ломая голову, просто преобразуем это длинное целое в человекочитаемый вид:
date -d @дата_в_формате_unix
Теперь о хранении данных о пользователях. Все они хранятся в БД zimbra в таблице mailbox. Емайл почему-то хранится в поле comment. а номер почтового ящика — в поле id. Номер п/я — это составное число вида
где GG — номер группы (БД mboxgroupGG), от 1 до 100. При формировании id пользователя, находящегося в группе с номером <10 к номеру группы дописывается ведущий ноль, например для сотой группы gg="00"
U — номер пользователя в группе, начиная с нуля, причем если U=0, то (ведущие нули в базе, понятное дело, не хранятся), при U=1 например, для сотой группы id используется в пути к каталогам хранения данных и индексов почтового ящика. Например, для 3-го пользователя из 94-ой группы путь будет:
10>
/opt/zimbra/store/0/394/
Однако, если пользователь еще не обращался к своему почтовому ящику, то каталоги с его id могут отсутствовать. Например, недавно коллега сделал учетку для нового кладовщика, но не настроил ее комп. Пользователь с уже есть в группе gg, а вот пути /opt/zimbra/store/0/ugg/ еще нет.