zimbra block incoming users and domains

Чтобы заблокировать входящие с определенных адресов и/или доменов нужно в консоли сервера:

1. под root’ом создать файл /opt/zimbra/common/conf/postfix_reject_sender и перечислить в нем заблокированные адреса и/или домены. Например

vi /opt/zimbra/common/conf/postfix_reject_sender
user@domain.com REJECT
domainX.com REJECT

2. Под zimbra user’ом выполнить команду

zmprov ms 'yourzimbraservername' +zimbraMtaSmtpdSenderRestrictions "check_sender_access lmdb:/opt/zimbra/common/conf/postfix_reject_sender"

3. Далее нужно postmap’нуть внесенные изменения

/opt/zimbra/common/sbin/postmap /opt/zimbra/common/conf/postfix_reject_sender

4. Подождать порядка минуты, пока зимбра воспримет изменения или перезапустить сервис чтобы ускорить этот процесс.

zmmtactl restart

Rewriting configuration files...done.
Stopping saslauthd...done.
Starting saslauthd...done.
/postfix-script: refreshing the Postfix mail system

теперь в логах должны появится записи типа таких

#tail -f /var/log/zimbra.log

Sep 7 14:19:57 mail postfix/postscreen[13755]: CONNECT from [74.125.82.45]:32831 to [178.62.48.7]:25
Sep 7 14:20:01 mail zimbramon[15143]: 15143:info: 2017-09-07 14:20:01, QUEUE: 0 0
Sep 7 14:20:03 mail postfix/postscreen[13755]: PASS NEW [74.125.82.45]:32831
Sep 7 14:20:03 mail postfix/smtpd[13756]: connect from mail-wm0-f45.google.com[74.125.82.45]
Sep 7 14:20:03 mail postfix/smtpd[13756]: Anonymous TLS connection established from mail-wm0-f45.google.com[74.125.82.45]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Sep 7 14:20:03 mail postfix/smtpd[13756]: NOQUEUE: filter: RCPT from mail-wm0-f45.google.com[74.125.82.45]: <user1@gmail.com>: Sender address triggers FILTER smtp-amavis:[127.0.0.1]:10026; from=<user1@gmail.com> to=<jdelacruz@zimbra.io> proto=ESMTP helo=<mail-wm0-f45.google.com>
Sep 7 14:20:03 mail postfix/smtpd[13756]: NOQUEUE: reject: RCPT from mail-wm0-f45.google.com[74.125.82.45]: 554 5.7.1 <user1@gmail.com>: Sender address rejected: Access denied; from=<user1@gmail.com> to=<jdelacruz@zimbra.io> proto=ESMTP helo=<mail-wm0-f45.google.com>
Sep 7 14:20:03 mail postfix/smtpd[13756]: disconnect from mail-wm0-f45.google.com[74.125.82.45] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 quit=1 commands=5/7

 

zimbra mailbox backup

Когда возникает потребность очистить почтовик от старых учетных записей. Чтобы их почта не исчезла, но и не занимала места — ее нужно переложить в архив. Для этого необходимо использовать mailbox backup.

Для этого нужно.

1. залогинится на сервер по ssh как root
2. открыть в браузере админку зимбры, выбрать цель для переноса в архив.
3. сформировать команду по примеру

 /opt/zimbra/bin/zmmailbox -z -m asinica@grom.ru getRestURL //?fmt=tgz > /tmp/asinica_grom.ru.tgz

результат выполнения команды — файл /tmp/asinica_grom.ru.tgz

4. перенести файл в asinica_grom.ru.tgz  в архив.

5. удалить его с почтовика

rm -f /tmp/asinica_grom.ru.tgz

6. удалить учетку из админки.

 

Чтобы сделать рестор mailbox’a нужно положить файлик из архива в /tmp, вручную создать юзера с соответствующим емаил и выполнить следующую команду.

/opt/zimbra/bin/zmmailbox -z -m asinica@grom.ru postRestURL "//?fmt=tgz&resolve=skip" /tmp/asinica_grom.ru.tgz

zimbra 8.8 Let’s Encrypt cert

После обновления корпоративного почтовика с удивлением обнаружил изменения в процедуре обновления сертификата от letsencrypt. А именно

/opt/zimbra/bin/zmcertmgr verifycrt comm .....

запущенная под пользователем zimbra Возвращает ошибку о невозможности добраться до файлов. Оказалось что теперь необходимо под root копировать файлы серта и назначать им права. Теперь процедура обновления серта выглядит так:

#as zimbra user

zmproxyctl stop 
zmmailboxdctl stop

#as root - и опустить файрвол

cd /root/letsencrypt/
./letsencrypt-auto certonly --standalone

#файлы серта ложатся в /etc/letsencrypt/live/
#их необходимо скопировать и задать владельца

mkdir /opt/zimbra/ssl/letsencrypt
cp /etc/letsencrypt/live/domain.example.com/* /opt/zimbra/ssl/letsencrypt/
chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/*
ls -la /opt/zimbra/ssl/letsencrypt/

As zimbra user
cd /opt/zimbra/ssl/letsencrypt/
/opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
#проверка должна пройти успешно

#далее нужно забекапить старые серты (на всякий случай)
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

#далее собственно deploy
cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

/opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem

Потом надо запустить все что остановлено, или перезапустить сервак.

источник

zimbra 8.6 Let’s Encrypt cert

zmproxyctl stop
zmmailboxdctl stop

On RedHat/CentOS 6 you will need to enable the EPEL repository before install.

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

yum repolist

нужно чтобы была строка похожая на

epel Extra Packages for Enterprise Linux 5 - i386 4,320+1,408

далее

yum install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

./letsencrypt-auto certonly --standalone

Последняя команда — собственно запуск скрипта. Скрипт задаст два вопроса.

email и домен. ответы можно положить в файл и запускать с другим ключем из скрипта.  Скорей всего начнет ругатся на 443 и 80 порты. нужно временно отключить файрвол

 service iptables stop
//снова запускаем скрипт и радуемся
./letsencrypt-auto certonly --standalone
сd /etc/letsencrypt/live/grz.grom.ru
ll

и наблюдаем файлы сертификата. осталось внедрить их в систему.

# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem


выдаст ошибку

XXXXX ERROR: Invalid Certificate: cert.pem: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

error 2 at 1 depth lookup:unable to get issuer certificate
 

вставляю в chain.pem серт по ссылке
https://www.identrust.com/certificates/trustid/root-download-x3.html
добавляю в него
——END CERTIFICATE——
——BEGIN CERTIFICATE——

проверяю


# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
** Verifying cert.pem against privkey.pem
Certificate (cert.pem) and private key (privkey.pem) match.
Valid Certificate: cert.pem: OK

вот теперь все пучком — остался deploy

но сначала backup ssl

cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

copy private key

 cp /etc/letsencrypt/live/grz.grom.ru/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
root@zimbra86:/etc/letsencrypt/live/zimbra86.zimbra.io
 # /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem
 ** Verifying cert.pem against /opt/zimbra/ssl/zimbra/commercial/commercial.key
 Certificate (cert.pem) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
 Valid Certificate: cert.pem: OK
 ** Copying cert.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Appending ca chain chain.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
 ** NOTE: mailboxd must be restarted in order to use the imported certificate.
 ** Saving server config key zimbraSSLCertificate...failed.
 ** Saving server config key zimbraSSLPrivateKey...failed.
 ** Installing mta certificate and key...done.
 ** Installing slapd certificate and key...done.
 ** Installing proxy certificate and key...done.
 ** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
 ** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
 ** Installing CA to /opt/zimbra/conf/ca...done.
zmcontrol restart