Пользователь
0,0
рейтинг
6 августа 2010 в 17:56

Администрирование → Корпоративный Jabber сервер: догнать и перегнать Google

Я думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.

В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.

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

Почтовый сервер


Для начала вам потребуется почтовый сервер. Разумным выбором MTA является Postfix, как один из самых модульных, гибких и при этом надёжных. Для доставки почты конечным получателям без вариантов необходим IMAP сервер, в качестве которого я использую Dovecot.

Dovecot позволяет легко использовать в качестве базы пользователей практически любое стандартное хранилище. Я, например, использую AD. Кроме того, Dovecot предоставляет сторонним приложениям возможность авторизовываться через себя, в частности, это умеет делать Postfix. Таким образом получается весьма удобная схема: за общение с БД пользователей отвечает Dovecot, а все остальные компоненты системы просто обращаются к нему за проверкой авторизации. Преимущество очевидно: захотелось вам поменять БД (например, отказаться от AD в пользу OpenLDAP) — ничего перенастраивать не надо, достаточно просто направить Dovecot на новое хранилище.

Как настраивать связку Dovecot+Postfix написано в документации к этим программам. В результате настройки я лично обзавёлся SMTP и IMAP серверами, авторизовываются на которых пользователи по доменному логину/паролю. Кстати, у Dovecot и Postfix очень хорошая документация — это тоже немаловажное преимущество этих продуктов. Поэтому уверен, что с настройкой этой связки проблем возникнуть не должно.

Jabber сервер


Осталось дело за малым: надо прикрутить к уже имеющейся почтовой системе Jabber сервер. Сделать это до смешного элементарно. Для начала потребуется установить ejabberd. Почему его? Хотя бы потому, что он самый гибкий. О богатых возможностях этого продукта написана масса статей, поэтому перейду сразу к организации авторизации ejabberd через Dovecot. К всеобщему счастью ejabberd поддерживает внешнюю авторизацию, и всё, что нужно сделать — это написать скрипт проверки пользовательских данных через Dovecot.

Небольшое отступление: внешние механизмы авторизации через Dovecot работают через два UNIX сокета, создаваемых Dovecot. Параметры этих сокетов указываются в конфиге Dovecot, подробней про них можно почитать на официальной вики.

Порывшись немного в интернете я нашёл такой вот фрукт: http://search.cpan.org/~sasha/Authen-SASL-Authd-0.04/lib/Authen/SASL/Authd.pm

Нагло потырив из него кода и добавив необходимое для ejabberd поведение получил конечный вариант:

#!/usr/bin/perl

use 5.010;
use IO::Socket::UNIX;
use IO::Select;
use MIME::Base64 qw(encode_base64);

# Сокеты Dovecot
$dovecot_auth_master = '/var/run/dovecot/auth-master';
$dovecot_auth_client = '/var/spool/postfix/private/auth-client';

sub read_until {
        my ($sock, $re, $timeout) = @_;
        my $sel = new IO::Select($sock);
        my $result = '';
        while ($result !~ /$re/m) {
                $sel->can_read($timeout) or die "Timed out while waiting for response";
                defined recv($sock, my $buf, 256, 0) or die 'Error while reading response';
                $result .= $buf;
        }
        return $result;
}

sub dovecot_auth {

        my ($login, $passwd) = @_;

        utf8::encode($login);
        utf8::encode($passwd);
       
        my $base64 = encode_base64("\0$login\0$passwd",'');

        my $service = "ejabberd";
        my $timeout = 3;

        my $sock = new IO::Socket::UNIX(Type => SOCK_STREAM, Peer => $dovecot_auth_client) or die;

        my $resp = read_until($sock,'DONE',$timeout);
       
        die unless $resp =~ /^VERSION\t1\t\d+$/m;
        die unless $resp =~ /^MECH\tPLAIN/m;
               
        $sock->send("VERSION\t1\t0\nCPID\t$$\nAUTH\t1\tPLAIN\tservice=$service\tsecured\tresp=$base64\n") or die;

        $resp = read_until($sock,'\n',$timeout);

        $sock->close;
       
        return $resp =~ /OK/;
}

sub dovecot_user {
       
        my $login = shift @_;
       
        utf8::encode($login);
       
        my $service = "ejabberd";
        my $timeout = 3;
       
        my $sock = new IO::Socket::UNIX(Type => SOCK_STREAM, Peer => $dovecot_auth_master) or die;
       
        my $resp = read_until($sock,'VERSION',$timeout);
       
        die unless $resp =~ /^VERSION\t1\t\d+$/m;
       
        $sock->send("VERSION\t1\t0\nUSER\t1\t$login\tservice=$service\tsecured\n") or die;
       
        $resp = read_until($sock,'\n',$timeout);

        $sock->close;
       
        return $resp =~ /USER/;
}

# Reading information from ejabberd
while(1) {
        my $nread = sysread STDIN, my $buf, 2;
        unless ($nread == 2) { exit }
        my $len = unpack "n", $buf;
        $nread = sysread STDIN, $buf, $len;
       
        my ($op,$user,$domain,$passwd) = split /:/, $buf;

        # Filter dangerous characters
        $user =~ s/[."\n\r'\$`]//g;
        $passwd =~ s/[."\n\r'\$`]//g;
        $domain =~ s/[."\n\r'\$`]//g;
       
        my $result = 0;
        if ($op =~ /auth/i) {
                $result = dovecot_auth($user, $passwd) ? 1 : 0;
        } elsif ($op =~ /isuser/i) {
                $result = dovecot_user($user) ? 1 : 0;
        }
       
        my $out = pack "nn", 2, $result;
        syswrite STDOUT, $out;
}

Небольшое замечание: исходный модуль из CPAN в данный момент вряд ли заработает. Для корректного взаимодействия с Dovecot при вызове функции encode_base64 необходимо указывать в качестве второго аргумента пустую строку. В представленном выше скрипте это конечно учтено.

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

Осталось добавить в конфиг ejabberd наш скрипт:
{auth_method, external}.
{extauth_program, "/etc/ejabberd/auth.pl"}.

Собственно, на этом содержательная часть заканчивается. Теперь кроме почты пользователи смогут заходить под своими доменными логинами ещё и в Jabber. А если при настройке почтовой системы вы не сильно извращались, то JID и email у каждого пользователя будут совпадать и выглядеть как username@domain.com.

Однако осталось ещё догнать и перегнать Google. Чтож, это сделать очень просто. Достаточно совершенно стандартным способом включить нужные функции в ejabberd. Вот самые интересные с моей точки зрения возможности:

  • Конференции, они же MUC. За их поддержку отвечает стандартный модуль mod_muc, настраивать нужно разве что желаемые параметры по умолчанию.
  • Логгирование конференций. За это отвечает модуль mod_muc_log. Он кладёт все логи конференций в одну папочку в виде HTML файликов, остаётся только натравить на эту папочку Apache и разрешить доступ к полученному ресурсу только из локальной сети.
  • Логгирование личной переписки. Для включения этой возможности вам потребуется доустановить модуль mod_log_chat, который будет складывать все логи в одну папку опять-таки, в виде HTML файликов. Дальше можно написать простейший скрипт, который периодически будет сканировать эту папку и рассылать нужные файлы по нужным адресам электронной почты. Таким образом получим сходный с Google функционал.
  • Общие ростеры. Крайне полезная возможность в рамках компании. За неё отвечает mod_shared_rosters. Позволяет гибко управлять ростерами пользователей, добавляя в них целые группы.
  • Поддержка оффлайновых сообщений. Просто не отключайте её (mod_offline если что)
  • Транспорты. Я думаю, этот пункт в комментариях не нуждается. Вы можете предоставить своим сотрудникам лёгкий способ общаться через любую существующую сеть IM.

На всякий случай обращу ваше внимание на то, что т.к. мы настраивали совмещённую с почтой (и в моём случае даже с AD) систему авторизации, то всё, связанное с регистрацией, на Jabber сервере стоит отключить. Например, тот же mod_register. Просто чтоб глаза не мозолил.

Резюме


Вот так простым скриптом можно связать воедино почту и Jabber, при этом оставив себе практически неограниченную свободу настройки всего и вся в рамках используемых продуктов. А поскольку были использованы одни из самых функциональных, гибких и надёжных инструментов в своих областях, то фактически получается чуть ли не самая мощная система из всех возможных в рамках поставленной задачи (почта+IM для корпоративного общения). Никакие интегрированные решение вроде Exchange и уж тем более Google Apps конечно и близко не могут обеспечить подобного функционала. При этом с точки зрения пользователя полученная система абсолютно прозрачна и максимально проста в использовании, да и с точки зрения администратора тоже. Разве что администратору надо разобраться во всём при настройке (и правильно всё настроить!), а дальнейшая поддержка чуть менее чем элементарна.

P.S. Если будет кому-нибудь интересно — могу рассказать ещё как выжать много чего интересного из связки Dovecot+Postfix (IMAP ACL, админский прямой доступ к любому ящику из любого клиента, рассылки, общие папки, подписки, делегирование прав самими пользователями etc) и как организовать гибкую настройку любых параметров почтового клиента Thunderbird через сервер, избавив пользователей от необходимости (а при желании и возможности) вообще что-либо изменять в своём клиенте.
Вадим Неворотин @Malamut
карма
124,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (81)

  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      С документами всё сложней по понятным причинам — веб-версию ОО ещё никто не написал и ничего близко похожего тоже((( Ждём с нетерпением, а пока лично я пользуюсь таки Google Apps для своего небольшого доменчика. Эта же статья написана исходя из опыта работы в организации, которым веб-доступ к документам и даром не нужен.
      • 0
        Ну есть lotus notes, для документооборота вещь весьма замечательная.
        • 0
          Есть веб версия того же мелкомягковского офиса, который интегрируется с аутглюком. Но для этого всего нужен какой нють поставщик служб эксчендж.
          В принципе, как костыль, можно заюзать fengoffice(opengoo в прошлом), в котором есть даже история правки документа, но вот с таблицами там совсем беда…
        • 0
          А еще есть есть Documentum и, опять же, как свободная альтернатива Alfresco.
          • 0
            а если попробовать поюзать NauDoc?
            • 0
              Можно и мегаплан попробовать коробочный, но эти вещи не большое количество пользователей не рассчитаны, да еще и платные.
              • 0
                *на небольшое
        • +1
          Ой-ой. Lotus мощен, но вот удобство и логичность его местами сильно страдает…
    • –1
      ALFRESCO+CMIS+SHAREPOINT
      • 0
        Я дико извиняюсь, а зачем к ALFRESCO еще SHAREPOINT? Да и CMIS как то то же не очень ясно.
        И все это для управления контентом в организации, но явно не для редактирования оного.
        • 0
          Для прямой работы из офисных пакетов через WebDav, SHAREPOINT сервер альфреско хорошо эмулирует.
  • 0
    замечательно!

    если настройки всего это делаются через консоль, я бы очень обрадовался, увидев какой-нибудь скрипт, который бы разворачивал данный комплект на сервере =)

    что-то вроде:

    sudo apt-get install google-apps-local

    =) вот это сказка была бы!
    • 0
      Да без проблем, но я лично противник такого рода скриптов. Ибо надо хоть чуть-чуть разбираться в используемых продуктах, а для этого всё надо настроить ручками. Благо в данном конкретном случае это делает минут за 20. Ну плюс чтение документации по Dovecot, Postfix и ejabberd)))
  • +1
    Аналогичная схема, только для жаббера использую prosody, мигрировав с ejabberd. Почему? Erlang я едва читаю, писать вообще не выходит, а с lua намного проще, и внутренняя структура prosody достаточно понятна. Он отлично работает с Cyrus SASL – библиотекой, реализующей авторизацию по сети (поддерживает много разных плюшек, не только LDAP, но и керберос прикрутить достаточно просто).
    • 0
      А я использую Eserv/4, там всё описанное (SMTP+IMAP+Chat) есть, причем изначально интегрированное (т.к. от одного разработчика), плюс там же встроенный LDAP для общей адресной книги, веб-интерфейс к почте (webmail) и общим IMAP-папкам (в вебе они прикидываются форумами), плюс wiki и т.д.
  • 0
    Сопостовим ли mod_log_chat c bandersnatch? В плане, он перехватывает только локальные чаты или внешние+транспорты тоже?
    • 0
      Не знаю, IRC транспорт точно логгирует, но он встроенный в ejabberd, другие я не прикручивал.
  • 0
    А как и историей диалогов? Их можно хранить на сервере (в почтовом ящике? внешнее хранилище?)? Т.е. смысл в том, что бы можно было просмотреть историю с любого клиента и не приходилось бы делать импорт/экспорт истории в случае когда пришлось заходить с чужого компьютера.
    • 0
      Вроде был JEP для Message Archival and retrieval, но не знаю в каком он состоянии, и какие клиенты его поддерживают…
      • 0
        Поддерживать-то его кое-кто поддерживает, но это не торт.
        • 0
          Тот-же bandersnatch вполне неплох, с веб-интерфейсом… Но у него любимая проблема долгоиграющих скриптов — MySQL Server has gone away…
          • 0
            Я вот про bandersnatch если честно впервые слышу. Постараюсь на досуге попробовать покрутить его, спасибо!
    • 0
      История диалогов падает на почтовый ящик. Как и у гугла. См. ремарку про mod_log_chat в статье.
  • +1
    Собственно вопрос: а причем здесь гугл?

    • 0
      Интеграция почты и джаббера, не?
      • 0
        Если высылку логов на почту Вы называете интеграцией — тогда да.
        В остальном — только конференции да шаред ростер дают что-то большее чем и так есть у гугла.
        • 0
          Ну во-первых сильно большее. Во-вторых ещё транспорты. А в третьих интеграция — это скорей общие логины и JID с email.
          • 0
            >>Ну во-первых сильно большее
            Так в чём большее? В чём я увидел — сказал, а что ещё то?

            >>Во-вторых ещё транспорты.
            Сомнительно, хотя кому-то будет полезно.

            >>А в третьих интеграция — это скорей общие логины и JID с email.
            Мда… Я не буду говорить что в AD это реализуемо без напильника?
            • 0
              Реализуемо. И что? Напильник — это не так и плохо, если им уметь пользоваться. В данном случае элементарными действиями получаем более гибкую и мощную систему, чем AD c ексом. Почему это должно быть плохо?
              • 0
                а) не элементарными, совершенно.
                б) в чём бОльшая мощность — ни разу небыло продемонстрированно. Гибкость — возможно, но и то очень спорно с точки зрения бизнеса.
                в) а я не говорю что плохо, я говорю что это в Win экосистеме есть изначально, и если говорится что «У нас JID, e-mail и логин совпадают» и при этом сравнивается с AD+EXC, то надо уточнить что там это тоже есть (by default или с минимальными телодвижениями если не с нуля поднимать).
                • 0
                  а) кому как
                  б) В гораздо большем просторе для настройки. Можно адаптировать под практически любые задачи.
                  в) Есть. Вопрос только в том, насколько разумно использовать решения на базе вин, которые жёстко завязаны друг на друга и которые вы при всём желании не сможете настроить под нестандартные задачи, когда можно потратить на пару дней больше времени на развёртывание и сделать действительно универсальную систему с таким же лёгким обслуживанием и как минимум не худшей стабильностью. Я считаю что абсолютно неразумно. Поэтому всё, что я могу сделать на базе универсальных решений, я делаю на базе этих самых универсальных решений. Ну а где не обойтись без продуктов МС — там и только там использую продукты МС.
                  • 0
                    а) тебе — возможно, у тебя я так посмотрю времени свободного много, чтобы с нуля изобретать и внедрять это всё хозяйство. у меня — нет.
                    б+в) утром деньги — вечером стулья. в смысле сначала покажи мне эти задачи, а потом говори что это можно на эксе сделать, а это нет, только на такой-то связке. А то можно по аналогии сказать что ОКА — универсальный автомобиль, который можно адаптировать под практически любые задачи, нужно только много денег и времени.

                    А насчёт универсальности… вот ты уйдёшь, причём, тьфу-тьфу, не по своей воле (ну там сосулька на голову или ещё какая ...). Ты гарантируешь что ЛЮБОЙ админ сможет потом эту систему поддерживать?
                    • 0
                      Я даже написал документацию. Гарантирую, что любой разбирающийся в Postfix, Dovecot и Linux в целом админ легко разберётся.

                      По поводу задач — уже показывал: элементарно — хотите вы использвоать не AD в качестве БД пользователей — и что вам даст екс?
                      • 0
                        Да, невозможно, но у меня один вопрос, а зачем мне не АД база для Exc?
                        В чём я получу преимущество, если у меня будет не AD а OpenLDAP например?
                        • 0
                          Задача — решение. Предлагаемое мной решение универсально, вы же предлагаете использовать узкоспециализированный продукт, к тому же ещё уступающий по функционалу во многих местах. Использовать БД не от AD может потребоваться в совершенно различных ситуациях. Например, при организации совмещённой с Web инфраструктуры (только умоляю, не предлагайте делать ещё и вебсервера на продуктах МС). У нас обычно как — сначала покупают весь стек приложений от МС, а потом извращаются, пытаясь прикрутить к нему свои собственные разработки и нужные программы. Я же могу сделать так, как мне удобно, и потом не париться, что у меня полетит почта к чертям или ещё что.
  • 0
    в качестве jabber сервера вполне неплох openfire www.igniterealtime.org/projects/openfire/
    • –1
      Подскажите, чем отличается openfire от ejabberd. Можно ли еджабберд на винду поставить?
    • 0
      Неплох и правда. Собственно наверно не хуже ejabberd. Не знаю правда как там с гибкой настройкой авторизации.
      • 0
        С авторизацией там нормально, но вот памяти жрет, мама не горюй, ява все же. У меня на работе на 40 сотрудников openfire съедает примерно 160 метров (не оптимизировано и 2003 сервер) мне не критично, но кого то может не обрадовать.
        • 0
          Да уж))) У меня вся почта на 256 крутится (Dovecot+Postfix+Ejabberd+Apache для конфигурялки Thunderbird и RoundCube)
  • +3
    Ну, следующим шагом надо все это дело интегрировать с Asterisk'ом. :)
  • 0
    меня все время интересует вопрос в подобных связках с интеграцией с АД:
    а как проходит смена пароля? пользователь же заблокирует свой аккаунт при попытке присоединиться xmpp/smtp/imap-клиентом сразу после смены пароля
    • 0
      Меняешь пароль и всё через AD. При следующем заходе все клиенты (IMAP и Jabber) дружно просят ввести пароль — вводишь новый и вперёд.
      • 0
        после каждой смены пароля пользователя получаем 2 инцидента: на неподходящий пароль в джаббере и неподходящий пароль в почтовом клиенте. Конечно, каким-то пользователям можно дать документацию, объяснить что надо забивать тот же пароль, но некоторые будут жать «try again» раз 10, пока не заблокируют свою учетку.
    • 0
      В нормальных условиях у клиента SSO и не имеет значения, какой у юзверя пароль. Единственное исключение — наступление обязательной смены пароля (по политике или через администратора, в ADUC выраженная как галочка «Требовать смены пароля при следующем входе в систему»), в этих условиях у пользователя пароль ещё старый, но с ним уже авторизовываться не дают.

      Если SSO нет — то да, «перебор паролей» -> блокировка.
      • 0
        что такое sso? kerberos или ntlm? я не знаю ни одного почтового или джаббер клиента с поддержкой или того или этого
        • 0
          SSO — Single Sign-On, т.е. единый вход, пользователь один раз представился системе — и дальше его везде пускает без лишних запросов тех же самых учётных данных.
          И то, и другое. А точнее говоря — вместе, т.к. это всего лишь механизмы.

          Клиенты умеющие SSO:
          Почта — Microsoft Outlook при работе с Microsoft Exchange.
          Джаббер — Openfire Spark либо Pandion с NTLM патчём либо Citron IM либо Pidgin с патчем (Spark и Pandion лично тестированны и использовались в продакшене) на Openfire Server.

          ЗЫ: Веб-интерфейс Exchange тоже можно настроить Windows-аутентификацию, так что при заходе NTLM-совместимым браузером на адрес веб-интерфейса будет автоматом авторизовывать и впускать в ящик.
          • 0
            я не готов на тысяче пользователей разворачивать разные «патчи», что бы потом всем отделом ловить глюки.
            оулук и эксченьдж — это mapi, а статься про smtp и pop3 (imap)
            • 0
              Патчи — у отдельных клиентов неумеющих этого изначально, приведены для «полноты картины». Spark NTLM имеет из коробки.

              Ну извините, меня и кучу организаций, и MAPI устраивает, а вот pop3 с imap — нет =)
          • 0
            Вопрос: а как ваше SSO заработает с ноута шефа из-за границы, на котором стоит Ubuntu? Не. это всё конечно круто, MAPI там и всё такое. Но полное отсутствие универсальности подобных решений немного удручает.
  • 0
    эх. самое замечательное в ejabberd — это его чудесный конфиг.
    • 0
      Чудесный! Я первый раз увидел — прифигел))) Но тем, кто знает Erlang, наверно хорошо.
      • 0
        я о том-же. не понимаю, почему нельзя было сделать в общем стиле. ведь многие конфиги похожи по синтаксису. а тут срах господень.
        • 0
          Красивое слово «срах» — надо запомнить!
        • 0
          Не понимаю вашего непонимания. Я ничегошеньки не понимаю в Эрланге, но поправить конфиг, используя примеры из руководства, — проще простого.
  • 0
    он предоставляется as is во-первых
    Это за бесплатно AS IS, а за деньги — SLA на 99,9%
    • 0
      SLA-то SLA, но вы всё равно ограничены предоставляемым функционалом. А он на фоне собственных серверов небогат. Хотя документики конечно притягивают.
      • 0
        «Ограничены представляемым функционалом» и «AS IS» две большие разницы.
  • 0
    Гугл чем ещё хорош, там все может сделать неадмин, то есть малоподготовленный человек. Зайти, кликнуть мышкой, ввести имя нового пользователя и вперед.
    В случае с Линуксом, немного сложнее. Хотя тут все в AD, тоже мышкой :)
  • 0
    SSO настроить можно? А то я, когда выбирал Jabber-сервер, не нашёл, как сделать. Пришлось Openfire ставить, к нему NTLM есть.
    • –1
      А SSO между чем и чем? И много жаббер клиентов это будут поддерживать?
      • 0
        Между клиентами и AD. NTLM авторизацию поддерживают как минимум четыре. Волне достаточно одного. Настраивать отдельно каждый клиент для нескольких сотен работников — не самое интересное занятие.
        • –1
          Хм, а зачем настраивать? Говоришь просто, что логин и пароль как в домене и всё.
  • 0
    > Никакие интегрированные решение вроде Exchange и уж тем более Google Apps конечно и близко не могут обеспечить подобного функционала.
    • 0
      Прямо так уж и не могут? Exchange + Office Communication Server таки из коробки в AD интегрированы и дюже функциональны. А если ещё и Sharepoint прикрутить, то будет и общая работа с документами.
      • 0
        Извините, это просто смешно сравнивать XMPP и майкрософтовский мессенджер. Равно как и Exchange и Postfix+Dovecot. Решения от MS обладают одним огромным плюсом — интегрированностью, который выливается в самый главный их минус — абсолютную негибкость. Postfix в разы круче Exchange SMTP, Dovecot — Exchange IMAP, а Ejabberd — Office Communication Server. Другое дело чтобы собрать на основе всего этого целостную систему — надо приложить усилия, в то время как продукты от MS просто поставил и они работают (пока не упадут). Я лично предпочитаю более качественные и надёжные продукты, благо я умею с ними работать.
        • 0
          Ну да, вот так сразу: «в разы круче», «абсолютная негибкость», «смешно сравнивать».
          • 0
            Да, а что? У меня сейчас на работе параллельно стоит и то, и другое. Наглядно могу сравнивать. Недавно на этом вот ресурсе спорил с одним виндовым админом по поводу ексченджа, на вопрос как фильтровать спам он предложил использовать RBL. И ведь правда, по другому екс не умеет. А постфикс из коробки фильтрует при правильной настройке практически весь спам (естественно без единого RBL), плюс есть же ещё спамассасин. IMAP от екса не умеет даже IMAP ACL плюс обладает рядом специфических особенностей реализации. Ну а сравнивать винмессенджер и XMPP — это вообще бесполезно. Так что и правда — в целом сравнивать смешно. А негибкость — ну так попробуйте прикрутить екс к любой отличной от AD БД пользователей. Даже с такой элементарной задачей у вас не получится справится, не говоря уже о добавлении собственных фильтров при приёме писем, прикручивании сторонних механизмов хранения и т.д. и т.п.
            • 0
              >>Недавно на этом вот ресурсе спорил с одним виндовым админом по поводу ексченджа, на вопрос как фильтровать спам он предложил использовать RBL. И ведь правда, по другому екс не умеет
              А ты не полагайся на мнение других, а то и опозорится можно.
              Ещё 2003 имел в своём составе IMF, в 2007 и выше фильтров вполне достаточно (в том числе можно сделать чтобы EDGE сервер понимал желания пользователей по поводу white-list'инга).
              • 0
                а что такое IMF на уровне SMTP протокола, не подскажете? Я вот в Postfix настраиваю всё по учебнику: проверка A или MX записи для FQDN из HELO, проверка PTR записи и грейлистинг. Что из этого умеет екс? Где в нём настроить грейлистинг, где включить проверку обратной записи для хоста?
                • 0
                  Вот здесь вкратце описано что где.
                  www.msexchange.org/articles_tutorials/exchange-server-2007/security-message-hygiene/exchange-server-2007-spam-filtering-features-without-using-exchange-server-2007-edge-server.html
                  (на случай если парсер лох, вот)
                  Грейлистинга по дефолту нет, и поскольку у меня никогда не интересовало его включения не скажу где взять, но слышал что есть.

                  И кстати, 2003 или 2007/2010?
                  • 0
                    2003. Ничего интересного там не написано. Грейлистинг есть сторонний. ЕМНИП даже бесплатный. Но вот умной фильтрации по SMTP заголовкам нет. Ни в 2003, ни в 2007. В любом случае перегнать или хотя бы догнать Postfix у екса не получится просто из-за того, что постфикс умеет всё. А екс из-за своей галочконаправленности далеко нет.
                    • 0
                      >> перегнать или хотя бы догнать Postfix у екса не получится просто из-за того, что постфикс умеет всё
                      Давай поймаю на слове?
                      Умеет Postfix веб-интерфейс для почты? Нет, не связкой с чем нибудь, а сам?
                      Умеет Postfix работать с клиентами через HTTPS?
                      Умеет Postfix работать с ATC хотя бы как часть роли UM у Exc2007/10?
                      Причем сам?

                      Нет, и никогда не будет, потому что PF — это только MTA, Exc — это Messaging and collaborative solution с основным закосом на MTA. Это разные вещи, и то что PF умеет бОльше по фильтрации спама не делает его лучше Экса.

                      Фильтрация по заголовкам там кстати есть, Reputation filtering, нет только управления этим акромя слайдера, о чём многие пинают МС.

                      И ещё, не надо судить о 2007/2010 эксе по своему опыту работы с 2003 эксом, это разные продукты.
                      • 0
                        Postfix и правда MTA, весь остальной функционал прикручивается соотв. продуктами. Есть и веб-морда (кстати, опять-таки очень функциональная) в количестве минимум 2 отличных штука, есть и АТС (астериск), HTTPS что такое не понял, IMAPS и HTTPS для веб-морды пожалуйста, а письма по HTTPS передавать элементарно нет и не может возникнуть необходимости. Юникс вей — одна задача — один продукт, но который решает задачу полностью. Postfix, Dovecot, Asterisk — это лидеры по качеству и возможностям в своих областях. Да, их надо уметь настраивать и ещё и интегрировать друг с другом. Зато разобравшись с ними можно во-первых построить максимально удовлетворяющую вашим запросам систему, а во вторых забыть про какие-то ограничения и проблемы с почтой (АТС).
            • 0
              Malamut> А постфикс из коробки фильтрует при правильной настройке практически весь спам (естественно без единого RBL)

              А что вы против RBL имеете? CBL и BRBL — хорошие RBL.

              И что за настройка Postfix фильтрует практически весь спам? Наверное домен молодой, не засвеченный, и спамеры пока попадаются глупые. А со временем придётся поставить хотя бы SpamAssassin (не лучший вариант, но под линуксом с хорошими спам-фильтрами туго).
              • 0
                Отвечу, так и быть:
                проверяем сначала на FQDN HELO запрос, затем проверяем существование A или MX записи для хоста из HELO, затем проверяем наличие и резолв куда надо обратных записей, затем посылаем отправителю встречный запрос с целью проверить существование обратного адреса ну а затем грейлистинг. При потоке 5 спамписем в минуту — около 10 за день просачивается. RBL оставлю без комментариев, контекстные фильтры, как вы можете увидеть, тоже не применяю. И чем спамассасин не угодил — не знаю, все юзают и все довольны.
  • 0
    я когда-то использовал ejabberd. Но после какого-то очередного обновления он просто перестал запускаться. Я не смог разобраться, потому что Эрланга не понимаю. Долго переписывался с разработчиком — так и не заработало. Вывод: из свободного программного обеспечения желательно ставить то, что ты хоть примерно сможешь понять.
    Пожалуйста, напишите, как в Давкоте сделать админский прямой доступ к любому ящику из любого клиента и вообще побольше всего про Давкот
    • 0
      Честно говоря я думаю, что проблема была в БД этого ejabberd. Она капризная немного. Поэтому бекапы — наше всё. А сам по себе же ejabberd работает без проблем. Плюс хоть его логи и нечитаемы совсем, но читать их всё же при ошибках рекомендуется. Обычно можно подчерпнуть много интересного.
      Уже пишу..))

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