что такое джаббер и как им пользоваться
Что такое джаббер и как им пользоваться
XMPP — Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber (джа́ббер (англ. болтовня, трёп; тарабарщина) — это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близкому к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.
В отличие от коммерческих систем мгновенных сообщений, таких, как AIM, ICQ, MSN и Yahoo, XMPP является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенных сообщений, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как Google Talk, LiveJournal и Gizmo5.
В отличие от других интернет-пейджеров, джаббер больше похож на электронную почту:
• нет нумерации, есть произвольные имена
• джаббер-сервер может запустить любой
• у одного сервера может быть несколько имён (алиасов)
• каждый сервер может свободно общаться с каждым
• возможно безопасное подключение к серверу
• возможно шифрование отправляемых сообщений на уровне клиента
• возможно хранение всей истории чата на сервере
• есть веб-интерфейс
• возможно создание vCard визиток
• подтверждение доставки сообщения
В то же время, джаббер унаследовал некоторые приятные черты чатов:
• отображение статуса собеседника (в т.ч. расширенные статусы)
• многопользовательские комнаты («конференции»)
• боты полезной функциональности
Обзор Jabber клиентов под Windows: _http://habrahabr.ru/blogs/jabber/50776/
Для того, чтобы воспользоваться Jabber, необходимо иметь учётную запись на сервере. Таковую вы можете получить на следующих серверах (список серверов с графическим отображением поддерживаемых транспортов): _http://jabberworld.info/Список_работающих_публичных_серверов_Jabber
В: Как надо произносить «Jabber»?
О: Джаббер.
В: Как зарегистрироваться на сайте? Как зарегистрироваться на сервере?
О: Получить логин и пароль можно:
1. В разделе регистрации на сайте.
2. Через любой джаббер-клиент.
Для входа на сайт нужно использовать полный логин (ваше_имя@jabber.ru) и пароль.
В: Я забыл пароль, что мне делать?
О: Воспользуйтесь формой восстановления пароля: www.jabber.ru/xremind.
Восстановление возможно только при наличии адреса email в вкарде.
В: Что такое транспорт?
О: Сервис, который позволяет разговаривать с пользователями других IM-сетей через единственное подключение.
В: Как мне подключить транспорт ICQ?
О: Подробное описание подключения в Bombus здесь bombus-im.org/wiki/howto/howto_icq. Инструкция подойдет для любого клиента.
В: Я хочу перенести свои контакты из аськи в джаббер с сохранением ников.
О: Скачайте программу QIP Contacts Manager. В этой программе выполните команду «Export» в файл *.clb.
Зарегистрируйтесь на транспорте ICQ.
Откройте файл *.clb в текстовом редакторе.
Введите имя ICQ и содержимое файла *.clb на _www.jabber.ru/jabaddons/qip2jabber.
Нажимайте кнопку. Вы получите данные в формате, подходящем для J.RU.
В: Я хочу перенести свои контакты с одного аккаунта на другой?
О: Можно воспользоваться утилитой JRU _http://www.jabber.ru/jabaddons/jru/jru.php.
В: Я хочу перенести свои контакты с одного транспорта на другой или удалить ненужные контакты?
О: Можно воспользоваться утилитой JRU _http://www.jabber.ru/jabaddons/jru/jru.php.
В: Что такое конференция/комната?
О: Сервис @conference.jabber.ru позволяет создавать комнаты, каждая из которых работает как отдельный чат. Зайти в конференцию можно из любого джаббер-клиента.
В: Как создать конференцию на сервере Jabber.Ru?
О: Новая конференция создается при первом заходе в нее пользователя. Такой пользователь получает права владельца (owner). По умолчанию, конференция временная. После создания комнаты можно изменить ее свойства и сделать постоянной (галочка «Persistent» в свойствах конференции).
В: Чем отличаются участники от модераторов? Кем я могу быть в конференции?
О: Иерархия пользовательских прав существует специально для того, чтобы пользователи путались могли контролировать процесс общения (например, в тематических конференциях).
1. Owner: может всё.
2. Admin
3. Moderator
4. Member
5. None
6. Participant
Для новичков рекомендую Jimm Aspro.
Из WМ клиентов альтернативы Talkonaut’у не вижу.
это из тех клиентов, темы для которых созданы на форуме. однако, ни один из перечисленных не имеет поддержки конференций. из клиентов с поддержкой оных есть OneTeam и japyt(это не совсем клиент, работает по принципу прокси c любым jabber-клиентом, написан на python Disabler’ом).
Преимущества транспортов
Транспорты настраиваются один раз и не зависят от клиента, с которого их используют. Подключив шлюзы с Jabber-клиента на домашнем компьютере, не требуется подключать их на мобильном телефоне и ноутбуке.
При прямом использовании нескольких сетей (через многопротокольные клиенты) может значительно возрасти количество передаваемых данных. Транспорты же потребляют гораздо меньше трафика, особенно если подключенных сетей много.
Транспорты, дающие доступ к специальным ботам позволяют создать из своего Jabber-клиента универсальный инструмент, объединяющий в себе, к примеру, RSS-читалку, почтовый клиент, словари и переводчики, а также средство для просмотра погоды и отправки СМС.
Примеры использования таких транспортов:
Протоколы прикладного уровня: Jabber/XMPP часть1
Прочитав статью и испробовав команды, научимся
—Соединяться с Jabber сервером
—Логиниться
—Менять статусы
—Отправлять сообщения
—Отключаться
И все это на чистом XML
Соединение с сервером
telnet jabber.ru 5222
Trying 213.180.203.19.
Connected to pluton.relax.ru.
Escape character is ‘^]’.
Создание потока
Аутентификация
ВНИМАНИЕ! НИКОГДА не используйте такой метод аутентификации (передача пароля и логина в открытом виде по незашифрованному каналу) в реальных сетевых программах. Можно так поступать, для небольшого повышения производительности, если клиент (бот) и Jabber сервер находятся в одной защищенной сети или на одном сервере. В настоящих сетевых Jabber приложениях либо используют TLS шифрование всего потока, либо метод аутентификации DIGEST-MD5, а чаще — и то и другое одновременно.
После успешной аутентификации необходимо начать новый XML поток
—C:
Привязывание (bind) потока к ресурсу
iq — запросы к серверу. Используются для запроса/передачи какой-либо информации (ростер, «визитные карточки» и пр.) Имеют атрибуты type и id
type — один из списка: get (запрашивает данные), set (отправляет данные | устанавливает/заменяет какое-либо значение), result (ответ на успешное выполнение get или set, может содержать запрашиваемые данные), error (ответ на ошибочный запрос get или set)
id — просто каждый последующий iq запрос увеличивает id на единицу (инкрементируется). Сервер, отвечая на iq запрос повторяет его id. Это связано с тем, что иногда отсылается сразу несколько различных iq запросов.
В ответ на get или set запрос должен возвращаться ответ типа result (или error, если что-то не так)
Закрепляем этот поток за ресурсом «telnet»
—C:
Создание сессии
Рассылка статуса «доступен»
presence — для получения и рассылки широковещательной информации (напр. информация о статусе), а так же информации о подписке (например, добавление юзера в контакт-лист). Хотя может включать и указатель to для отсылки данных только определенному пользователю (напр. для определенного контакта ростера выставить статус «не беспокоить»:])
Может иметь атрибуты
from — JID имя@сервер/ресурс от кого presence. В принципе можно и не ставить — проставит сервер.
to — JID (с ресурсом или без) кому предназначен данный presence. Если не указано, рассылается всем, кто подписан (контакт-листу etc.)
type — тип presence, если отсутствует — то простое сообщение о статусе, иначе один из списка: unavailable (отключен),probe (запрос статуса клиента с сервера), subscribe (запрос подписки/просьба добавить в ростер), unsubscribed (отозвать подписку/удалить из ростера), subscribed (одобрить подписку/добавить в ростер)
Отсылаем сообщение об изменении статуса:
—C:
или только … Что хотим изменить то и отсылаем.
В ответ сервер рассылает всем из твоего контакт-листа (точнее тем, кто подписался командой prescence type=«subscribe» в т.ч. иногда и тебе) сообщение
—S:
Отправка/получение сообщений
(попугайте друзей — отправьте сообщение с типом error)
Рассылка статуса «отключен»
Закрытие потока
Отключение от сервера
Соединение будет закрыто сразу после закрытия потока по инициативе сервера.
Вот в общем-то и все.
Я бы в Джабберы пошёл…
Сначала я напишу пару вводных слов про джаббер, затем как быстро начать им пользоваться, чуть ниже как с ним познакомится, а в конце ссылки для любопытных. Не стесняйтесь прокручивать, если содержимое очередной части вам покажется известным.
Введение и пара оговорок
Джаббер (Jabber) — протокол мгновенного обмена сообщениями. Хотя Jabber правильнее называть XMPP — расширяемый протокол обмена сообщениями и индикацией присутствия.
Уже хочу, дайте
Весьма вероятно, что у вас уже есть джаббер аккаунт, а вы об этом даже не подозреваете. Проверим!
У вас есть почта на Google? ваш_ник@gmail.com
У вас есть почта на Яндексе? ваш_ник@ya.ru
Вы зарегестрированы в ЖЖ? ваш_ник@livejournal.com 9
Вы устанавливали QIP Infium? ваш_ник@qip.ru
Как бы им воспользоваться?
С QIP Infium нет никаких проблем: вы уже пользуетесь джаббером, если зарегестрировались при установке. Если же нет, легко наверстать.
Окошко чата гугла вы могли видеть, когда заходили в свою гуглопочту, можно общаться оттуда. Также существуют отдельные GTalk клиент и гаджет. И, если гаджет — веб-приложение, то GTalk есть только под Windows и Blackberry.
У Яндекса сразу нет веб-приложения, зато предлагается программа для общения Я.Онлайн под Win, а в рамках проекта Яндекс.Нано можно скачать версии для Mac OS X, Ubuntu и исходные коды.
ЖЖ без особых выкрутасов предлагает воспользоваться сторонними программами.
А если без революций?
Вероятно, вы уже пользуетесь каким-нибудь интернет-пейджером. И он так вам нравится, что вы не хотите его менять… проверьте по списку, поддерживает ли он джаббер. Если не поддерживает, подумайте о смене клиента, как бы грусто это ни было… или установке второго, параллельно, на попробовать.
В большинстве мультипротокольных клиентов (Miranda, Sim-IM, Pidgin) уже встроена поддержка джаббера. Причём обычно в панели настроек можно указать сервер и зарегистрироваться на нём (да-да, в один-два клика). Нужны только настройки…
NB: некоторые клиенты понимают логин как ваш_ник@джаббер.сервер.im, а некоторые разделяют JID на ваш_ник как имя пользователя и джаббер.сервер.im как сервер логина. В зависимости от клиента, вам необходмо будет ввести данные тем или иным способом. Чтобы не повторяться много раз, я опускаю из настроек поля имя пользователя и пароль, и указываю, если нужны, дополнительные специфические поля.
QIP:
Сервер (Login server): qip.ru
Использовать SSL: да
Порт: 5223
Яндекс [пример]
Сервер (Login server): ya.ru
Использовать SSL: да
Порт: 5223
Сервер подключения (Connection host): xmpp.yandex.ru
Порт: 5223
Поддерживать соединение (Connection keepalive): да
Google [примеры]
Сервер (Login server): gmail.com
Использовать SSL: да
Порт: 5223
Сервер подключения (Connection host): talk.google.com
Порт: 5223
Поддерживать соединение (Connection keepalive): да
LiveJournal [пример]
Сервер (Login server): livejournal.com
Использовать SSL: нет
Порт: 5222
Поддерживать соединение (Connection keepalive): да
Кого хочу, не знаю.
Вам не нравится ни один из предложенных выше серверов? У вас есть подозрения в искренности мыслей интернет-гигантов? Вам не хватает «транспорта» в другие сети? Выбирайте любой публичный джаббер сервер по любому критерию который больше нравится: время непрерывной работы, наличие шлюзов в другие сети, дополнительные функции 10 … Несколько список я приготовил в ссылках.
И не забудьте агитировать друзей переключиться на Jabber 😉
Побочные мысли, или куда дальше?
То, что джаббером заинтересовались в Циске, о чём-то уже говорит. Но опыт показывает, что Циска часто пытается или пропихнуть в стандарты свои разработки, или доработать имеющиеся стандарты под свои нужды, причём пилой, а не надфилем. во что может превратиться джаббер под руководством инженеров и программистов Циски, мы через какое-то время узнаем из анонса новых (tele-)presence и collaboration продуктов. Здесь они хотят серьёзно побороться за то поле совместной работы в компании, которое сейчас окучивают Лотус и АйБиЭм.
Сейчас в джаббере мало спама. Заранее прорабатываются идеи, как можно от него защититься. Однако, боюсь, эта борьба, как щита и меча, вечна. И дело только в том, когда джаббер наберёт достаточную популярность для того, чтобы им заинтересовались.
У конференций-комнат Джаббера есть интересная особенность: логи некоторых комнат, если это настроено администратором, могут регулярно вестись и выкладываться в общий доступ. Обычно об этом прямо написано на сайте джаббер-сервера. К примеру, посмотрите на полуживые волгоградские логи.
Так ли плох XMPP, как его малюют? Каким Jabber стал сегодня
Часто при обсуждении мессенджеров, при упоминании XMPP можно услышать слова:
Привет из двухтысячных! Неужели кто-то еще пользуется устаревшим протоколом? В XMPP до сих пор нет доставки файлов, сообщений, синхронизации, красивых клиентов?
Причина мифов о XMPP в том, что многим Jabber известен по мессенджерам из далеких двухтысячных годов и плохой осведомленности о особенностях XMPP. С двухтысячных прошло много времени, протокол продолжил существовать и активно развиваться. Современный Jabber уже сильно не похож на тот, который был раньше.
В этой статье мы рассмотрим для чего создавался XMPP, обсудим в комментариях причины снижения его популярности и каким Jabber стал сегодня
Предыстория
В двухтысячных годах у большинства интернет-гигантов были развернуты XMPP сервера. С одного сервера можно было написать на другой и вот уже казалось, если технологию немного доделать появится e-mail 2.0, универсальный мессенджер для всего Интернета, но тут что-то пошло не так. Компании перестали обновлять XMPP-клиенты. Широкого анонса поддержки XMPP не было. Сервера постепенно стали закрывать передачу сообщений на другие, а после вовсе технология была объявлена устаревшей и поддержку свернули.
Для чего создавался XMPP?
XMPP — расширяемый протокол для обмена сообщениями. XMPP создавался как универсальное средство взаимодействия между разными месенджерами. Предполагалось, что крупные компании могут добавить свои расширения и безболезненно интегрировать свои месенджеры и сервера в единую сеть. XMPP не требует полной совместимости, за исключение базового обмена сообщениями и поэтому никто не может всем навязать определенный стек технологий.
XMPP рассматривался как замена e-mail. Даже вид контакта в XMPP внешне похож на e-mail адрес: user@example.com Ожидалось, правительственные учреждения и компании будут использовать Jabber для быстрого развертывания своих приватных систем коммуникаций. Настройки Jabber серверов позволяют ограничивать доступ к серверу и групповым чатам посторонних или наоборот открывать. На XMPP можно создавать закрытые сети из серверов, чем и воспользовалось NSA. По материалам Сноудена, XMPP используется как внутреннее средство связи:
NSA documents obtained by Edward Snowden and reported on by Der Spiegel on Sunday reveal that the agency communicates internally with Jabber, an open source messaging service used by hackers and activists trying to skirt the NSA’s internet surveillance dragnet.
Источник: motherboard.vice.com
Причины падения XMPP
Казалось бы, технология перспективная, но крупные компании быстро потеряли интерес к XMPP. Предполагалось то, что будет работать в идеальном мире, наткнулось на жесткую реальность.
Основной материальный капитал любой крупной интернет-компании — это база пользователей. Многие компании сделали свой бизнес на предоставлении e-mail серверов и закрытых мессенджеров. Если e-mail сервер создать относительно сложно, написать собственный мессенджер еще сложнее, поднять XMPP сервер может любой человек с небольшими познаниями в Linux.
Поддерживать открытый XMPP сервер — это значит дать доступ к клиентской базе множеству мелких конкурентов. Не думаю, что эта ситуация могла понравиться крупным компаниям и инвестирование прекратилось.
«Устаревший и никому ненужный XMPP» как золотая жила! Закрываем S2S, пишем клиенты и зарабатываем миллиарды!
Funny thing is that a couple of year laters in june 2009, Whatsapp team is building its own platform sharing the same vision. Here is a post of Jan Koum on ejabberd mailing list: client access control:
«Hi there,i installed ejabberd today, got it work with adium/ichat and wanted to ask
you all a couple of things» — blog.process-one.net
Причину этого понять легко, потому что «устаревший, избыточный и никому ненужный» XMPP выдерживает 2 000 000 на одной ноде! Если отброс ить популизм, в частности речь идет про Ejabberd.
2 000 000 активных соединения. График нагрузки CPU и потребления памяти:
Если Jabber ID заменить на телефонные номера, подписки сопоставить с нахождением номеров в адресной книге, получаем почти полностью готовый продукт с минимумом затрат.
Ejabber поддерживает множество баз данных и соединений с сервером, не только классическим для XMPP способом, но через Websoсket, HTTP запросы и Ejabberd API. На Ejabberd можно создать мессенджер с тысячами онлайн подключений на дешевом VPS, за пару долларов получаем промышленную отказоустойчивость и стабильность работы. Этим выгодно выделяется Ejabberd, по сравнению с множеством других систем обмена сообщениями, падающих от малых нагрузок.
Модифицированные версии XMPP используют многие проприетарные мессенджеры, для быстрого старта с минимумом затрат. Примеров успешного использования ХМPP серверов, как средства для доставки сообщений много. Знаменитая онлайн игра «EVE Online» недавно перевела чаты на Ejabberd. Мессенджер Cryptocat во многом построен на XMPP. Ходят даже слухи, что великий и могущественный Facebook как-то использует XMPP в своих проектах.
Раньше в XMPP была проблема с доставкой сообщений и синхронизацией устройств, как решена она сейчас?
Для доставки сообщений в XMPP используются расширения:
Раньше в XMPP была проблема с доставкой файлов, как решена она сейчас?
Как дела обстоят с красивыми клиентами в XMPP?
Понятие красоты у всех разное. Некоторые люди в бьются об заклад и говорят что их любимый Gajim, PSI+ и даже Profany самые красивые и самые лучшие, но на Андроид общепризнанный лидер — Conversations.
Ссылка на другие скриншоты и страницу в Play Маркет. Примечание: В настройках Conversations можно включить статус отображения собеседника на кнопке отправки и статус отображения доставки сообщений. Сервер conversations.im, выбираемый по-умолчанию, платный после 6 месяцев использования. Для постоянного использования лучше выбрать другой XMPP сервер, такой как 404.city. Город 404 — это сервер сообщества киберпанков. 404.city официально занимается поддержкой совместимости со всеми версиями Conversations. Ну или поискать сервер здесь.
Какие есть особенности у XMPP? Почему у одних все работает отлично, а другие сталкиваются с трудностями?
Вывод
XMPP не такой простой и устаревший, каким он кажется. XMPP — это идея объединения всех мессенджеров и сайтов (любой может поднять свой сервер) единым стандартом коммуникации. XMPP — это прекрасный инструмент для создания отказоустойчивых мессенджеров в руках разработчика. Jabber — это неплохая свободная альтернатива WhatsApp и другим мессенджерам, в руках пользователей ознакомленных с особенностями его работы.
XMPP — это тема, которую сложно описать в двух словах. Если Вас заинтересовала моя статья, Вам возможно будут интересны так же эти ссылки:
Всё о Jabber. От приложения до своего XMPP сервера
Привет, друг! Итак, почему jabber? Тайна переписки, которая является составляющим элементом конфиденциальность личной жизни — это такая штука, которая гарантируется гражданам законодательством любой страны. Более того, государство обещает защищать это твоё право. а всякие коммерческие структуры, от мала до велика, во всех этих своих лицензионных соглашениях и прочих политиках конфиденциальности, божаться охранять твоё право на неприкосновенность переписки.
И всё это звучит прекрасно и крайне обнадёживающе. Но, к сожалению, так сложилось, что заглянуть в твои секретики, хотят все без исключения, начиная от государственных структур, заканчивая хацкерами. С хацкерами, кстати, всё более менее понятно. Они никому ничего не обещали, да и переписка простых смертных их далеко не всегда интересует. А вот с государством всё сложнее. Во первых государство всегда оставляет себе лазейки в законах. Я имею ввиду нарушение конфиденциальности личной жизни на законных основаниях. Это всякие прелюстрации корреспонденции, снятие информации с каналов связи и прочие ништяки, являющиеся монопольным правом правоохранительных органов.
Сложность для них в том, что чтобы использовать способы описанные в законе об оперативно-розыскной деятельности, нужно выполнить некоторые требования законов. Т.е. писать много букв, идти в суд за санкцией, короче иметь дело с бюрократической системой. Как результат, использовать этот способ для реализации целей тотального контроля, физически невозможно. Он более подходит для приземления индивидуально выбранных персонажей. Поэтому государство решает эту проблему другими способами. Начиная от создания всяких систем мониторинга, фильтрации и т.д. заканчивая тупо нагибаловом месенджеров и социальных сетей.
Что такое jabber и xmpp?
Ну да ладно, меня, как обычно унесло в рассуждения. На самом деле кто и зачем хочет порыться в твоей личной жизни, особо не важно. Важно то что, наверное, любому человеку это не понравиться. И, я думаю, ты согласишься со мной, что каждый имеет право на неприкосновенность своих секретов. Причем без всяких «но», и независимо от рода деятельности. Ну, а учитывая, что на желание иметь такое право, всем вокруг, как бы, всё-равно, то реализовывать это право нам придется самостоятельно. И именно поэтому сегодня мы будем разговаривать о том, как общаться так, что бы посторонние личности, в погонах или без них, не могли перехватить и посмотреть нашу переписку. Т.е. про Jabber и все, что с этим связанно. От клиентских приложений на компьютере и телефоне, до собственного сервера.
Начнём с самого простого, т.е. с общего понимания всего процесса. Для начала, что вообще такое XMPP и Jabber. По сути — это одно и тоже. Просто Jabber это более раннее название, которое полюбилось пользователям. Поэтому XMPP до сих пор называют Jabber. Ну, а если говорить о конкретном определении, то — это расширяемый протокол обмена сообщениями о присутствии. А если проще, то — это открытый протокол обмена мгновенными сообщениями. Основными плюсами, из-за которых стоит использовать Jabber, можно считать его открытость, децентрализованность и поддержку шифрования. Справедливости ради стоит сказать, что минусы тоже есть. Но они больше должны волновать владельцев серверов, пользователей это особо не касается.
Теперь переходим к вопросу наиболее актуальному для большинства пользователей. А именно к применению клиентских приложений использующих протокол XMPP.
Но перед тем как использовать месенджеры, нужно позаботиться о шифровании и ключах шифрования. Утилит умеющих решать этот вопрос довольно много. Наверно самыми распространенными можно считать GPA и gpg4usb. Принцип их использования одинаковый, поэтому я покажу, что нужно делать на примере утилиты GPA. В некоторые дистрибутивы Linux она установлена по-умолчанию (например Parrot OS), или ее можно установить:
После первого запуска GPA сразу предложит создать новый ключ. Соглашаемся и у нас спросят имя, адрес электронной почты (можно указать рандомный) и будет предложено создать резервную копию ключа (можно создать и приныкать где-нибудь в надежном месте). И финальным этапом нужно придумать пароль ключа.
Всё, ключ готов. Теперь сохраним его открытую часть в файл. Для этого давим кнопку «Экспорт ключей» и сохраняем куда удобно.
Из Jabber-клиентов, лично мне, больше всего нравится PSI+, поэтому начну именно с него. У него есть клиенты для Windows, MacOS и Linux. Но мы, по понятным (надеюсь) причинам, будем рассматривать варианты для Linux.
Для начала устанавливаем:
Если, вдруг, ты используешь дистрибутив Linux в репозиториях которого нет PSI+, то его можно добавить:
При первом запуске, нам предложат использовать уже существующий аккаунт или создать новый.
Если аккаунта у тебя нет, смело дави «Зарегистрировать новый». В открывшемся окне нужно ввести имя сервера на котором ты хочешь создать аккаунт. Я, естественно, буду показывать на примере нашего сервера.
После нажатия кнопки «Далее» программа ругнётся на сертификат, сообщив нам что он самоподписан, смело жми «Доверять».
В следующем открывшемся окне, нужно придумать себе имя пользователя и пароль (опционально можно ввести email и полное имя). И всё, аккаунт создан, о чём ты увидишь соответствующее сообщение. По умолчанию, автоматическое подключение к серверу выключено, поэтому нужно в выпадающем списке внизу программы выбрать «Доступен» чтобы подключится к серверу. Также будет предложена возможность заполнить vCard — это твоя визитка, тут по желанию.
Шифрование в PSI+
Теперь нужно установить плагины для шифрования сообщений и проверки подлинности контакта. Нажимаем «Настройки» и выбираем вкладку «Плагины». Здесь нужно выбрать плагины GnuPG Key Manager и Off-the-Record Messaging Plugin и нажать ОК.
После этого жмём правой кнопкой на наше имя и выбираем «Настройки аккаунта». И во вкладке «Аккаунт» убираем отметку «Вести историю сообщений», затем переходим во вкладку «Подробности» и жмём кнопку «Выбрать ключ». В появившемся списке мы увидим ранее созданный нами ключ в программе GPA, выбираем его и нажимаем ОК. Нас попросят ввести пароль от ключа, а потом перезапустить соединение.
Теперь вернёмся в настройки, и в списке плагинов нажмём на гаечный ключ возле плагина Off-the-Record Messaging Plugin, там переходим в вкладку «Мои личные ключи» и нажимаем «Генерировать новый ключ», и после сообщения что ключ сгенерирован, жмём ОК.
На этом настройка Psi+ закончена. Остальные настройки можешь покрутить «под себя», это дело индивидуальное, какие-то советы тут давать не вижу смысла. Ну, а чтобы продемонстрировать как это всё работает на примере, покажу установку и настройку не менее популярного месенджера Pidgin. А потом посмотрим как происходит сама беседа.
Pidgin
Начинаем с установки:
При первом запуске нам, также предложат создать новую учётную запись, где нужно указать имя пользователя и домен где хотим зарегистрироваться. После этого соглашаемся с самоподписаным сертификатом и придумываем имя пользователя и пароль.
Следующим шагом идём в настройки и в вкладке журналы, отключаем запись сообщений. Потом нажимаем Средства-Модули и ставим галку возле плагина Off-the-Record. После чего нажимаем «Настроить модуль», в появившемся окне нажимаем «Создать».
Теперь добавим собеседника. При нажатии кнопки «Добавить собеседника» нам нужно ввести имя нужного нам пользователя в формате имя@домен и нажать «добавить». Нужный пользователь получит запрос на добавление и приняв его мы можем начинать общение.
Для начала конфиденциальной беседы нужно подтвердить личности с использованием OTR. Причём сделать это должен каждый собеседник. В обоих, рассматриваемых нами приложениях, это делается одинаково. Нужно нажать на кнопку OTR и выбрать способ подтверждения, а именно существует три способа:
Если личность подтверждена, нажимаем «Авторизовать» и можем спокойно общаться. Наша переписка надёжно защищена.
PGP шифрование
Но, мы можем пойти дальше и, если оба абонента будут использовать Psi+, то ещё и включить шифрование PGP. После чего обменяться публичными ключами. Это обеспечит нам максимальный уровень защищенности переписки. Даже если переписку вдруг получится перехватить или сервер взломают, наши разговоры расшифровать всё равно не получится.
Для того чтобы всё это заработало, каждый из участников разговора должен нажать кнопку включения PGP (показано на рисунке). А потом нажать кнопку обмена публичными ключами. Теперь включено шифрование. Что, совместно с подтверждением личности, и использованием OTR, даёт нам очень высокий уровень безопасности переписки. Пожалуй, наверно, максимально возможный уровень защиты разговора.
А мы плавно переходим к использованию Jabber на мобильных телефонах.
Jabber на iOS и Android
Для Android оптимальным Jabber-клиентом я считаю Xabber. Оно максимально простое и при этом достаточно удобное, исходный код открыт, оно бесплатное, есть поддержка OTR, и возможность подключить одновременно несколько аккаунтов, что порой очень полезно. Короче, пожалуй, лучший выбор. Хотя, как всегда — это дело вкуса, я рекомендую только то, что больше нравится мне.
Для iOS, вполне обычная практика сделать приложение платным или разрешить использовать только аккаунты на сервере разработчиков приложения. Ну и про открытый исходный код можно только мечтать. Но если всё-таки очень хочется, на мой взгляд оптимальный вариант это JabMe. Конечно чересчур просто, нет вообще никаких настроек, но зато быстро и бесплатно.
Как запустить свой Jabber-сервер
Зачем тебе нужен свой Jabber-сервер придумай сам, мы философствовать на эту тему не будем. А я просто покажу как запустить свой сервер. Как для доступа из локальной сети так и из глобальной.
Запускать и настраивать мы будем Openfire, это, как по мне, оптимальное решение. Установка и запуск достаточно простые, а ещё он имеет приятный и интуитивно понятный графический интерфейс, что само по себе прекрасно.
Что касается операционной системы, то самым логичным вариантом будет какое-нибудь серверное решение, например Ubuntu Server.
Для начала нам понадобится установить зависимости, такая одна — это Java:
Теперь ставим серверные приколюхи, а именно Apache, PHP, MySQL:
По поводу MySQL нужно отметить, что в Openfire есть встроенная база данных и можно, в принципе, использовать и её, но внешняя база данных гораздо производительнее. Поэтому мы будем использовать MySQL и следующим шагом настраиваем её, а именно создаём базу, назначаем права и так далее:
Динамический IP и jabber-сервер
Следующий подготовительный этап, это решение проблемы динамического IP. Но заниматься этим нужно, если хочется чтоб сервер был доступен из Интернета. Если планируется использовать сервер только в локальной сети, этот пункт смело пропускай.
Оптимальным вариантом решения этого вопроса будет использование утилиты ddclient. Которая будет, с заданным интервалом проверять наш внешний IP и если он изменится, автоматически будет обновлять IP у нашего хоста (мы его сейчас создадим).
Для начала регистрируемся на любом сервисе предоставляющем услуги динамического DNS. Я буду использовать https://dyn.com/. Для его использования нужно создать новый хост и указать текущий внешний IP.
Устанавливаем ddclient и зависимости:
Он в процессе установки будет задавать вопросы. Как ты на них ответишь особо не важно, потому что все настройки мы после отредактируем вручную. Для этого открываем файл /etc/ddclient.conf и в нём вписываем такие строки:
Сохраняем изменения, перезапускаем демона и можем проверить что бы он работал:
Что бы убедится что IP обновляется можно заглянуть в логи:
Установка Openfire
Подготовительные этапы окончены, можем скачивать и устанавливать Openfire. Сам сервер можно скачать здесь: https://www.igniterealtime.org/downloads/index.jsp#openfire или командой:
Не забудь чекнуть последнюю версию. Устанавливаем и проверяем чтобы работало:
Теперь нужно импортировать базу данных:
Всё готово, открываем браузер и переходим по адресу http://localhost:9090 и попадаем в консоль администратора Openfire, которая предложит нам сделать первичную настройку.
Настройка сервера Openfire
Первый шаг — это выбор языка:
Вводим доменное имя, которое мы зарегистрировали в DynDNS, порты оставляем без изменений:
Следующий шаг — выбор базы данных. Если выбрать «Встроенная база данных» — будет использоваться база данных самого Openfire. Но внешние базы намного производительней, поэтому выбираем «Стандартное подключение к базе данных»:
И переходим к настройке самой базы данных. В выпадающем списке выбираем MySQL, в графе URL базы данных вписываем:
имя пользователя и пароль вписываем те, которые вводили при создании базы данных:
Следующий шаг — создание учётной записи администратора (по умолчанию имя — admin). Вводим электронную почту и придумываем пароль:
Входим в консоль под созданной учётной записью админа и с этой минуты наш сервер работает, и к нему уже можно подключаться, регистрироваться и общаться.
На настройках в админке не вижу смысла останавливаться дополнительно, тут есть довольно подробные описания всех пунктов. Каждый сможет настроить в зависимости от своих желаний и потребностей, тоже самое касается и установки дополнительных плагинов.
На этом, пожалуй, можно заканчивать. Но не забывай возвращаться, ведь нам нужно изучить ещё очень много. А пока я пишу для тебя новую статью, можешь почитать про логи и журналирование в Linux, точно будет не лишним.