Как стать автором
Обновить

Комментарии 60

Также замечу (Столкнулся при внедрении jabbera). Должны быть подробные руководства. я поступил так, сцылка на программы. И к каждой пособие по регистрации (скриншоты с описанием) именно в этой программе. Плюс описание установки на мобильные платформы с такими же описаниями.
А эти мануалы сохранились? Я сам хотел написать тоже самое, рассмотрев все популярные клиенты.
Я совсем недавно в ЖЖ писал пост про настройку 5ти jabber-клиентов, с кратким описанием самих клиентов. Если интересно — могу дать линк. Ну или можно по ссылке из моего профиля в ЖЖ сходить.
По-моему лучше точный линк. Ну хотя бы для тех, кто наткнётся на этот пост через месяц-другой. :-)
Поправьте: «нам шифровать нечего».
Поправил, спасибо.
Если можно, немного поподробнее про SRV.
У меня DNS-хостинг без SRV. Правильно ли я понимаю, что сообщения от клиентов из внешних доменов не смогут дойти до моего сервера?
Если эти записи опциональны, то как тогда осуществляется роутинг между джаббер-серверами?
Все дойдет, не переживайте.

Просто jabber еще смотрит на SRV записи, что добавляет гибкости.

Но пользоваться этим или нет — право ваше.
Вообще, про проблемы с s2s-соединениями при отсутствии SRV-записей я довольно давно не слышал. В RFC написано, что если SRV-записей нет, то берется «обычная»[1] запись для домена. Например, для luser@example.org будут проверятся сначала SRV-записи, а потом A-записи для «example.org».

Но как минимум несколько раз я уже сталкивался с проблемами в клиенте при непрописанной SRV-записи, о чём я и написал. Конечно, они тривиально решаются и, кажется, вызваны тем, что клиент не полностью следует спецификации — но зачем лишние проблемы создавать? :-)

[1] A-запись или AAAA, если у вас IPv6. Возможно, еще может быть какое-то колдунство с CNAME — я уже точно не помню всех деталей «обычного» алгоритма резольвинга имён.
SRV записи необходимы когда адрес сервера jabber не совпадает с записью А,
таким образом вполне можем иметь, сайт на адресе A, почтовый сервер на адресе B, jabber-сервер на адресе C
Я знаю. Но клиент не резольвил A-запись, не найдя SRV.

Да и в конце концов, все же прописывают MX записи для почты но у меня есть подозрение, что они тоже не сильно MUST а SHOULD.
я хотел сказать, что в случае разных серверов SRV категорически необходимы. Возможно некоторые клиенты способны разрисовать и А записи при условии стандартных портов.
Но прописать записи в ДНС, если это позволено, всеже стоит
А ещё старые версии серверов jabber искали сервер по A-адресу jabber.domain.com, если его не было по адресу domain.com. Но это старые, сегодня так не работает.

На мой взгляд, SRV-записи — must have, даже если сервер находится по адресу A-записи.
P.S. помимо _xmpp-client._tcp SRV-записей есть еще несколько совсем уж опциональных вариантов (_im, _presence и т.п.) — подробнее сказано в RFC.
Так же как и MX запись, она не обязательна используеться A/AAAA запись домена. В случае с почтой правда CNAME не разрешенно использовать на этих записях
хорошая статья)
Ага, вместо очередного половинчатого HOWTO решил написать этакое дополнение к существующим :-)
А можно ли сделать отказоустойчивый jabber сервер, то есть кластер из нескольких серверов?

Например, jabber.ru:

Name: jabber.ru
Addresses: 213.180.203.18, 213.180.203.19

Это кластер или что-то другое? Для самопального jabber сервера вопрос постоянной работы стоит довольно остро, можно ли держать пару или больше серверов в разных датацентрах, чтобы это было прозрачно для пользователя?
ejabberd поддерживает кластеризацию, правда, этот вопрос не очень детально освещен.

Умеет ли он работать на двух разных площадках и что будет в случае brain-split — не знаю. Насколько остро вопрос стоит о кластеризации самопального jabber-сервера я, если честно, тоже не очень хорошо представляю. Мне не приходилось пока работать с серверами таких масштабов.
Да тут не в масштабах, а просто в отказоустойчивости — чтобы я был доступен в любой момент.
Если решение «для себя» — я бы положился на кластер гугля, благо google apps позволяют привязать свой домен. С другой стороны, у google нет многих приятных расширений jabber-а, например, не будут работать хранение букмарков и метаконтактов на стороне сервера.

Хотя, если честно, ACK-и подобные SMTP-шным, насколько я знаю, не являются MUST, соответственно, в настоящий момент о 100%-ой гарантии доставки сообщений говорить не приходится.

