Установка и настройка Zimbra Open Source v.7.1 + CentOS 5.5 x64 на Hyper-V Server 2008 R2

Всем доброго времени суток.
В последнее время стало модно рассказывать о том, как я провел лето, собрал во дворе свой первый космический шатл, отдохнул в другой галактике или просто взял и перевел работу компании на новый почтовый сервер..... =]
Пишу как есть, на звезду героя не претендую, единственный смысл, зачем я это делаю - а чтобы не забыть. Ну и чтобы в последующем не терять время, а обратиться к уже существующему материалу. Может позже напишу некий FAQ по наболевшим вопросам и о том, как их решить.
PS: если кого заинтересует могу запилить картинки и прочее; критика и комментарии так же приветствуются!
Поехали. Стена текста:

Имеем: 
- Hyper-V Server 2008 R2
- AD 2003 (и соответствующий внутренний DNS для него)
- внешний ip-адрес и реальное зарегистрированное доменное имя
- соответствующим образом настроенный шлюз во внутренней сети (проброска портов)
Задачи: 
- Поднять на HyperV почтовый сервер Zimbra Open Source Edition последней версии (на данный момент 7).
- Настроить авторизацию пользователей в AD 2003
- Настроить общую адресную книгу на поиск в AD 2003
- Настроить защиту от спама
- Настроить резервное копирование Zimbra и всех ящиков пользователей

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

Установка Гостевой Операционной Системы (CentOS 5.5 х64).

Так как в линуксах я не силен, то в качестве гостевой операционной системы для HyperV я выбрал CentOS. Она является достаточно популярной и стабильной, к тому же на одном из прошлых мест моей работы она во всю использовалась аутсортинговыми компаниями.
Создание самой виртуальной машины в Hyper-V я опущу, отмечу лишь, что нужно выбрать устаревший сетевой адаптер в свойствах виртуальной машины, так как предлагаемый по умолчанию без установленных служб Linux Integration Services системой виден не будет. Как установить эти самые службы я опишу позже =)
И да, в процессе установки я не стеснялся делать снэпшоты виртуальной машины, для того чтобы всегда была возможность откатиться на один шаг назад, если что-то не заработает как надо.
Установка довольно простая и широко описана в интернетах.  Я использовал данную статью как руководство. http://www.howtoforge.com/zimbra-collaboration-suite-open-source-edition-on-centos Все команды выполняем от пользователя root.
При установке CentOS 5.5 х64 выбираем следующие компоненты:
- Applications (Editors,),
- Development (Development Libraries, Development Tools, Legacy Software Development),
- Base System (Base, Legacy Software Support).

 Настройка CentOS 5.5 x64 (SplitDNS)

После перезагрузки и первого запуска нам предложат сделать первоначальную настройку:

- в меню Firewall отключаем SElinux и Security Level
- настраиваем параметры сети Network Configuration
Ставим статический внутренний ip, маску, шлюз, внутренний DNS – сервер.
Имя будущего почтового сервера возьмем:
  mail.yourdomain.com

 Для корректной работы отключаем службы iptables, sendmail и ip6tables.

chkconfig sendmail off
chkconfig ip6tables off
chkconfig iptables off

 Перед дальнейшей установкой делаем на всякий случай апдейт системы:

yum update –y

Перезагружаемся.
Доставим некоторые пакеты необходимые для работы:

yum install –y sudo, libidn, perl, gmp, sysstat, libtool-ltdl

 Первые три пакета необязательны, они должны идти вместе с системой.

Так как мы планируем использовать Zimbra внутри корпоративной сети за NAT’ом, то необходимо правильно поднять и настроить SplitDNS, для того чтобы наш сервер внутри сети резолвился по внутреннему ip, а снаружи по внешнему. В статье выше с howtofordge описана установка SplitDNS, но пути конфигурационных файлов отличаются, поэтому я нашел оф.мануал http://wiki.zimbra.com/wiki/Split_DNS  и действовал уже по нему.
В статье рассматриваются два варианта создания SplitDNS:
a)используя Bind.
b)используя Dnsmasq.
Я выбрал первый вариант.

Устанавливаем Bind (DNS-сервер):

yum install –y bind bind-chroot bind-libs bind-utils

 Настраиваем файл-конфиг, используя любой понравившийся вам редактор.
Например, vim. Как с ним работать описано здесь http://ru.wikibooks.org/wiki/Vim.
Итак, начнем:

vim /etc/named.conf
// Default named.conf generated by install of bind-x.x.x-x
options {
       directory "/var/named";
       dump-file "/var/named/data/cache_dump.db";
       statistics-file "/var/named/data/named_stats.txt";
forwarders { <ip-address DNS>; };
};
include "/etc/rndc.key";
// We are the master server for <yourdomain.com>
zone "<yourdomain.com>" {
    type master;
    file "<db.mail.yourdomain.com>";
};

 Под <ip-address DNS> имеется ввиду ip-адрес внутреннего DNS-сервера или сервера пересылки.
Под <yourdomain.com> подразумевается имя домена(зона) за которую будет отвечать Bind. Другими словами купленный нами домен. =)
Под <db.mail.yourdomain.com> – файл самой зоны.

Давайте создадим <db.server.example.com>:

vim /var/named/<db.mail.yourdomain.com>
;
;       Addresses and other host information.
;
@       IN      SOA     youdomain.com. hostmaster.yourdomain.com. (
                               10118      ; Serial
                               43200      ; Refresh
                               3600       ; Retry
                               3600000    ; Expire
                               2592000 )  ; Minimum
;       Define the nameservers and the mail servers
          IN      NS      <internal address of server>
          IN      MX      <10 mail.yourdomain.com.>
mail   IN      A         <internal address of server>

 Понятно, что <internal address of server> - внутренний IP нашего будущего почтового сервера, а <10 mail.yourdomain.com.> – MX запись для него в домене. (Точки в конце имён обязательны.)
Мой конфиг немного отличается, так как я добавил туда еще два внешних DNS:

        IN      NS      mail
        IN      NS      ns1
        IN      NS      ns2
mail    IN     A        <internal address of server>
ns1     IN     A        <external address of server> 
ns2     IN     A        <external address of server>  

 Где <external address of server> - адрес внешнего DNS.
Теперь настроим почтовый сервер на использование основного DNS адреса.

vim /etc/resolv.conf
search  yourdomain.com.
nameserver <internal address of server>

 Запускаем сервис Bind он же named и прописываем его в автозагрузку:

/etc/init.d/named start
chkconfig named on

Проверяем, что все работает как надо:

nslookup <mail.yourdomain.com>
Server:  <internal address of server>
Address: <internal address of server>#53
 
Name:   <mail.yourdomain.com>
Address: <internal address of server>

Наш сервер готов к тому чтобы стать почтовым. =)

Установка Zimbra Collaboration 7 Open Source Edition

Скачаем сам дистрибутив и распакуем его:

cd /tmp
wget http://files2.zimbra.com/downloads/7.1.1_GA/zcs-7.1.1_GA_3196.RHEL5_64.2...
tar xvzf zcs-7.1.1_GA_3196.RHEL5_64.20110527011124.tgz

 Произведем установку:

cd zcs-7.1.1_GA_3196.RHEL5_64.20110527011124.tgz
./install.sh –-platform-override

 В процессе установки будет выполнена проверка требуемых пакетов, если хотя бы одного из них не будет хватать, установка будет прекращена, а не найденные пакеты нужно будет доставить самостоятельно, и уже потом еще раз запустить установку.

............
Checking for prerequisites...
    FOUND: NPTL
    FOUND: netcat-хххх
    FOUND: sudo-хххх
    FOUND: libidn-хххх
    FOUND: libpcre-хххх
    FOUND: libgmp-хххх
    FOUND: libexpat-хххх
    FOUND: libstdc-хххх
    FOUND: libperl-хххх
Checking for suggested prerequisites...
    FOUND: perl-хххх
    FOUND: sysstat-хххх
    FOUND: sqlite-ххх
Prerequisite check complete.
............

 После успешной проверки соглашаемся с лицензионным соглашением:

............
Do you agree with the terms of the software license agreement? [N] y
............

 Далее выбираем пакеты zimbra, которые хотим установить, последние два нам не нужны:

............
Select the packages to install :
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [N]
Install zimbra-proxy [N]
Checking required space for zimbra-core
checking space for zimbra-store
............

 Получаем предупреждение о несоответствии платформы, на которую производится установка. На  все остальные вопросы отвечаем утвердительно:

............
Install anyway [N]Y
The system will be modified. Continue? [N]Y
............

 Меняем доменное имя на то, которое нам надо:

............
Change domain name? [Yes]Y
Create domain: <mail.yourdomain.com>
............

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

Main menu
 
1) Common Configuration:
2) zimbra-ldap:                             Enabled
3) zimbra-store:                            Enabled
+Create Admin User:                    yes
+Admin user to create:                 admin@yourdomain.com
******* +Admin Password                        UNSET
+Anti-virus quarantine user:           virus-quarantine.xxxxxxx@ yourdomain.com
+Enable automated spam training:       yes
+Spam training user:                   spam.xxxxxxxxxx@yourdomain.com
+Non-spam(Ham) training user:          ham.xxxxxxxxxx@yourdomain.com
+SMTP host:                            mail.yourdomain.com
+Web server HTTP port:                 80
+Web server HTTPS port:                443
+Web server mode:                      http
+IMAP server port:                     143
+IMAP server SSL port:                 993
+POP server port:                      110
+POP server SSL port:                  995
+Use spell check server:               yes
+Spell server URL:                     http:// mail.yourdomain.com:7780/aspell.php
+Configure for use with mail proxy:    FALSE
+Configure for use with web proxy:     FALSE
+Enable version update checks:         TRUE
+Enable version update notifications:  TRUE
+Version update notification email:    admin@yourdomain.com
+Version update source email:          admin@yourdomain.com
4) zimbra-mta:                              Enabled
5) zimbra-snmp:                             Enabled
6) zimbra-logger:                           Enabled
7) zimbra-spell:                            Enabled
8) Default Class of Service Configuration:
r) Start servers after configuration        yes
s) Save config to file
x) Expand menu
q) Quit
Address unconfigured (**) items  (? - help) 3

 Есть так же расширенное меню - Expand menu. В принципе то же самое, но со всеми подменюшками:

Main menu
 
1) Common Configuration:
+Hostname: mail.youdomain.com
+Ldap master host: mail.yourdomain.com
+Ldap port: 389
+Ldap Admin password: set
+Secure interprocess communications: yes
+TimeZone: America/Los_Angeles
2) zimbra-ldap: Enabled
+Status Enabled
+Create Domain: yes
+Domain to create: mail.yourdomain.com
+Ldap root password: set
+Ldap replication password: set
+Ldap postfix password: set
+Ldap amavis password: set
+Ldap nginx password: set
3) zimbra-store: Enabled
+Status Enabled
+Create Admin User: yes
+Admin user to create: admin@.yourdomain.com
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.xxxxx@mail.yourdomain.com
+Enable automated spam training: yes
+Spam training user: spam.xxxxxxxxxx@yourdomain.com
+Non-spam(Ham) training user: ham.xxxxxxxxxx@yourdomain.com
+SMTP host: mail.yourdomain.com
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: http
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL: http://mail.yourdomain.com:7780/aspell.php
+Configure for use with mail proxy: FALSE
+Configure for use with web proxy: FALSE
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@mail.yourdomain.com
+Version update source email: admin@mail.yourdomain.com
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-logger: Enabled
7) zimbra-spell: Enabled
8) zimbra-convertd: Enabled
9) Default Class of Service Configuration:
10) Enable default backup schedule: yes
c) Collapse menu
r) Start servers after configuration yes
s) Save config to file
q) Quit

 Установку закончить нельзя до тех пор пока не задан пароль админской учётки. Выбираем пункт 3 (zimbra-store) и далее пункт 4 (Admin Password):

............
Select, or 'r' for previous menu [r]  3
 
Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@yourdomain.com
** 4) Admin Password UNSET
5) Anti-virus quarantine user:   virus-quarantine.xxxxx@mail.yourdomain.com
6) Enable automated spam training: yes
7) Spam training user: spam.xxxxxxxxxx@yourdomain.com
8) Non-spam(Ham) training user: ham.xxxxxxxxxx@yourdomain.com
9) SMTP host: mailhost.example.com
10) Web server HTTP port: 80
11) Web server HTTPS port: 443
12) Web server mode: http
13) IMAP server port: 143
14) IMAP server SSL port: 993
15) POP server port: 110
16) POP server SSL port: 995
17) Use spell check server: yes
18) Spell server URL: http://mail.yourdomain.com:7780/aspell.php
19) Configure for use with mail proxy: FALSE
20) Configure for use with web proxy: FALSE
21) Enable version update checks: TRUE
22) Enable version update notifications: TRUE
Select, or 'r' for previous menu [r]  4
 
Password for admin@yourdomain.com (min 6 characters): xxxxxxxxx

 Выходим в предыдущее меню, нажав клавишу «R», и нажимаем клавишу «A» чтобы применить конфигурацию.

*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]Yes
Save config in file: [/opt/zimbra/config.xxxxx]
Saving config in /opt/zimbra/config.xxxx...done.
The system will be modified - continue? [No]Yes

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

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Suite.
The only information that will be transmitted is:
The VERSION of zcs installed (7.1.1_GA_3196_CentOS5)
The ADMIN EMAIL ADDRESS created (admin@yourdomain.com)
Notify Zimbra of your installation? [Yes] No
............
Configuration complete - press return to exit
............
Configuration complete!

Сервер успешно установлен, должны стартовать службы zimbra.

Настройка Zimbra Collaboration 7 Open Source Edition.

Теперь мы можем открыть в браузере web-интерфейс сервера, который расположен по адресу http://mail.yourdomain.com . Вводим учетные данные админа и попадаем в свой почтовый ящик.
Для удобства дальнейшей работы изменим интерфейс с английского на русский, открыв вкладку «Preference», далее «General», меняем «Language» на «русский», жмем «Save»+ «Yes». Перезаходим.

Далее откроем консоль администратора Zimbra, тыркнув по менюшке «Консоль управления»(Admin Console) в правом верхнем углу или наберем в адресной строке браузера https://mail.yourdomain.com:7071/zimbraAdmin/ и введем логин/пароль администратора.

Теперь об особенностях.
Глобальные настройки имеют приоритет над настройками сервера. Это означает, что если мне вдруг будет нужно для агента передачи сообщений прекратить «использовать только проверку TLS», то  в настройках сервера я не смогу изменить этот параметр пока не отключу/разблокирую его в «глобальных настройках».
Класс обслуживания – является некой «политикой» применяемой к определенному домену, коих может быть несколько. Настроек в «политике» достаточно много. При создании нового домена к нему можно прикрутить определенный класс обслуживания.
В качестве дополнений в zimbra выступают zimlet’ы, не нужно путать их с расширениями администратора. Первые применяются и ориентированы на пользователей, вторые только на консоль администратора и возможности zimbra сервера.

1. Настройка авторизации через AD.

Для авторизации пользователей Zimbra позволяет использовать не только свой собственный LDAP, но так же и другие внешние источники, например AD. Настройка ее достаточно простая http://wiki.zimbra.com/wiki/LDAP_Authentication и может быть осуществлена как через консоль, так и через веб-интерфейс:
- открываем закладку «домены» - «yourdomain.com» - «настроить проверку подлинности», жмем «далее»
- выбираем «механизм проверки подлинности» - внешний «Active Directory», «имя домена» и сервер с указанием порта, жмем «далее»
- указываем имя пользователя и пароль, жмем «тест», после успешного прохождения жмем «далее» и «готово»
Самих пользователей добавить в Zimbra можно при помощи мастера переноса учетных записей из веб-интерфейса, или ручками, или при помощи скрипта описанного здесь - http://www.ossportal.ru/technologies/zimbra/blogs/152
Что удобно: при блокировании или удалении пользователя из AD, учетка в Zimbra автоматом блочится.

2. Настройка общей адресной книги на поиск в AD.

В учетках Active Directory должно быть заполнено поле «Эл.почта», именно по нему будет производиться поиск.
Так же как и с авторизацией можно воспользоваться и консолью и веб-интерфейсом:
- открываем закладку «домены» - «yourdomain.com» - «настроить GAL»
- выбираем «Режим GAL» - «внешний»; «Большинство результатов поиска по GAL» - 100; «имя учетной записи синхронизации GAL» – учетка в AD от которой, будет производиться поиск; «интервал опроса внешнего GAL» - например, 30 минут; указываем тип сервера, его имя или ip-адрес, и порт. Так же выставляем правильную поисковую базу:
DC=youdomain,DC=com
Жмем «далее»
- ставим галочку для привязки к внешнему серверу в поле заносим: DC=youdomain,DC=com (если есть) и вводим два раза пароль на учетку указанную ранее. Жмем «далее»
- для того чтобы не заворачиваться с фильтрацией ставим галочку «использовать настройки поиска по GAL для синхронизации GAL», жмем «далее»
- в следующем окне мы увидим краткую сводку параметров GAL и должны протестировать его работу. Убедимся, что поиск адресов в AD работает и завершаем работу мастера.

В версии 7.1.1, которую я устанавливал на тот момент, была проблема с фильтром поиска учетных записей в AD. Бага описана вот здесь: https://bugzilla.zimbra.com/show_bug.cgi?id=11562
Весь затык был в том, что по умолчанию фильтр для AD в Zimbra настроен на работу и поиск почты по атрибуту mailNickname (который используется, например в Exchange) и по замыслу разработчиков запрашивался при миграции пользователей из Exchange в Zimbra. Но в AD2003 по умолчанию для этих целей используется атрибут mail.(посмотреть можно через оснастку AD - свойства - редактор атрибутов). Соответственно необходимо было изменить злосчастный фильтр.
Все команды выполняем из-под пользователя zimbra:
 - zmprov gcf zimbraGalLdapFilterDef >> /tmp/someconfigfile
- Меняем значение mailNickname внутри файла на mail
- Для того чтобы внести изменения нужно выполнить команду zmprov mcf  для каждой строчки внутри получившегося файла. Поэтому добавим в начало каждой строки файла mcf<пробел>
- Теперь подсовываем его обратно используя zmprov < /tmp/someconfigfile.
- Заходим в консоль управления по вебке и проверяем в настройке gal находит ли определенный адрес или нет.
Решение взято отсюда: http://wiki.zimbra.com/wiki/King0770-Notes-SearchGal-Edit

3. Защита от спама.
В Zimbra существует несколько видов проверок. Спам можно отсеивать средствами MTA (Postfix), Amavisd-NEW, Spammassassin, пользовательскими фильтрами и т.д. За основу возьмем статью с Zimbra Wikipedia: http://wiki.zimbra.com/wiki/Improving_Anti-spam_system и http://wiki.zimbra.com/wiki/Zimbra_MTA#Anti-Spam_Protection

- Настройка Анти-спам фильтра(Amavisd-New).
По идее, в Zimbra за фильтрацию отвечает некий Amavisd-NEW, который является интерфейсом между Zimbra MTA, ClamAV и SpammAssassin’ом. Если вам не нравится, как работает Spammassassin, то можно вместо него использовать и настроить DSPAM (http://wiki.zimbra.com/wiki/Using_DSPAM_for_Spam_Filtering). Фильтрация включается автоматически, как только Zimbra будет установлена и запущена. Пользователи сами могут начать обучать спам-фильтр. По умолчанию метка «spam» будет присваиваться письмам, которые по решению системы являются спамом на 33% и отбрасываться/уничтожаться, если превышают 75%. Эти пороговые значения, заданные по умолчанию можно изменить через консоль администратора: «глобальные настройки» - «AS/AV». Там же можно и изменить тег выдаваемый спаму. Для обучения фильтра используются две системные учетные записи:
a) spam.xxxx@youdomain.com – необходима для приема сообщений которые не были помечены как спам, но на самом деле таковым являются.
b) ham.xxxxx@youdomain.com – необходима для приема сообщений которые были помечены как спам, но на самом деле таковыми не являются.
Для этих аккаунтов отключена дисковая квота (она равна 0) и индексация вложений.
Как же происходит обучение?
Когда пользователь через веб-интерфейс помечает письмо как спам – оно перемещается в соответствующую папку «спам», а копия отмеченного письма пересылается как вложение на spam.xxxx@youdomain.com
При этом пересылаемое письмо имеет определенный заголовок, а в теле письма указывается информация вида:

Classified-By: test@youdomain.com
Classified-As: spam
Action: move
Source-Folder: /Conversations
Destination-Folder: /Junk
Destination-Mailbox:

 Понятно, что когда пользователь помечает письмо как «не спам» оно пересылается как вложение на ham.xxxxx@youdomain.com и тело письма имеет вид:

Classified-By: test@youdomain.com
Classified-As: ham
Action: move
Source-Folder: /Conversations
Destination-Folder: /Inbox
Destination-Mailbox:

Дальше в дело вступает специальная утилита – zmtrainsa. Она с периодичностью указанной в crontab zimbra разбирает все, что попало на ящики ham.xxxxx@youdomain.com и spam.xxxx@youdomain.com и обучает спам-фильтр(spamassassin). Раз в день zmtrainsa очищает эти ящики. Изменить время жизни писем в папках «спам» можно через веб-интерфейс консоли администраора: открываем нужный нам класс обслуживания, вкладку «дополнительно» - «политика сохранения электронной почты» - «время жизни спамового сообщения».
Конкретным пользователям можно запретить обучать спам-фильтр при помощи команды:
zmprov mcf <attribute> ‘’
где в качестве атрибута выступают zimbraSpamIsSpamAccount и zimbraSpamIsNotSpamAccount
Для того чтобы изменения вступили в силу перезапустим сервер zimbra:

zmcontrol restart

 Если есть желание самому обучить спам-фильтр, то можно забить эти ящиками письмами со спамом (в качестве вложений), правильно заполнив тело письма. Обучение можно считать законченным, если было разобрано около 200 писем на каждом ящике.
Утилита zmtrainsa может быть запущена вручную, при этом ей можно скормить любую папку почтового ящика. Для отправки определенной папки на один из ящиков воспользуемся следующими командами:

zmtrainsa <server> <user> <password> spam [foldername]

 Для спама.

zmtrainsa <server> <user> <password> ham [foldername]

 Для не спамовых сообщений.

При помощи Amavisd-New можно определить черные/белые списки отправителей.
Для этого отредактируем файл  /opt/zimbra/conf/amavis.conf.in

read_hash(%whitelist_sender, '/etc/zimbra/whitelist');
read_hash(%blacklist_sender, '/etc/zimbra/blacklist');
read_hash(%spam_lovers, '/etc/zimbra/spamlovers');

 Тем самым мы указали, откуда брать черные и белые списки отправителей + тех кто будет получать абсолютно весь спам без фильтрации.
Формат файлов:

hotstuff@sexnzen.com
spammersites.net

 Не забудем о том, что Zimbra при каждом обновлении может стирать эти файлы и что их нужно время от времени бэкапить (например, через crontab).

  - Настройка Spammassassin:
Самый простой способ фильтрации при помощи Spammassassin - это изменение файла /opt/zimbra/conf/salocal.cf.in
Он разрабатывался специально для удобства настройки “под себя”. Формат файла следующий:

blacklist_from sales@traveloforange.com
whitelist_from bill@yahoo.net
blacklist_from *@emn-mysavingsnow.net

 Блочить можно и конкретного адресата и конкретный домен. После внесения изменений перезапустим Spammassassin чтобы он заново прочитал конфиг:

su – zimbra –c “zmmtactl restart && zmamavisdctl restart”

 Помните, что Zimbra при каждом обновлении заменяет этот файл и что его нужно время от времени бэкапить (например, через crontab).

Ну, а сама работа Spammassassin’a заключается в проверке заголовков и содержимого писем, и применении определенных правил к ним. То есть в письме ищутся регулярные выражения, которые могут быть представлены конкретным словом или фразой и далее обработаны соответствующим образом. При проверке письма, к нему по очереди применяются все правила Spammassassin’a и если какие-то из них срабатывают, то письму выдаются баллы (в зависимости от сработавшего правила). Когда общая сумма баллов превышает определенный порог, то письмо получает отметку spam (она добавляется в его заголовок) и отправляется в соответствующую папку. Если сумма баллов очень высока, оно может быть отброшено автоматически. Управление порогами отбрасывания и добавления тега spam осуществляется при помощи сервиса Amavisd-New (как я понял). И доступно через веб-интерфейс консоли администратора: «глобальные настройки» - «AS/AV». Только здесь оно указано в процентах, а не в баллах.
Можно создавать и свои правила, все в том же salocal.cf.in Формат следующий:

body LOCAL_RULE    /sale/
score LOCAL_RULE   0.5

 Созданное правило называется LOCAL_RULE и ищет в теле сообщения слово sale в нижнем регистре. Если оно находит слово sale в любом месте письма, то к общей сумме письма добавляется 0,5 балла. Обратим внимание, что правило срабатывает только один раз, не учитывая сколько раз в нем присутствует слово sale. Рекомендуется задавать такие имена правил, чтобы их легко было отличить от встроенных, например, добавляя в начале правила слово LOCAL, как это показано выше.
Еще примеры:

body LOCAL_SALE    /sale/i

 Поиск без учета регистра.

body LOCAL_STOCK1    /^hot stock tip/i

 Поиск строки, которая начинается со слов hot stock tip без учета регистра.

body LOCAL_4CAPS    /[A-Z][A-Z][A-Z][A-Z]/

 Поиск любых 4 заглавных букв в строке.

body LOCAL_MONEY    /d?d?d?.ddb/

 Поиск подряд трех цифр, десятичной точки и еще двух цифр, вместе составляющих регулярное выражение. Хитрые разработчики рекомендуют погуглить «perl regular expressions» для построения более сложных правил. Так же можно проверять и заголовки писем, используя следующую конструкцию:

header LOCAL_LOCALHOST reply-to =~ /@localhost/

 Имя  правила будет LOCAL_LOCALHOST,  а reply-to(для ответа, обратный адрес) это имя поля заголовка, где будет производиться поиск. Правило сработает, если в любом месте поля reply-to будет содержаться запись @localhost. Просмотреть заголовки писем, да и вообще всю информацию о письме в «истинном виде» можно щелкнув по письму правой кнопкой мыши из меню веб-интерфейса и выбрав пункт «показать оригинал».
Следующее правило – поиск по URI (это URL+URN):

uri LOCAL_SALES    /sales/

 Помимо базовых правил, мы можем создавать и более сложные, комбинируя условия и создавая «мета-правила»:

body LOCAL_FOUR_CAPS    /[A-Z][A-Z][A-Z][A-Z]/
body LOCAL_MONEY        /d?d?d?.ddb/
meta LOCAL_STOCK        (LOCAL_MONEY && LOCAL_FOUR_CAPS)
score LOCAL_STOCK       1

 Если сработали оба правила LOCAL_FOUR_CAPS и LOCAL_MONEY , то к общей сумме балов письма будет добавлена единичка. Будьте внимательны, так как при создании мета-правил легко ошибиться и добавить лишних баллов письму. Пример:

body LOCAL_FOUR_CAPS    /[A-Z][A-Z][A-Z][A-Z]/
score LOCAL_FOUR_CAPS   1
body LOCAL_MONEY        /d?d?d?.ddb/
score LOCAL_MONEY       1
meta LOCAL_STOCK        (LOCAL_MONEY && LOCAL_FOUR_CAPS)
score LOCAL_STOCK       1

 Здесь будет добавлено 3 балла (по единичке за каждое сработавшее и еще единичку за то, что сработали оба).
После внесения изменений перезапустим Spammassassin чтобы он заново прочитал конфиг:

su – zimbra –c “zmmtactl restart && zmamavisdctl restart”

 

- Настройка Postfix, RBL:
RBL(Real time Black hole Lists) – списки заблокированных отправителей проверяемых в реальном времени или огромная база открытых релеев, пересылающих спам. По умолчанию в Postfix’e Zimbr’ы включены следующие ограничения:
a) reject_invalid_hostname
b) reject_non_fqdn_hostname
c) reject_non_fqdn_sender
К ним можно добавить  проверку по RBL: reject_rbl_client <RBL-адрес>  воспользовавшись веб-интерфейсом(«глобальные настройки»-«агент передачи данных»-«проверки через DNS»-«актуальные черные списки») или консолью:

su – zimbra
zmprov mcf zimbraMtaRestriction [RBL type]

Чтобы добавить все возможные ограничения воспользуемся командой:

zmprov mcf zimbraMtaRestriction reject_invalid_hostname zimbraMtaRestriction reject_non_fqdn_hostname zimbraMtaRestriction reject_non_fqdn_sender zimbraMtaRestriction
 “reject_rbl_client dnsbl.njabl.org” zimbraMtaRestriction “reject_rbl_client cbl.abuseat.org”
zimbraMtaRestriction “reject_rbl_client bl.spamcop.net” zimbraMtaRestriction
 “reject_rbl_client dnsbl.sorbs.net” zimbraMtaRestriction “reject_rbl_client sbl.spamhaus.org”
zimbraMtaRestriction “reject_rbl_client relays.mail-abuse.org”

 Для того чтобы просмотреть имеющиеся ограничения:

zmprov gacf | grep zimbraMtaRestriction 

 Система RBL-списков не идеальна, и иногда отбрасывает нужные письма, если адресата по ошибке занесли в черный список. Чтобы этого избежать сделаем исключение в конфигурации Postfix’а, так как он осуществляет проверку сообщений до проверки по спискам RBL и принимает решение о доставке.
Создадим сперва файл postfix_rbl_override:

su – zimbra
vim /opt/zimbra/conf/postfix_rbl_override
<ip-address> OK
1.2.3.5 OK
mail.freemailer.tld OK
 

 На основе этого файла построим карту для postfix:

postmap /opt/zimbra/conf/postfix_rbl_override

 Создадим конфиг:

vim /opt/zimbra/conf/postfix_recipient_restrictions.cf 

Под строкой reject_unauth_destination добавим check_client_access hash:/opt/zimbra/conf/postfix_rbl_override
Запись будет выглядеть примерно так:

reject_unauth_destination
check_client_access hash:/opt/zimbra/conf/postfix_rbl_override
reject_unlisted_recipient

 Делаем рестарт mta:

zmmtactl restart

 Не забываем делать бэкап созданных нами файлов на случай обновления Zimbra и делать рестарт mta каждый раз, когда нам нужно будет внести изменения.

Основным конфигурационным файлом Postfix’а по прежнему остается main.cf расположенному по пути /opt/zimbra/postfix/conf/main.cf   Для меня важными параметрами в нем были mynetworks (доверенные сети) и smtpd_recipient_restrictions (ограничения для получателей).
Если вдруг ваш почтовый сервер стал основой мишенью для спаммеров, то сервер будет испытывать нагрузку в виде большого количества одновременных запросов на подключение. В большинстве случаев эти соединения будет отброшены из-за не существующих конечных ящиков получателей на сервере. Но эти подключения жрут ресурсы сервера. Чтобы этого избежать добавим пару строчек в main.cf:
smtpd_soft_error_limit = 2
smtpd_hard_error_limit = 3
Сделать это можно следующими командами:

su – zimbra
postconf -e 'smtpd_hard_error_limit = 3'
postconf -e 'smtpd_soft_error_limit = 2'

 Выйдем из-под пользователя zimbra и зайдем обратно под пользователем root. Перезапустим postfix выполнив от рута:

cd /opt/zimbra/postfix/sbin
./postfix stop
postfix/postfix-script: stopping the Postfix mail system
postfix start
postfix/postfix-script: starting the Postfix mail system

 Для того чтобы не принимать письма с определенными вложениями можно отредактировать файл /opt/zimbra/conf/postfix_header_checks.
Пример:

/filename="?(.*).(asd|bat|chm|cmd|com|dll|do|exe|hlp|hta|js|jse|lnk|ocx|pif|reg|scr|shb|shm|shs|vbe|vbs|vbx|vxd|wsf|wsh|xl)"?$/
        REJECT For security reasons we reject attachments of this type
/^s*Content-(Disposition|Type).*names*=s*"?(.+.(asd|bat|chm|cmd|com|dll|do|exe|hlp|hta|js|jse|lnk|ocx|pif|reg|scr|shb|shm|shs|vbe|vbs|
        REJECT Attachment type not allowed. File "$2" has the unacceptable extension "$3"

 Где в скобках перечислены расширения файлов.
Но так же легко можно воспользоваться веб-интерфейсом администратора: «глобальные настройки» - «вложения» - «новое расширение» - «добавить» - «добавить выбранное»

Для отбрасывания писем, которые валятся на не существующие адреса отвечает строчка в файле /opt/zimbra/conf/zmmta.cf:

POSTCONF smtpd_reject_unlisted_recipient            no

 Вместо no ставим yes. Обновления Zimbra могут его перезаписать, поэтому не забываем делать резервную копию.
С такой настройкой сервер не будет производить проверку на спам и вирусы, прежде чем отклонить письмо, содержащее неправильный адрес +  можно настроить postfix так чтобы выдавать ответ 450, явно говоря о том, что такого адреса не существует. В дополнение к этому, когда команда RCPT_TO отправляет письмо на неверный адрес, Zimbra ждет 5 секунд, прежде чем принять следующую команду, тем самым замедляя работу спамера.

Дальше обратимся к файлу настроек ограничений в Postfix’е /opt/zimbra/conf/postfix_recipient_restrictions.cf:

reject_unknown_recipient_domain 

 Отбрасывает письмо, если указанный адресат не имеет корректной A или MX записи, если Postfix не является окончательным местом доставки адреса получателя (???), или конечный домен имеет запись MX с нулевой длинной хоста.

reject_unverified_recipient

Отвергает запрос, когда в RCPT_TO указан адрес, на который идет «отлуп» или когда адрес получателя не является достижимым.
Указанные выше записи должны находиться под первой строчкой, та самая, которая  reject_non_fqdn_recipient
Делаем рестарт Zimbra,чтобы все заработало:

su – zimbra –c “zmcontrol restart”

 И наслаждаемся.

ЗЫ: Как описано в статье есть и недостаток такого подхода, который заключается в том, что спамеры могут вычислить реально используемые адреса путем массовых рассылок, но как именно мне не совсем понятно. =\

4. Резервное копирование.

Так как Zimbra работает на виртуальной машине, то проще делать бэкап всей виртуалки при помощи скрипта hvbackup.vbs взятого отсюда http://sysadmins.ru/topic247352.html
Решение бесплатное и что самое приятное — работающее без нареканий. Нужно лишь добавить его в планировщик задач с определенными ключами.
Для бэкапа почтовых ящиков Zimbra воспользуемся решением  с оф. сайта. http://wiki.zimbra.com/wiki/Backing_up_and_restoring_Zimbra_%28Open_Source_Version%29
Нас интересует секция Another Option. Скрипты довольно простые – скрипт Backup.sh вызывает скрипт zimbraBackupAllAccounts.sh, а Restore.sh вызывает zimbra_restore_allaccounts.sh. Все они используют встроенные команды Zimbra. Что-то особенное менять в них смысла нет. Единственно только что я изменил: это место резервного копирования и конечный тип архива, да убрал подсчет времени.

Script 1 Backup.sh:

echo "*******************************************************"^
echo "*     Zimbra - Backup all email accounts              *"^
echo "*******************************************************"^
#
#ZBACKUP=/Backup
echo Start time of the backup = $(date +%T) 
before="$(date +%s)"
#
echo "Generating backup files ..."
su - zimbra -c /opt/AdminScripts/zimbra_backup_allaccounts.sh
#
echo The process lasted = $(date +%T)

 

Script 2 zimbraBackupAllAccounts.sh:

#Backup ALL ACCOUNTS AND EMAILS
#This script must be run as root.
before="$(date +%s)"
echo "Nachalo beckupa ..."
ZHOME=/opt/zimbra
ZBACKUP=/Backup
ZCONFD=$ZHOME/conf
DATE=`date +"%a"`
ZDUMPDIR=$ZBACKUP/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
echo " Running zmprov ... "
       for mbox in `zmprov -l gaa`; do
echo " Generating files from backup $mbox ..."
       $ZMBOX -z -m $mbox getRestURL "//?fmt=tgz" > $ZDUMPDIR/$mbox.tgz
done

 

Для восстановления всей почты так же понадобится два скрипта.
Script 3 Restore.sh:

echo "*******************************************************"
echo "*    Zimbra - Restore all email accounts              *"
echo "*******************************************************"
echo ""
#
echo Start Time Restore = $(date +%T)
#
echo ""
echo "Starting the process restore the backup files ..."
su - zimbra -c "/opt/AdminsScripts/zimbra_restore_allaccounts.sh"
echo The process lasted = $(date +%T)
# Calculating time
#after="$(date +%s)"
#elapsed="$(expr $after - $before)"
#hours=$(($elapsed / 3600))
#elapsed=$(($elapsed - $hours * 3600))
#minutes=$(($elapsed / 60))
#seconds=$(($elapsed - $minutes * 60))
#echo "The complete restore lasted : "$hours hours $minutes minutes $seconds seconds"
echo "Process completed successfully!"

 

Script 4 zimbra_restore_allaccounts.sh:

#!/bin/bash
ZHOME=/opt/zimbra
#ZBACKUP=$ZHOME/backup/mailbox
ZBACKUP=/Backup
ZCONFD=$ZHOME/conf
DATE=`date +"%a"`
ZDUMPDIR=$ZBACKUP/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
echo "Backups do not exist !"
exit 255;
fi
for mbox in `zmprov -l gaa`
do
echo " Restoring files from backup $mbox ..."
$ZMBOX -z -m $mbox postRestURL "//?fmt=tgz&resolve=reset" $ZDUMPDIR/$mbox.tgz
done

 Как видно из скриптов - что для восстановления, что для резервного копирования используется команда zmprov и zmmailbox. А в папке для бекапа будет создана папка с текущей датой и все учетные записи с их содержимым разложены по архивам в формате tgz.
Скрипт Backup.sh заносим в crontab для выполнения по расписанию.

PS: За наводку на готовое решение спасибо человечку Slanj с форума. Так же есть рекомендация делать бекап базы данных Zimbra. Нормальный скрипт лежит тут http://code.google.com/p/zimbackup/source/browse/trunk/zbkp-mysql . Бекапит базу каждый день недели. Но я им пока не успел воспользоваться. =]

PPS: Чуть не забыл официальное руководство администратора на англ. языке. http://files.zimbra.com/website/docs/Zimbra%20OS%20Admin%20Guide.pdf

219

Комментарии

Aviriel аватар

 А можно один бизнесовый вопрос? Я никогда не могла понять, почему люди, у которых есть деньги на покупку Windows Server + HyperV, не хотят (не могут) купить платную Zimbra. Вот почему? Это же нелогично.

Может вопрос слишком личный, и мне грозит ответ вида "просто не хотим", но все же не удержусь и задам вопрос.. :)

Ну как бы вам объяснить многоуважаемая Aviriel. Может у кого-то Hyper-V на Windows 2008 server core и платный. Но мы используем бесплатную версию данного продукта и ни копейки за нее не заплатили. :) По-моему даже википедия со мной согласна http://ru.wikipedia.org/wiki/Microsoft_Hyper-V_Server

Хотя наверное в статью надо внести сей ньюанс, спасибо.

Aviriel аватар

 Ок, упустила, спасибо за объяснение. Просто мне казалось, что раз вы используете Hyper-V, а не KVM (RHEV, например), то логично использовать SharePoint. А тут неожиданно Zimbra, еще и OSE :)

Контора такая - денег нет,  людей нет, воды нет, (населена роботами). Сижу как гоблин в пещере. А с шаропоинтом наверное опечатка :) Шаропоинты всякие с Alfresco сравнивать надо. Нам же именно почтовый север нужен был. И тут ZCS OSE с ZD как раз почти аналог Exchange c Outlook.

Да еше бесплатный :)

Ох автор вы красавец!!!!

Текс просто прекрасен всё логично просто и понятно. И описывает моё поднятие зебры на хиперВ. Эту статью срочно в избранное :). Будет там так сказать красоваться.

Cпасибо! Бум стараться o/

Пара "гунделок", если будет позволено... :)

1. "Глобальные настройки имеют приоритет над настройками сервера."

Как раз наоборот - настройки сервера имеют приоретет перед глобальными настройками.

Zimbra OS Admin Guide 7.1.pdf

"Note: Configurations set in Global Settings define inherited default values for
the following objects: server, account, COS, and domain. If these
attributes are set in the server, they override the global settings.
"

2. "...спамеры могут вычислить реально используемые адреса путем массовых рассылок, но как именно мне не совсем понятно."

Твой почтовый домен известен, часть перед собакой подставляется из словаря, а дальше тупая долбежка роботами.

Поэтому для почтовых адресов всеже желательно использовать "несловарные" слова. Лично себя упрекаю, что учетку admin не переименовал даже в какого-нибудь admin.1234. Вроде мелочь, а письма принимаются - учетка-то реально существует. Правда спам-фильтр большинство левых писем отлавливает, но всеже...

Ты об этом спрашивал?

1. Как это о_О ? Если я в глобальных настройках выставлю галочку для агента передачи сообщений - использовать только проверку подлинности TLS, то я не смогу ее снять / перезаписать значение / для пункта меню настройки сервера - агент передачи сообщений.  Я имел ввиду именно это.=)

2. Не совсем. На вики пишется что массовые рассылки на не существующие электронные адреса - это часть более серьезной атаки. Подразумевается что если мы включаем опцию в postfix:

smtpd_reject_unlisted_recipient = yes

то спаммеру в ответ будет выдаваться сообщение о том, что такого ящика в системе не существует. Вывод: путем отсеивания адресов на которые не будет выдаваться такое сообщение, спаммер может составить базу адресов. ИМХО конечно, но речь там идет именно об этой опции postfix.

1. Не знаю. У меня этот пункт доступен для редактирования. ZSC 6.0.15 OSE

И еще присутствует выделенная надпись на верху закладки Управление глобальными настройками:

"Примечание. Настройки применяются только к серверам, на которых установлены и включены соответствующие службы. Настройки сервера имеют приоритет над глобальными настройками."

Могу предоставить скриншоты для доказательства.

2. ИМХО, сильно зависит от "интеллекта" робота и его папы Карло(ака автора). Ко мне уже пол-года на одни и теже несуществующие адреса ломятся. Причем с разных узлов. Не смотря на отлупы.

К стати, опция "reject_unlisted_recipient" присутствует в main.cf дважды. У меня по-крайней мере.

Сначала она фигурирует в smtpd_recipient_restriction, а потом появляется ниже в виде строки:

"smtpd_reject_unlisted_recipient = no" - это вроде как поведение по-умолчанию.

Хотя я и не менял этот параметр на "yes" у меня письма для несуществующих адресатов не принимаются, а отваливаются на этапе анализа разрешений для получателя SMTP-сессии. Видно хватает триггера в smtpd_recipient_restrictions.

Поправьте, если что упустил/соврал/недопонял.


все круто, немного доработал скрипт до искомого. один вопрос, как восстановить отдельный ящик?)))) нужно какой то выборочный скрипт написать.

 

 Вот самый простой способ который я использовал. Хотя все тоже самое можно сделать одной строчкой в Zimbra CLI

 Если ящик был полностью удален нам потребуется создать учетную запись Zimbra заново со всеми атрибутами (Ф.И.О., настройки авторизации, участник рассылки и т.д.).   Только после этого мы можем восстановить все, что содержалось в этом ящике (контакты, письма, ежедневник, портфель и т.д.). Процедура следующая:  

1.0.Создаем новый почтовый ящик в Zimbra.

1.1.Для восстановления открываем почтовый ящик через web-интерфейс,  

1.2. Жмем пункт меню «Настройки».  

1.3.Находим «Импорт-Экспорт».  

1.4.Далее «обзор» и выбираем файл-архив(*.tgz) нужного нам ящика из ранее сделанного бэкапа.  

1.5.Выбираем метод импорта, дополнительные настройки, что импортируем.  

1.6.Импортируем. Проверяем все ли на месте.   Можно так же восстанавливать существующие ящики или просто вытягивать отдельные письма из архивов, открыв их в любом поддерживаемом архиваторе (например 7zip, winrar).    

 

 

Здравствуйте. Можно задать вопрос?

В связи с тем, что из-за установки ZCS на неRHEL версия ОС определяется как ***unknown***- не работает автообновления из web-админки. Кто-нибудь знает решение?

Centos 6.2_64bit, ZCS 7.1.3.

Спасибо!

Здравствуйте.

Ситуация такая. Приходит почта я ее помечаю как спам она переходит в папку спам, затем приходят письма от этих же адресов и они попадают в папку входящие. Как сделать так чтоб заранее помеченные письма как "спам" попадали в папку спам.

  Добрый день, не могу понять что не так... При бэкапе пишет opt/AdminScripts/zimbra_backup_allaccounts.sh: line17: /Backup/Mon/user@mydomain.lan.tgz: No such file or directory.   И так абсолютно со всеми пользователями. Zimbra 7 на Debian 5. И еще вопрос, вот наткнулся http://www.zimbra.com/products/download_opensource.html, это все что ли? vmware начинает убивать бесплатную зебру? может кто чего знает?

 

 

1.Проверьте переменную backup. Существует ли папка куда вы складируете бэкапы.

2.Удосужтесь полностью прочитать и перевести текст диалогового окна. А конкретно данной строчки -  I'd rather not fill in the form. Just take me to the download page

 На 2 - спасибо... Недосмотрел...

На 1 - папка существует, создавалась при первом запуске скрипта... Создал новую папку Backup в /opt/. Все разрешения на действия с папкой дал... В скрипте ее указал... Итог тот же... Несмотря на разрешения, в начале бэкапа прописывается, что доступ к папке запрещен... Не могу понять почему...

В таком случае рекомендую выполнить команду zmbox со всеми атрибутами непосредственно из под пользователя zimbra:

zmmailbox -z -m ящик@домен getRestURL "//?fmt=tgz" > /путь до бэкапа/имя_файла_бэкапа.tgz

 Еще возник такой вопрос... может кто сталкивался... Необходимо запретить некоторым пользователям отправку почты во вне, а оставить только переписку внутри компании... Как такое реализовать не могу найти... Заранее спасибо...

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

Когда зимбра спросила какое использовать имя хоста, я его менять не стал и оно осталось на уровне zimbra.mydomain.ru. Установка прошла успешно, вебморда работает и доступна отовсюду, но есть 1 проблема. Зимбра внутри себя создала домен @zimbra.mydomain.ru, соответственно учетки создаются такого вида: user@zimbra.mydomain.ru, а мне надо user@mydomain.ru как победить? 
 Да все проще некуда.
Выбери пунк домен и слева вверхнем углу создай новый домен какой тебе нужен. А этот используй для тестов всяких скриптов и тд и будет тебе счастье. У меня у самого такая история приключилась. На работу сервреа это никак не влияет.
 Доброго дня всем.
Имеется зимбра на xen сервере, настраивал другой человек.
может кто подскажет, как сделать так чтобы веб морда была доступна не толь мз локальной сети, но по внешнему адресу.
во время тестирования она работала, а потом ее отулючили, не сказав как включить обратно.
знаю что как связано с 0.0.0.0:443, а сейчас 10.20.0.20:443. вот как бы поменять?
заранее благодарен.
 А кто тебе мешает сделать проброс из вне? Напривер пусть у тебя внешний IP будет 99.99.99.99 сделай на шлюзе правило что при обращении на порт https://99.99.99.99:9999 он будет редиректить тебя на https://10.20.0.20:443 и будет тебе счастье. 
 То что в ВМ уже пробшен внешний айпи. Разобрался, надо было разрешить порт в iptables. Но все равно интересно что это за 0.0.0.0:443. П.С. разработчикам сайта, форма отправки комментария не сильно дружит с андроидом (например стрелками не могу перемещаться по тексту) Прошу прощения за ошибки в предыдущем комментарии.
Ну в cisco например запись 0.0.0.0 0.0.0.0 означает любой IP из любой под сети. Грубо говоря ваще любой IP адресс. Так что это запись может означать всё что угодно. Может быть означает доступ к зимбре по порту 443 с любого IP. Без понятия что это означает. Больше инфы бы было бы лучше.
 Да хочу добавить. Что нужно отключать не только sendmail если он у вас есть но также обезятельно надо сделать
chkconfig postfix off

но дело в том что при дальнейшей установки он у вас может опять ругаться на 25 порт. Поэтому для профилактики делаем вот так
/etc/init.d/postfix stop
/etc/init.d/sendmail stop

и после этого убеждаемся что нет никаких 25 порт listen
посмотреть можно от так
netstat -na

P.S. это то что касается centos 6.4 minimal rayg00n можно добавить это в сам мануал если хотишь канечно же.

Насколько я понял все письма с имеющими в теме spam отправляются автоматически в папку спам?
Например: spamТест письма