a direct publicism site
personal pages of Yasen Pramatarov
StatusNet profile   Diaspora profile   ClaimID profile   LinkedIn profile

ejabberd

Виртуални хостове в джабър-мрежата


Тъкмо писах тия дни за практически неизползваемия XMPP-хостинг на DreamHost и в четеца ми днес пристигнаха следните две публикации: “Control own domain on XMPP service” и “Latest hosted.IM release”. Това са две от големите имена в джабър-света, съответно Tigase (със сравнително новия, но доказал се Java-сървър Tigase, GPLv3) и ProcessOne (компанията зад проекта ejabberd, един от утвърдените проекти, писан на Erlang от един руснак в началото, а днес един от най-разпространените сървъри, GPLv2+).

Не казвам, че моето оплакване има нещо общо с това. Е, поне не повече от общото на пеперудата в Китай с ураганите. Интересното е, че най-накрая някаква разумност пропълзява на повърхността и хората започват да разбират истинските проблеми на тази мрежа. След като няколко години наред всичко беше разпокъсано – ако не толкова между отделните проекти, то със сигурност между кода, програмите и хостинга, употребата. Лоша услуга на това изтрезняване изигра Google (ех, пак ли ще ги плюя заради XMPP – ами да, пак!), защото през GTalk и сървърите на Google можеше да се преодолее това неудобство със собствените домейни, но пък гугълското предложение беше (и си остава) куцо. Един вид – “искате ли баница? а, не ви харесвала със спанак, а? ми умирайте от глад, тогава!”

Не искам да преувеличавам нищо. Може би за повечето от вас всичко това има или малко значение, или направо никакво. Нищо, за мен е важно, че след като намерих платен джабър-хостинг за 1 евро на месец (Hot-Chilli.net), сега вече намирам и съвсем безплатно, “част-от-услугата” на самите разработчици на сървъри решение. На тях нищо не им струва, умрели са те за моето едно евро на месец. Всъщност не – ще се радвам да си го получат под формата на дарение за подпомагане на проектите им за свободен софтуер. Аз ако имам такива домейни към тях, ще са максимум два-три, повечето хора ще хостват само един домейн и само един потребител – такова натоварване е нищожно. Но услугата е огромна и сървърните екипи биха могли да разчитат на голяма благодарност и лоялност на тези потребители.

Едно намигване към администраторите на сървъри – пускането на виртуални хостове не е трудно, описано е и за повечето сървъри има и уеб-панели за такава настройка. Нищо не ви струва – нито повече трафик, нито повече ресурси… нищо. Но потребителите ви получават много ;)



Tags:
26 September, 2010 - 18:05
0 коментара
 

DreamHost се провалят с XMPP


XMPP-услугата на DreamHost е под всякаква критика. Те са едни от малкото доставчици на хостинг, които поне знаят за Jabber/XMPP и предлагат много удобното електронната ти поща и месинджърът ти да имат един и същи адрес. Всичко е супер на хартия, обаче реализацията е ужасна. Сървърът им е стар, не поддържа почти нищо освен основното и все има проблеми (като самите DH). Да, може да се настрои XMPP-трафикът към съответни домейн да се насочва не към въпросното мижаво сървърче, а към простотията на Google за XMPP. Към приложенията на Гугъл, с включено към тях Jabber/GTalk – да бе, може да звучи приятно за някои, но аз не ща.

Да не говорим, че има огромни проблеми в комуникацията между собствения XMPP-сървър на DreamHost и тия GTalk за домейни на Гугъл. Което е абсурдно, помислете само – имаме двама човека, които и двамата са клиенти на DreamHost и двамата искат да ползват джабър към домейните си. Обаче клиент1 избира вътрешната услуга на доставчика, а клиент2 делегира джабъра си на Гугъл (добавят се записи в DNS-а и всичко джабърско се пренасочва към GTalk, без външен човек много-много да разбира.

Обаче накрая клиент1 и клиент2 не могат да си говорят помежду си, защото заради калпавото, мързеливото или “неприоритетното” управление на XMPP-услугата и в двете компании се оказва, че клиент1 и клиент2 даже не могат да си разменят записвания (оторизации). Или ако с триста зора най-накрая успеят, то е едностранно и пак не върши работа.

Лека-полека през последната година - година и половина този проблем като зараза се разпространи и върху jabber.org. Развалиха най-известния сървър, сложиха му някакъв несвободен софтуер (дето уж бил “по-добър” от ejabberd – по-добър, чушки) и не стига, че постоянно пада, ами и започна да се държи като ощипана мома, тъй де, Google, и да не приема записвания от всички сървъри. Не зная дали е заради черни списъци, дали е заради проблеми в рутирането между мрежите на компаниите… но няма значение – важното е, че съсипаха jabber.org.

Имаше момент(и), когато DreamHost не виждаше GTalk и Jabber.org, после “изолираният” беше Jabber.org… абе всякакви пермутации. И взе да ми писва. Защото бях прехвърлил всичките си контакти към моя си домейн. Наложи ми се да “върна” записвания към тези неработещи сървъри към акаунтите ми в jabber.org и gtalk. Защото поне когато са “локални”, връзката си работеше.. то оставаше и да е другояче…

И идеята на всичко се разсипва. Уж имам джабър към домейна си, но не мога да го ползвам. А защото повечето от контактите ми са вече там (и част от тях си работят), не мога и да се върна. И трябва да влизам едновременно в няколко сметки, за да имам връзка с контактите си. Всичко това – като оставим настрана няколкото човека, които упорито отказват да излязат от любимото им ICQ и за които пускам даже отделен клиент.

Е, това вече не се търпи. И защото държа на това пощата и джабърът да са ми с един и същи адрес, от днес започвам да търся начин. Истински, а не измислен с измислените DreamHost. Те за уеб са евтини и стават, но за джабър не стават, колкото и евтини да са.

Изискването ми е да е стабилна и препоръчвана услуга, от която да мога да изисквам и на която да мога да разчитам. Което значи да е комерсиална, защото само парите дават такава стабилност в мрежата. И значи да е с добро име, или поне да не е (и) с лошо (като DreamHost).

Засега има два варианта – или да тегля една майна на целия DH и да се изнеса в нещо като Linode, или да отложа местенето на уеб за по-добри дни, а да преместя само джабър. Първият вариант е най-добър, но ми е скъпо – 20 долара на месец за най-ниския план ми е неоправдано много, колкото и добра да е услугата. Така че това – евентуално по-нататък.

Вторият вариант е примамлив, например Hot-Chilli звучи прекрасно. Разгледах сървъра им, има всичко каквото искам, даже и много неща, които не ми трябват (всякакви транспорти към услуги, които никога няма да ползвам, като Facebook и GaduGadu, MySpace и подобни).

Цената от 1 евро на месец не е висока за такава подробна услуга. Минавам на етап събиране на оценка за jabber.hot-chilli.net и после ще преценя. Сто на сто ще е по-добре от DreamHost, единственият минус ще е, че услугите ще са ми разхвърляни между различни компании, а това никога не ми е харесвало. Но какво пък.

А междувременно най-вероятно няма да съм достъпен в джабър, поне известно време. Тоест колкото време им отнеме на DH да се “занимаят” с проблема ми. Но който иска да ме намери, поне е лесно – пощата ми е като джабъра ;)



Tags:
19 September, 2010 - 12:26
5 коментара
 

Jabber в кутия


Съвсем логично плъзна и у нас модата по Twitter/Jaiku/Pownce/whatever. През последната година има такъв шум на запад, както и Orkut беше популярен и интересен преди да влезем и ние. И да видим, че не само не е нищо особено, ами и е “evil”. И заради компанията, която държи вечно личните данни, и заради централизирането и отнемането на контрола върху профилите на отделните потребители. Да, крайно казвам и не, не е без алтернатива. Правилният опит е проектът AppleSeed — но за това друг път.

Всъщност тази туитър-мания ми прилича на една друга — по Skype. Колкото Skype е нестандартен, собственически, несвободен и съответно — във вреда на идеята за свободен Интернет, толкова и туитър-подобните сайтове объркват развитието на правилната технология. Не, не казвам “правилна” в някакъв полу-религиозен фанатичен смисъл — правилна е, защото е публикуван отворен стандарт и има имплементации, които са свободен софтуер. Казано по-просто — достъпна за всички технология. Да, говоря за Jabber/XMPP.

Някой може да каже, че е пробвал еди-кой си джабър-клиент и хич не му е харесал, еди-кой си бутон е бил в еди-какъв си цвят, или пък как нищо не е разбрал, защото не е достатъчно “интуитивен” по отношение на любимия му WindBlows. Странно как jabber е неудобен, а неудобният до побъркване клиент на icq се ползва без притеснение. Мда, някои дори харесват iPhone — вярно, красива джаджа, но нали технологиите трябва да са достъпни. Ами DRM? Ами в icq неизвестният протокол? Дето нямате представа какво става с данните или поне какво би могло да стане?

Това, което разви технологиите така бързо и масово през последния общо век вече е именно достъпността, отвореността им към хората. Всеки може да ползва електроенергия, автомобилите не са запазени за избрани или за армията, електрониката, радиото и телевизията, домашният компютър — на практика всичко около нас днес е продукт на свободни от централен контрол технологии.

Затова има комитети по стандартизация, има съгласуване на местно и международно ниво. Което следва да се прави с оглед развитието на технологията и на нейната достъпност за хората. А не на частен икономически или политически интерес.

Затова има и Интернет. Цялата мрежа, която доста хора днес ползват, “защото я има” и защото “я виж, тука има аванта” съществува, защото изграждащите я технологии са гарантирано достъпни и са описани в стандарти. И не на последно място съществува като съдържание, защото има хора, които полагат някакви усилия да “връщат” ресурс в мрежата. Но и това последното е друга тема, за свободните лицензи за съдържание и за това как някои се тупат в гърдите, че са големи и значими в мрежата, а публикуват със забрани и правят фирми и сайтове, които увеличават съдържанието със запазени права.

Всъщност какво е Twitter? Като махнем конкретните функционалности, какво е принципното му значение в развитието на интернет-идеите? В същността си Twitter или всяка подобна услуга е Jabber-сървър с PubSub. Останалото е уеб-дизайн.

Проблемът не е каква е и дали я има свързаността на тези сайтове с jabber-ботове, а е в това, че крайната имплементация на PubSub се забави доста. Вече поне от две години се знае какво е Publish-Subscribe в XMPP, дори от може би около година има работеща инсталация по подразбиране. Всяка нова версия на най-бързо развиващите се XMPP-сървъри, EJabberd и OpenFire е с включен pubsub.

С две думи PubSub е нещо като огромен класьор. Който можеш да споделяш с други потребители на jabber-федерацията, можеш да защитаваш с шифър, да преместваш, разпределяш и мигрираш. И всяка страница от него има свои си джобове, в които могат да се съдържат всякакви данни — от булеви стойности до големи файлове.

Това е краткото обяснение. Дългото е толкова дълго, че и аз му губя края още в началото. Може би точно това е проблемът и затова PubSub се внедрява толкова бавно. Има толкова визии за използването му, колкото са и разработчиците на XMPP. И всичките са мащабни визии. Ако беше нещо малко или еднозначно, досега да е направено хиляда пъти.

Не е фанатизъм, пак казвам — така работи Интернет, дето всеки ден ползваме. HTTP например е същото, но понеже е внедрен и разпространен доста преди основният финансов интерес да се обърне към мрежата, затова е пощаден от такива недоразумения като Skype и Twitter. Или Orkut и Facebook. Или Microsoft OOXML. Пак казвам — на някои им харесва, удобно и весело им е да ги ползват — радвам се. Но това не е Интернет, какъвто е замислен и какъвто се е развивал толкова време.



Tags:
16 August, 2007 - 16:25
7 коментара
 

За сигурността в Jabber


Да, става дума за сигурност. Преди да продължа и да кажа, че общуването през Jabber/XMPP може да бъде несигурно, нека ви напомня нещо.

Именно, че общуването през всичките нароили се други протоколи *не е сигурно*. Когато някой от вас ми казва “ами хайде, сложи си “Q” или “Яху”, щото нали най-важното за месинджърите е колко хора ги ползват, кво се правиш” все се сещам за онези времена, когато се използваха наистина масово т.нар. “icq клиенти”. На половин година излизаше нова версия, но пък за сметка на това всеки месец излизаше по някоя нова програмка-“инструмент”. Я за подслушване, я за заливане до отказ на клиента, я за крадене на списъка с контакти…

Любимият ми пример всъщност е този с “невидимостта” в icq. Не зная как се осъществява състоянието “невидим” в днешните собственически програми за моментни съобщения и не ме интересува, честно казано. Но навремето сътсоянието “невидим” (“invisible”) в небезизвестното icq беше направено по супер-балъшки начин.

Значи минавате вие в “невидимост” и какво става? Ами много просто - icq-то ви казва на всички, че сте невидим. Невидимо е не *то*, а… *вие*. Получава то запитвания за състояние и на всяко запитване отговаря, че състоянието ви е “невидим”. Нещо като “Мен ли търсите? О, мен ме няма, не мога да говоря по телефона, защото ме няма. Приятен ден!”. После е ясно откъде се появяваха т.нар. “un-invisiblisers”.

Тоест всичко е измисляно “през пръсти”. Пък ако мине номерът - мине…

Правилният начин, както може би сте се досетили, е в състояние “невидим” на запитвания за състояние да не се отговаря. Така де - когато “няма никого вкъщи” не отваряте вратата, нали? ;)

Jabber също не отваря вратата, ако още се чудите. ;)

——

Но въпросът е за сигурността. Най-важното за сигурността е, че трябва да бъде осигурявана.

Глупаво е да се мисли, че има универсални решения. Всъщност аз бих могъл да ви кажа, че е глупаво да се мисли, че изобщо има решения. Повлиявам се от философския си background, ще кажете вие. Добре, тогава бих добавил, че е човешко да бъдем глупави.

Но все пак в среда, в която можем да бъдем “моделирани”, среда, в която определяща е само информацията и не толкова това, което ни я дава, в среда, в която всяко “сигурно” нещо може да бъде фалшифицирано и то по “сигурен” начин, в такава среда просто трябва да бъде естествена реакция грижата ни за сигурността.

Трябва да имаме security reflex. ;)

Защото колкото и закони да пише държавата, в Интернет едно е ясно - винаги невинният може да бъде набеден по достатъчно убедителен начин. И виновният може да не остави достатъчно убедителни следи. Въпрос на гледна точка.

Освен ако не държим на сигурността и не използваме в общуването достатъчно сигурни (поне към днешни дни) механизми за шифриране да информацията.

——

След като ви казах, че използвайки собственическите програми за моментни съобщения вие почти сигурно говорите “голи”, да кажа и за Jabber.

Jabber поддържа няколко нива на защита на преминаващите данни.

1) шифрирана връзка към сървъра (c2s, client to server) през SSL (Secure Socket Layer) на друг порт, 5223

2) шифрирана връзка към сървъра (c2s) през TLS (Transport Layer Security) на стандартния порт за нешифрирана връзка, 5222

3) шифрирана връзка между сървърите (s2s, server to server) през SSL

3a) други варианти на подобна схема на s2s шифриране.

4) шифрирана връзка на цялата комуникация между двата клиента (e2e encryption, end to end encryption) чрез подписване и шифриране на данните с електронни ключове.

Въпросите тук са два:

1) кой вариант или кои комбинации са достатъчно сигурни и

2) кое доколко е въведено в наличните днес сървъри, сървърни компоненти и клиенти.

Първият въпрос е лесен за отговаряне.

Най-сигурният вариант е 4). Когато всичко е шифрирано от единия край до другия, данните са най-добре защитени.

След него се нарежда вариант 3) в разновидностите му, комбиниран с 1) или 2). Тогава данните изминават следния път: първо клиент1 ги шифрира до сървър1, след това сървър1 ги шифрира за вътрешния обмен между процесите си и/или до сървър2 (ако разговорът е между хора към различни сървъри) и накрая сървър2 ги шифрира до клиент2.

За да работи тази схема са нужни две условия - и двата клиента да са свързани през SSL или TLS към сървъра си и всеки от включените в разговора сървъри да е настроен да шифрира данните.

Въпреки че тази схема е доволно добре изглеждаща, има слаби точки. Тези точки са двата сървъра, или по-точно администраторите на двата сървъра. Съответно - сигурността на двата сървъра, защото ако са несигурни и незащитени, има възможност някой си друг да стане практически “администратор” и… сещате се;) Обяснението е, че всяко нещо, което минава нешифрирано през машината и зависи от програмно осигурената услуга да бъде шифрирано, е уязвимо. Да обясня с пример: ако кракер1 добие достъп до, да речем, сървър2, то той може така да промени софтуера на машината, че, примерно, да изпраща нешифрирано копие на данните до кракер-клиент1. Или още по-“яко” - да изпраща шифрирано от кракер1 копие.

А най-опасното е да имате или връзка със сървъра през SSL, или връзка между сървърите през SSL, но не и двете едновременно. Най-лошо е, защото си мислите, че сте защитени (понеже, примерно, “катинарчето” на клиента ви е заключено), но не сте (в случая - защото между сървърите всичко е в прав текст).

——

Да видим каква е реалността. Доколко тези възможности са внедрени в сървърите, компонентите, клиентите.

От компонентите ни интересуват най-вече транспортерите към другите протоколи. При тях положението е ясно - няма защита. Защо ли? Ами много просто - доколкото поне на мен ми е известно, защита нямате и в самите въпросни собственически протоколи, как Jabber сървърът да я “измисли” тази защита? ;)

При клиентите също нещата са ясни - все пак клиентите ги “виждаме”, пред нас са. Списъкът им се променя много често, все по-често излизат и нови версии. И все пак единственият клиент, който хем е колкото може по-съвместим с протокола, хем поддържа SSL, TLS и e2e шифриране, е Psi. С Psi направо можете да си настроите електронните ключове - вашия и този на събеседника ви и след като минете в засекретен режим, да говорите спокойно. Без това да бъде “нещо специално”. Както казах, просто рефлекс за сигурност. ;)

В другите клиенти положението не е чак толкова добро, но има проблясъци - Gaim, колкото и оплюван от Jabber-общността, поддържа шифриране и всичко останало, макар и през допълнителни приставки.

В някои други клиенти има наченки в новите версии на e2e crypt - Kf, Gajim.

В някои клиенти пък изобщо липсва такава възможност. Много са, но ще спомена само един от най-качествените сред тях - Gossip, бъдещият стандартен Jabber-клиент за настолната среда Gnome. Колкото и да е странно, в пощенския списък на Gossip като че ли битува едно разбиране, според което ако хората използват SSL връзка със сървъра, всичко е наред - и “пей, сърце”. Дано в дълго готвената нова версия включат и шифриране между клиенти. Макар силно да се съмнявам - просто понякога се прекалява с “user friendly” обяснението. Gossip малко прекаляват с прекалената изчистеност. Аз използвам Psi в среда на Gnome и съм доволен от интеграцията му. Пък и ако “съвместимост със средата” означава да нямам сигурност на данните защото “било трудно за новия потребител”, ами… майната й на съвместимостта…

При сървърите положението едва напоследък започна да става по-розовичко. Доскоро, именно до 20.01.2005г., когато излезе версия 1.4.4, един от най-разпространените (и всъщност първият, оригиналният;) сървъри, jabberd14, *НЕ* поддържаше SSL връзка в междусървърната комункация.

Новата версия, 1.4.4 поддържа.

Другият разпространен сървър, jabberd2 също доскоро не поддържаше шифриране. Ето едно примерно доказателство.

Последните версии поддържат. Проблемите с внедряването на s2s SSL бяха най-вече свързани с трудността при критериите за автоматичното приемане на сертификатите - някои сървъри може да имат изтекли, самоподписани сертификати и т.н. А администраторът да решава “на ръка” за всеки сървър и да следи дали сертификатът е валиден… си е гърч ;)

Третият най-използван сървър, руският написан на Erlang ejabberd и в момента *НЕ* поддържа s2s шифриране. В сайта му вижте най-долу. За всеки случай ще цитирам:

Misfeatures of ejabberd

No support for authentification and STARTTLS in S2S connections

Трябва да се отбележи, че фактът, че някои от сървърите отскоро вече имат възможност за s2s шифриране *НЕ* означава, че на практика тази възможност е настроена в самите сървъри. Или че изобщо сървърните пакети са обновени. Затова - проверявайте. Добрият клиент трябва да поддържа ServiceDiscovery (“disco”) и да може да дава подробна информация за сървъра.

——

И сега - какво? Ами… нищо - аз си ползвам шифриране с електронни ключове в моя Psi. И говоря свободно само с малкото хора в списъка ми, които са включили тази настройка, защото разбират положението на нещата.

Говоря и с другите; някои от тях са ми близки приятели. Но внимавам какво пиша и давам чувствителни данни само ако те се съгласят и след като им кажа, че връзката не е сигурна. И го правя с нежелание.

Но какво да се прави. Всъщност то все още има линуксчии, всякакви други хора, вярващи в софтуерната свобода, които продължават да използват icq, yim, msn и какви ли още не бозици.

А пък аз съм тръгнал да говоря за сигурност…

В обобщение: използвайте колкото се може по-близък сървър. Не само заради скоростта на връзката до него, а и заради по-голямата възможност да познавате администратора му и/или да имате по-голямо доверие на специалистите и защитните стени около машинката. ;) Проверявайте версиите и другите данни за сървъра - от уеб-страница за състоянието му или през disco.

И второ - използвайте винаги SSL/TLS връзка със сървъра. Не вреди, а пък в редки случаи може да повиши сигурността на връзката. Е, поне паролата ви към сървъра е защитена. ;)

И накрая, но най-важно - използвайте GPG за шифриране клиент-клиент. Намерете си клиент, който го поддържа и разкажете на хората в списъка ви за предимствата.

За да може някой ден да приемаме сигурността като нещо естествено, а не нещо супер-специално и прекалено user-unfriendly. Да си изградим security reflex. ;)



Tags:
21 April, 2005 - 10:19
0 коментара
 

Syndicate content