По статистике, проблемы на последней миле с стороны меня или моего собеседника бывают гораздо чаще, чем в s2s.
SRV записи как раз и помогут распределить нагрузку, ибо их можно указать несколько на разные адреса
Но ноды кластера всё равно должны знать друг о друге.
несомненно, я неточно выразился, SRV поможет распределить нагрузку по разным адресам
Надо, чтобы сервера ещё и синхронизировали свои базы. Теоретически это должно быть проще, чем для других протоколов.
Возможно, нам поможет ejabberd, который написан на эрланге и для которого «кластеризация» является фичей стандартной библиотеки, если не изменяет память.
Про сертификаты жестко. Пока что только у гмейла встречал валидный сертификат. Даже у jabber.ru всегда был самоподписанный.
Вы не правы — у jabber.ru сейчас сетрефикат подписан www.cacert.org
Вах. Неужели они разжились наконец таким добром. Похвально. Я просто уже давно ставлю опцию «Ignore ssl warnings» и потому все равно не замечаю предупреждений.
Да нет, cacert тоже бесплатно раздаёт сертификаты, правда им debian и centos изкоробки «доверяют», думаю, в windows cacert-овского root-а нет по-умолчанию.
Кто-нибудь может на пальцах объяснить, как получить сертификат для домена и куда его прикручивать в случае shared хостинга и Google Apps? Перерыл полинтернета, тыкался туда-сюда, получил сертификаты по той ссылке что вы дали а дальше-то что? Вот есть у меня 4 файла. Что с ними теперь делать? Интересует именно в контексте использования google apps. Кто-нибудь уже делал?
НЛО прилетело и опубликовало эту надпись здесь
А потому что в инструкциях пишут что-то типа «в вашем jabber-сервере добавьте что-то туда-то». Нет у меня своего jabber-сервера, есть только google apps. И при попытке подключения клиенты ругаются на отстутствие сертификата. А как сделать так, чтобы работал нормально gtalk на google apps как-то непонятно.
в багрепорте написано:
Got a response from a Google Talk engineer:
«We present a gmail.com cert for @gmail.com users. We cannot present certs for every hosted domain so the solution is to present the connection server cert 'talk.google.com'. Clients generally accept this.»


Также вот еще несколько обсуждений того же самого:
trac.adiumx.com/ticket/8787
adiumx.com/pipermail/adium-devl_adiumx.com/2008-January/004452.html
forum.psi-im.org/thread/2632

Если есть желание, можно еще почитать 15й пункт черновика RFC 3920bis.
Ну это всё я уже находил. Получается, решения нет? И jabber от google apps лучше не использовать?
Ну судя по ответу работника гугля — в текущий момент решения нет. Вообще, «правильный клиент» должен уметь кэшировать сертификат после того, как пользователь нажал «Я доверяю».

На самом деле гуглежаббер стоит использовать в одном случае — если жаль 10..20$/month на VDS со своим jabber-сервером или нет знакомого админа, который мог бы захостить (ejabberd поддерживает виртуальные хосты).
Почему? Например, из-за проблем с авторизацией (которые мешают использовать транспорты), например из-за отсутствия proxy (и, соответственно, проблем с передачей файлов из-за NAT-а) и server-side storage (которое не даёт использовать метаконтакты и букмарки).
Ну причин использования гугложабера несколько больше: это и интеграция в gmail и хранение истории на сервере, и единая адресная книга, да мало ли что ещё. Так что тут дело не в стоимости VDS, а в получении полного интегрированного решения.

Ну минусы там тоже есть, не спорю.
Да, хранение хистори — вещь. Веб-клиент лично мне нужен редко, а когда нужен — использую jwchat.org.
P.S. если надо, могу подумать о том чтоб сделать из своего ejabberd-а маленький jabber-хостинг, может быть получится решить проблему с SSL для виртуальных хостов в jabber.
Проблема в том, что сертификат проверяется для основного домена. Т.е. есть адрес tigrus@polosatus.ru. Даже если я выделю поддомен talk.polosatus.ru и он будет хостится где-то у вас, то проблема останется, запрашиваться будет сертификат для polosatus.ru, а не для talk.polosatus.ru.

От такая, панимаш, загогулина :)
Я знаю, просто в ejabberd есть возможность виртуальных хостов, т.е. сервер сможет выбрать нужный SSL-сертификат до начала SSL-сессии при использовании starttls.

Ну а делегировать polosatus.ru какому-то серверу можно через SRV-записи. Другой вопрос, что я не думаю, что вам настолько важна работа с SSL без warning-ов :-))
Я-то лично могу обойтись, но на другом хосте, где уже немало юзеров, как-то будет странно им объяснять, что «там вот будут варнинги, но вы не обращайте на них внимания» :)

Поэтому пока что я воздерживаюсь от того, чтобы начать агитировать там народ на использование жаббера на том сервере. А предлагать им заводить отдельную гуглопочту, например, при том, что у них уже есть аккаунт на google apps, с красивыми адресочками, как-то странно.
Ну если юзеров не больше 20, можно и попробовать поиграться с vhost-ами.

Если больше и/или с открытой регистрацией — не хочу на себя почём зря ответственность брать, публичных jabber-серверов и так хватает, в конце концов.
кстати, jabber 4го января исполнилось 10 лет :-)

Группа XMPP была сформирована в 2002 году и 2004 вышел первый RFC. Если бы ему 10 лет было я думаю многие уже на него переехали, чем сейчас на самом деле.
Комитет — да, в 2002ом, но с другой стороны
Jer released the first Jabber code on January 4, 1999
Я считаю что более правильно 2004 его год рождения ибо он тогда стал достоянием общественности — открытым стандартом.
Это спорный вопрос. Например, за «день рождения» Linux считают первый публичный релиз кода… А «день программиста» вообще чуть ли не три раза в год празднуют :-)
Статья хорошая, для правильной настройки нового сервера самое то. Правда у меня всё уже настроено, но лишний раз убедиться что всё правильно — не лишнее ;)
Восновном свой сервер использую как транспорт в ICQ (pyicqt 0.8.1.2) и никак не могу победить проблему с авторизацией моего транспорта в аккаунте Gmail: каждый раз когда выхожу в онлайн в gmail — приходит запрос авторизации от моего транспорта и результаты авторизации до моего сервера не доходят, он так и висит неавторизованным. В результате через вёб-интерфейс вылезти в аську не получается.
Но радует то что такой неудачник не я один: www.google.com/support/forum/p/Talk/thread?fid=28ea57ad8c3ad59100046151b9a94ffa&hl=en
На данный момент у меня самоподписанный SSL-сертификат. Хотелось бы спросить у более опытных, может ли помочь установка сертификата, подписанного ICA XMPP Foundation, или всё же нужно ждать пока Gmail поправит свой баг?
Есть здесь кто-нибудь с таким сертификатом — работает ли у вас связка с gmail?
Я предполагаемую причину проблем с транспортом обрисовал в этом багрепорте.

Да, это очень похоже на баг гмэйла, но совершенно не ясно, куда о нём сообщать… Кстати до яндекса в подобной ситуации (s2s шифрованный не работал при определенных условиях) год назад достучаться вполне получилось :-)
Я тоже там прокамментил в багрепорте. Но к pyicqt этот баг отношения мало имеет, скорее feature request надо было открывать ;) Данный баг присутствует ис msn-шлюзами и с другими тоже. Судя по всему нужно сообщать разработчикам Google Talk, т.к. всё же исходя из многочисленных тестов всё сводится к тому, что проблема именно в их сервере. Только вот в многочисленных сервисах гугла никак не найду как с этими разработчиками сконтактировать напрямую или открыть на них баг-репорт.
Вот здесь www.google.com/support/forum/p/Talk/thread?tid=28ea57ad8c3ad591&hl=en сказано что уже много багрепортов отослано, но гугл пока играет в молчанку; правда ссылок на эти багрепорты в каком-нибудь багтрекере чтобы быть в курсе событий — я не нашёл. Да и вообще непонятно — есть ли такой багтрекер у гугла…
Также нашёл инфу что такой же баг был уже в конце 2007 года и его устранили достаточно быстро.
Вообще, конечно, странное поведение с их стороны, уже 3 месяца игнорировать проблему, которая уже год назад возникала и была решена. Или это у них ежегодная профилактика? ;)
Ну да, у меня были подозрения, что Murz == MurzNN :-)
Баг-то, почти наверное с gmail-ом.

С яндексовскими жаббер-админиами я контактировал так: в блоге Ивана Сагалаева (который softwaremaniac и работает в яндексе) нашел одного из тех, кто занимается их OpenID, подробно написал про проблему с s2s с просьбой форварднуть админам — через день мне админ постучал в jabber и узнал оставшиеся детали. И еще через пару дней проблему устранили.

Яндекс, конечно, поменьше гугля будет, но можно и с гуглём попробовать поступить подобным образом. Мало ли на свете google employees :-)
Да что-то мой ник «Murz» везде позанимали, пришлось добавить пару букв уникальности (аббревиатура города где я живу) чтобы регаться там где уже заняли основной.
Хорошая идея через сотрудников гугла сконтактировать! Попробую поискать хотя бы в хабре кого-либо из гугла, может они продвинут этот баг ближе к топу ;)
Сертификат можно получить гораздо дешевле чем 100 долларов, а зачастую и вообще нахаляву.
Тоже верно, просто сертификат от XMPP ICA подписан Startcom-ом, который, в отличие от CaCert есть в заметно большем числе систем «из коробки».

Других бесплатных и при этом популярных CA мне не известно.
www.instantssl.com/promo/free-ssl-certificate.html

Вот тут дают халявный, правда каждые 3 месяца надо проделвать. Сам пользусь платным от этой же конторы — всеми распознаётся.
Славно, спасибо больше за информацию.
Хотя, для jabber себе пока оставлю от XMPP ICA — он на год выдаётся :-)
Безусловно :)
спасибо, отличая статья.
*отличная :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации