Приветствую Вас, Гость
Главная » Статьи » Mail » Zimbra

Zimbra. Некоторые нуансы

0. Используемые порты. Zimbra активно использует различные сетевые порты как для внешних, так и для внутрисистемных подключений. Именно поэтому наиболее оптимальным для нее станет создание так называемого «Белого списка» в правилах брандмауэра. То есть администратор сперва запрещает любые подключения к каким-либо портам на сервере, а затем открывает лишь те, которые необходимы для нормальной работы сервера. И именно на этом этапе администратор сервера Zimbra неизменно сталкивается с вопросом о том, какие порты следует открыть, а какие лучше всего не трогать. Давайте посмотрим, какие порты и для чего использует Zimbra, чтобы вам было проще принимать решение о составлении собственного «белого списка» в брандмауэре.

Для внешних подключений Zimbra может использовать до 12 портов, среди которых:

25 Порт для входящей почты в postfix
80 Порт для незащищенного подключения к веб-клиенту Zimbra
110 Порт для получения почты с удалённого сервера по протоколу POP3
143 Порт для доступа к электронной почте по протоколу IMAP
443 Порт для защищенного подключения к веб-клиенту Zimbra
587 Порт для входящей почты с защитой соединения
993 Порт для защищенного доступа к электронной почте по протоколу IMAP
995 Порт для защищенного получения почты с удалённого сервера по протоколу POP3
5222 Порт для подключения к серверу по протоколу XMPP
5223 Порт для защищенного подключения к серверу по протоколу XMPP
9071 Порт для защищенного подключения к администраторской консоли

Как уже было упомянуто, помимо внешних подключений, в Zimbra Collaboration Suite осуществляется и масса внутренних подключений, которые также происходят на различных портах. Поэтому при включении таких портов в «белый список» стоит следить за тем, чтобы возможность подключения к ним была только у локальных пользователей.

389 Порт для незащищенного подключения к LDAP
636 Порт для защищенного подключения к LDAP
3310 Порт для подключения к антивирусу ClamAV
5269 Порт для общения между серверами, находящимися в одном кластере по протоколу XMPP
7025 Порт для локального обмена почтой по протоколу LMTP
7047 Порт, используемый сервером для конвертирования вложений
7071 Порт для защищенного доступа к администраторской консоли
7072 Порт для обнаружения и аутентификации в nginx
7073 Порт для обнаружения и аутентификации в SASL
7110 Порт для доступа к внутренним службам POP3
7143 Порт для доступа к внутренним службам IMAP
7171 Порт для доступа к демону конфигурации Zimbra zmconfigd
7306 Порт для доступа к MySQL
7780 Порт для доступа к службе проверки правописания
7993 Порт для защищенного доступа к внутренним службам IMAP
7995 Порт для защищенного доступа к внутренним службам POP3
8080 Порт для доступа к внутренним службам HTTP
8443 Порт для доступа к внутренним службам HTTPS
8735 Порт для общения между почтовыми ящиками
8736 Порт для доступа к службе распределенной настройки Zextras
10024 Порт для общения Amavis с Postfix
10025 Порт для общения Amavis с OpenDKIM
10026 Порт для настройки политик Amavis
10028 Порт для общения Amavis с фильтром контента
10029 Порт для доступа к архивам Postfix
10032 Порт для общения Amavis со спам-фильтром SpamAssassin
23232 Порт для доступа к внутренним службам Amavis
23233 Порт для доступа к snmp-responder
11211 Порт для доступа к memcached

Отметим, что если в случае, когда Zimbra работает только на одном сервере, можно обойтись минимальным набором открытых портов. Но если на вашем предприятии Zimbra установлена на несколько серверов, то вам придется открыть 14 портов с номерами 25, 80, 110, 143, 443, 465, 587, 993, 995, 3443, 5222, 5223, 7071, 9071. Такой набор открытых для подключения портов обеспечит нормальное взаимодействие между серверами. При этом администратору Zimbra всегда необходимо помнить, что, к примеру, открытый порт для доступа к LDAP, является серьезной угрозой для информационной безопасности предприятия.

Часть поста: https://habr.com/company/zimbra/blog/427729/

1. Веб-интерфейс, вход. По умолчанию вход через веб-интерфейс по https. Регуляция данного обстоятельства:

zmtlsctl [mode]

где mode = <http, https, both, mixed, redirect>

Однако штатный proxy, который теперь (с версии 8.6, по-моему) обязателен к применению, имеет собственное мнение на этот счёт. Вот его комментарий на команду zmtlsctl redirect в свежеустановленной Zimbre:

Error: When zimbraReverseProxyMailMode (on the proxy server) is https, the only valid settings for zimbraMailMode are both or https.

2. Нет доставки внешней почты. После установки и настройки всего и вся, у меня никак не хотела доставляться внешняя почта, лечится так:

sudo su zimbra
zmlocalconfig -e postfix_lmtp_host_lookup=native
zmprov ms domain.com zimbraMtaLmtpHostLookup native
zmmtactl restart

Источник: http://wiki.zimbra.com/wiki/Incoming_Mail_Problems

3. Веб-интерфейс, "ошибка сети". После увеличения количества пользователей Zimbra появились жалобы, что при входе в веб интерфейс появляется «Ошибка сети». Эта проблема связана с работой встроенного в Zimbra 8.0 и старше метода защиты от DoS

Пользователи начали жаловаться, что периодически при попытке входа возникает «Ошибка сети». Анализ логов выявил следующее сообщение:

2016-04-12 09:22:30,489 INFO [qtp509886383-3765:http://127.0.0.1:80/service/soap/AuthRequest] [] misc - Access to IP 1.2.3.4 suspended, for repeated failed login.

Выяснилось, что это срабатывает встроенная, начиная с версии 8.0 защита от DoS. Настройка осуществляется с помощью нескольких параметров:

    zimbraHttpDosFilterDelayMillis — задержка, которая применяется ко всем запросам выше лимита, прежде чем они будут рассмотрены. В миллисекундах. Возможны варианты в виде значения от -1,0,1 и более. Где -1 — отклонять запросы сразу. 0 — не выставлять задержку, 1 и более — задержка в мс. По-умолчанию -1.
    zimbraHttpDosFilterMaxRequestsPerSec — Лимит количества запросов в секунду. По-умолчснию 30
    zimbraHttpThrottleSafeIPs — белый список IP, с которых запросы не проверяются на их количество.

Решение проблемы кроется в подкручивании этих ручек до комфортных значений и последующего перезапуска mailbox сервиса (zmmailboxdctl restart)

Однако, есть нюансы, если у Вас так называемая «Multi server» кофигурация, то есть несколько mailbox серверов за proxy.

Что бы все это дело работало, необходимо для начала сделать так, что бы mailbox знали о реальных IP, с которых приходят запросы. По-умолчанию в логах отображается IP proxy.
Это, конечно, логично, но пока я обратил внимание на IP адрес запроса в логах чуть крутилку DoS фильтра не сломал…

Для этого проверяю текущее значение параметра zimbraMailTrustedIP:
$ zmprov gcf zimbraMailTrustedIP
Добавляю IP zimbra-proxy
$ zmprov mcf +zimbraMailTrustedIP 10.202.1.31
выполняю на всех mailbox серверах:
$ zmmailboxdctl restart

После этого в логах будут реальные IP и политики DoS будут применяться к ним и все будет работать как задумано

4. Добавление адресной книги руками. Если вы ходите принудительно добавить пользователям GAL книгу, то можно воспользоваться следующим скриптом:

#!/bin/bash

zmprov -l gaa| while read USER; do zmmailbox -z -m $USER cm --view contact -F# "/Адресная книга предприятия" galsync@yourdomain.com /_zimbra; done

где galsync@yourdomain.com аккаунт синхронизации, /_zimbra — имя раcшариваемой адресной книги.

https://habr.com/post/134981/   Комментарий JStingo

5. Защита порта memcached. Особое внимание следует уделить внимание порту 11211, на котором работает memcached. Именно он задействован в популярной разновидности кибератак memcrashd. Fix для standalone-server:

su - zimbra
 /opt/zimbra/bin/zmprov ms `zmhostname` zimbraMemcachedBindAddress 127.0.0.1
 /opt/zimbra/bin/zmprov ms `zmhostname` zimbraMemcachedClientServerList 127.0.0.1

Инструкция здесь: https://wiki.zimbra.com/wiki/Blocking_Memcached_Attack

6. Блок определённого адреса. Заблокировать получение писем от определённого адреса - несложно.
Есть три пути:
1) блокировать в настройках postfix (Zimbra основана на postfix)
2) блокировать в настройках spamassasin (Zimbra использует Spamassasin если включен антиспам)
3) блокировать в настройках конкретного пользователя (создать фильтр, зайдя пользователем в веб-интерфейс)

Путь №1 самый радикальный:
### команды нужно выполнять из пользователя zimbra
su - zimbra

### создадим файл если его нет, или добавим строчку
echo "baduser@domain.com REJECT" >> /opt/zimbra/conf/postfix_reject_sender
postmap /opt/zimbra/conf/postfix_reject_sender

### добавим в настройки Zimbra Postfix проверку smtpd_sender_restrictions
zmprov ms $(hostname) zimbraMtaSmtpdSenderRestrictions "check_sender_access lmdb:/opt/zimbra/conf/postfix_reject_sender"

### можем подождать 1-2 минуты, пока zmconfigd применит настройку, либо перезапустить Postfix
zmmtactl restart

Источник: https://toster.ru/q/556845?utm_source=tm_habrahabr&utm_medium=tm_block&utm_campaign=questions_post

7. Запрет доставки наружу/снаружи

На самом деле способ предложенный forge не сработает... по крайней мере для днс проверки не работало у меня, я вообще не понимаю как в 8.5 и в каком порядке вставляются исключения.
Я предлагаю следующее... как можно заметить, у зимбры практически все правила реджектов проверяются на этапе smtpd_recipient_restrictions, на остальных этапах в основном проверяется домен назначения и прочее проверки, которые практически на 100% не требуют списка исключений. А куда вставляются правила при использовании zmprov mcf +zimbraMtaRestriction 'check_client_access lmdb:/opt/zimbra/conf/postfix_rbl_override вообще не понятно.

Делаем следующее, постараюсь поподробнее, у автора топика следующие правила настроенные через веб морду...

smtpd_recipient_restrictions = reject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname, reject_non_fqdn_sender, reject_unknown_client_hostname, reject_unknown_sender_domain, reject_rbl_client .

reject_non_fqdn_recipient - ни разу не встречал нормальных серверов которые бы отправляли не в  fqdn, не требует исключения.
permit_sasl_authenticated, permit_mynetworks - разрешаем доступ для авторизованных пользователей и доверенных сетей, не требует исключения.
reject_unlisted_recipient - если нет пользователя - то и пиьсмо  для него нам не нужно, не требует списка исключений
reject_invalid_helo_hostname, reject_non_fqdn_sender, reject_unknown_client_hostname, reject_unknown_sender_domain, reject_rbl_client  - в этих правилах необходим список исключений, для исключений rbl и просто неправильно настроенных серваков.
Т.е. надо запихнуть проверку исключений после reject_unlisted_recipient, но до reject_invalid_helo_hostname, чтобы проверки fqdn и проверки на несуществующих пользователей остались, а так же чтобы не блокировались доверенные сети и авторизованные пользователи если в списках исключений будут блокировки. При этом если в списке исключений стоит разрешение для ипа или домена, то он не будет проходить все проверки после reject_invalid_helo_hostname(включительно).

Помимо исключений RBL добавим еще пару плюшек... не помешает... Все операции от пользователя zimbra.
1) создаем /opt/zimbra/conf/sender_access - тут мы будем проверять адрес указанный в поле FROM письма, т.е. фильтрация будет применяться к адресу с которого вам пишут.
[collapse]
Формат следующий:
<домен или адрес>  <TAB> <действие REJECT или OK> <TAB> <если запрет - сообщение об ошибке, не обязательно>
Пример:
=============================================
example.ru                          REJECT       Not login in
numbclub.com                    REJECT       Sender blocked by spam-filter
admin@comp.net               REJECT      Sender blocked by spam-filter
company.ru                          OK
=============================================
example.ru - это НАШ  домен, т.е. тот который у вас зимбре после @, запрещено по следующей причине, в зимбре есть неприятная дыра, можно отправлять письма с нашего домена без авторизации и не из доверенных сетей, т.е. подделать адрес директора и написать например на адрес бухгалтера, бухгалтер даже не заметит... при этом permit_sasl_authenticated и permit_mynetworks стоящие выше в smtpd_recipient_restrictions, позволят авторизованным пользователям и пользователям из доверенных сетей без проблем отправлять письма на ваш домен, т.е. Reject тут только для тех, кто не авторизовался и для левых.

numbclub.com - это к примеру домен спаммера (кстати реальный домен спаммера), можно конечно добавлять в блэклист спаммассасина, но во-первых, спаммассасин жрет много ресурсов, лучше не загружать его лишней работой, во-вторых, если в письмах будут вирусы, письмо будет отклонено уже после smtp сессии антивирусом, соответственно в почтовой очереди появится письмо от MAILER DAEMON, которое будет висеть в очереди несколько дней  с  неудачными попытками доставки, т.к. спамеры письма не принимают

admin@comp.net  - это если вы не хотите получать письма от определенного пользователя, а не от домена в целом.

company.ru       OK  - это как раз исключит днс проверки, RBL листов и прочее, т.е. если будет идти письма с этого адреса, никакие другие проверки кроме reject_non_fqdn_recipient и reject_unlisted_recipient произведены не будут. Хотим добавить в исключение адрес, пишем сюда с OK.
[/collapse]
2) создаем /opt/zimbra/conf/recipient_access - тут мы будем проверять кому пишут, т.е. фильтрация будет применяться к адресу на который пишут.
[collapse]
Формат следующий:
<ваш домен или адрес из вашего домена>  <TAB> <REJECT> <TAB> <сообщение об ошибке, не обязательно>
Пример:
=============================================
all@example.ru                   REJECT  Not login in
user@example.ru               REJECT  User is disabled
=============================================
all@example.ru - это к примеру адрес рассылки, т.е. если оправить письмо на all@example.ru, это сообщение придет всем вашим сотрудникам компании, в случае если необходимо использовать данный адрес только для внутренней переписки - напишите его в этот файлик. Знаю что можно запрещать и через интерфейс зимбры, в настройках списка рассылки, но в этом случае сервер письмо примет и вроде даже поместить в очередь для всех получателей (а если их 1000), напишет пару логов, лишняя работа, проще резать прямо тут.
Так же если списки рассылки используются для отправки сообщений клиентам, к примеру коммерсанты шлют новости по всем своим клиентам (внешние адреса), то в поле "кому" ваши клиенты увидят адрес вашего списка рассылки и некоторые из них обязательно что нибудь попытаются отправить на этот адрес. В случае если адрес рассылки указан в файле recipient_access, внешний отправитель получит ошибку Not login in. Если внешний доступ будет ограничен средствами зимбры внешний отправитель не получит ничего, что не очень хорошо, потому что он сможет подумать что письмо дошло - а значит письмо пропадет, если же никак не ограничить внешний доступ для списка рассылки, все клиенты которые присутствуют в списке рассылки получать письмо внешнего отправителя.
Внутренние пользователи смогут отправлять почту на данные адреса, см. permit_sasl_authenticated и permit_mynetworks выше.

user@example.ru - если надо заблокировать какого то внутреннего пользователя только от внешних писем, можно написать его тут, пользователь user@example.ru не будет получать внешнюю почту, но будет получать внутреннюю.

Можно создавать и правило с OK, но что то не могу придумать случаев когда это необходимо.
[/collapse]

3) создаем /opt/zimbra/conf/client_access - тут мы будем проверять IP отправителя, если sender_access по каким то причинам не подошло.
[collapse]
Формат следующий:
<IP отправителя,>  <TAB> <REJECT или OK> <TAB> <если запрет - сообщение об ошибке, не обязательно>
Пример:
=============================================
XXX.XXX.XXX.XXX                 REJECT       Sender blocked by spam-filter
YYY.YYY.YYY.YYY                  OK
=============================================
XXX.XXX.XXX.XXX - допустим в примере с sender_access, спам идет не только с numbclub.com, но и с других доменов, но ип у них одинаковый, вместо того чтобы указывать каждый домен по отдельности в sender_access, можно указать тут их общий ип.
YYY.YYY.YYY.YYY    - это  аналог permit_mynetworks, т.е. добавляя тут ип, вы можно сказать добавляете его в доверенную сеть, другое дело что через интерфейс зимбы добавить 1 ип нельзя, только через консоль, а тут пожайлуйста. Так же можно добавлять списки исключений для RBL, днс проверок. К примеру как случае в sender_access с сервера идут не только адреса с company.ru, но и с других, скажем он большой релей, и чтобы не добавлять все домены в sender_access, можно просто написать тут их общий ип. Я к примеру добавляю судя ип рабочей виртуальной машины, с которой тестирую почтовик через телнет ), чтобы она не проходила днс проверки (доверенная сеть у меня состоит только из 1 ого адреса, адреса самого сервера).
[/collapse]

4) выполняем
postmap /opt/zimbra/conf/sender_access
postmap /opt/zimbra/conf/client_access
postmap /opt/zimbra/conf/recipient_access
Каждый раз когда вы вносите изменения в любой файлик, делайте postmap, для того чтобы изменения применились, перезапускать постфикс или зимбру не надо

5) теперь нам надо впихнуть эти списки фильтрации в postfix, между reject_unlisted_recipient и reject_invalid_helo_hostname. Просто отредактировать /opt/zimbra/postfix/conf/main.cf не вариант, после перезапуска зимбры main.cf откатит все изменения.
Идем сюда /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf именно этот файлик отвечает за генерацию smtpd_recipient_restrictions в main.cf постфикса. Ищем там строку  reject_unlisted_recipient, ведь именно после него нам и нужно вставить свои списки исключений... вставляем следующее с новой строчки (укажем на наши ранее созданные файлки)..
check_client_access lmdb:/opt/zimbra/conf/client_access
check_sender_access lmdb:/opt/zimbra/conf/sender_access
check_recipient_access lmdb:/opt/zimbra/conf/recipient_access

сохраняем, перезапускаем зимбру
zmcontrol restart
После перзапуска открываем /opt/zimbra/postfix/conf/main.cf , наши правила должны появиться между reject_unlisted_recipient и reject_invalid_helo_hostname , если появились - все ок, можно проверять.

Данный вариант настройки плох только в одном, после обновления зимбы нужно повторить п.5, т.е. настройки при обновлении затираются, но файлики остаются на месте, да и не так уж часто обновляется зимбра.

Так же данный способ точно подходит для 8.5, если у вас другая версия или вы дополнительно делали какие-то изменения в конфигурационных файлах зимбры вручную, не факт что заработает.

Заключение: Вышло на целую статью, потратил час, орфографические ошибки не проверял, если кто то захочет перепосить - я не против.
 
Вроде сделал все по инструкции...
Правила не появились... 

дописал "напрямую"  в  /opt/zimbra/postfix/conf/main.cf - рестартовал... правила остались, работают.

Zimbra 8.0.6_1153...

PS: после 5 пункта, необходимо перезагрузить сервер... zmcontrol restart для меня оказалось недостаточно.
Правила подгрузились, все работает. Ура!
 
Взято здесь: http://ossportal.org/forum/zimbra/1114  комментарий whyme

8. HowTo change SMTP Banner, HELO, EHLOGreetings for Zimbra andDisable X-Originating Sender on Zimbra v.8.0.9
Posted by Said AKKAS on 27 April 2015 11:00 AM

1- Take Zimbra backup or VM snapshot before doing any changes

2- Enter the following command to change SMTP Banner:

# su – zimbra

$ zmlocalconfig -e postfix_smtpd_banner=”yourmailserver.yourdomain.com”

3- Then if you want to change HELO/EHLO names, enter:

$ zmprov mcf zimbraMtaMyHostname yourmailserver.yourdomain.com

4- If you want to disable adding X-originating (Client’s internal-LAN IP) to email headers:

$ zmprov mcf zimbraSmtpSendAddOriginatingIP FALSE

5- Then restart Zimbra Services:

$ zmcontrol restart


How to test whether it is working:

1- Telnet to your mail server from Windows cmd or Unix GNU telnet client

telnet yourmailserver.yourdomain.com 25

- It firewall allows you to access, doing telnet to port 25 should get your server to greet you with 220 yourmailserver.yourdomain.com

2- In telnet, type following to get HELO response

> helo yourmailserver

You should get:

250 yourmailserver.yourdomain.com

3- In telnet, type following to get EHLO response

ehlo yourmail

You should get:

250 yourmailserver.yourdomain.com

Rest of EHLO lines according to yoru server config, such as MTA mail size, STARTLS

Ref. http://support.commgate.net/index.php?/Knowledgebase/Article/View/229/4/How-to-change-SMTP-Banner,-HELO,EHLO-Greetings-for-Zimbra-and-Disable-X-Originating-Sender-on-Zimbra-v.8.0.9

Взято здесь: http://www.sznote.net/?p=1783

9. Некоторые ограничения отправки/ доставки

# Получить действующие на МТА ограничения:

[zimbra@mail ~]$ zmprov gacf | grep zimbraMtaRestriction
zimbraMtaRestriction: reject_invalid_helo_hostname
zimbraMtaRestriction: reject_non_fqdn_sender

# Запрет пересылки получателю, находящемуся в чужом домене:
[zimbra@mail ~]$ zmprov mcf +zimbraMtaRestriction reject_unauth_destination

# Запрет для отправителя, отсутствующего в домене

[zimbra@mail ~]$ zmprov mcf +zimbraMtaRestriction reject_sender_login_mismatch   

# Запрет для не валидного отправителя

[zimbra@mail ~]$ zmprov mcf +zimbraMtaRestriction reject_unverified_sender              

# Запрет отправки несуществующему получателю

[zimbra@mail ~]$ zmprov mcf +zimbraMtaRestriction reject_unlisted_recipient
 

Другой вариант:

Еще в Zimbra почтовом сервере есть возможность отправить письмо и в поле отправителя подставить любой адрес, сами понимаете это не хорошо.  Исправляется это просто редактируем файл main.cf:

smtpd_sender_restrictions = reject_sender_login_mismatch, reject_unverified_sender

и в /etc/postfix/smtpd_sender_login_maps
user@mydomain.ru user@mailserver

---

 

Zimbra: ошибка 504

Если не отправляются письма, с сообщением:
 
host relay.somedomain.com[xx.xx.xx.xx] said: 504 Helo command rejected: need fully-qualified hostname (in reply to RCPT TO command)

Значит проблема в том, как представляется postfix Zimbrы при соединении по SMTP. В строке «приветствия» указано краткое имя нашего почтового сервера. Делаем так:
 

su zimbra
zmlocalconfig -e postfix_smtpd_banner="mail.mydomain.com NO UCE ESMTP"
postconf -e smtpd_banner="mail.mydomain.com NO UCE ESMTP"
zmmtactl reload

Если не помогло делаем также так:

su zimbra

zmprov mcf zimbraMtaMyHostname mail.mydomain.com
zmcontrol stop && zmcontrol start

www.zimbra.com/forums/installation/17754-solved-howto-change-postfix-helo.html

Увеличить максимальный размер письма до 42МБ

su zimbra
zmprov ms `zmhostname` zimbraFileUploadMaxSize 44040192
zmprov ms `zmhostname` zimbraMailContentMaxSize 44040192
zmprov mcf zimbraMtaMaxMessageSize 44040192
postfix reload

https://wiki.zimbra.com/wiki/Configuring_maxmessagesize

 

Категория: Zimbra | Добавил: ab0k (29.12.2018)
Просмотров: 2712 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar