Vysok´E Uˇcení Technick´E V Brnˇe

Vysok´E Uˇcení Technick´E V Brnˇe

VYSOKEU´ CENˇ ´I TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACNˇ ´ICH TECHNOLOGI´I USTAV´ INFORMACNˇ ´ICH SYSTEM´ U˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS VZDALEN´ Y´ INTERPRET PRˇ ´IKAZU˚ OS GNU/LINUX JAKO JABBER/XMPP ROBOT BAKALA´ RSKˇ A´ PRACE´ BACHELOR’S THESIS AUTOR PRACE´ MICHAL PR´IVOZN´IK AUTHOR BRNO 2008 VYSOKEU´ CENˇ ´I TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACNˇ ´ICH TECHNOLOGI´I USTAV´ INFORMACNˇ ´ICH SYSTEM´ U˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS VZDALEN´ Y´ INTERPRET PRˇ ´IKAZU˚ OS GNU/LINUX JAKO JABBER/XMPP ROBOT A REMOTE SHELL FOR GNU/LINUX OPERATING SYSTEM AS A ROBOT OF JABBER/XMPP PROTOCOL BAKALA´ RSKˇ A´ PRACE´ BACHELOR’S THESIS AUTOR PRACE´ MICHAL PR´IVOZN´IK AUTHOR VEDOUC´I PRACE´ Mgr. MAREK RYCHLY´ SUPERVISOR BRNO 2008 Abstrakt Ciel’om pr´aceje zozn´amenie sa s otvorenou siet’ou Jabber/XMPP a princ´ıpmijej fungovania. Tento projekt je zameran´yna interpretovanie pr´ıkazov operaˇcn´eho syst´emu GNU/Linux a zasielanie ich v´ystupov sp¨at’ uˇz´ıvatel’ovi. Kl´ıˇcov´aslova Jabber, XMPP, robot, shell, OpenPGP, Linux Abstract The aim of this thesis is acquaint oneself with open Jabber/XMPP network, it’s standards and priciples of working. This project is aimed to interpret GNU/Linux commands and send their outputs back to user. Keywords Jabber, XMPP, robot, shell, OpenPGP, Linux Citace Michal Pr´ıvozn´ık: Vzd´alen´yinterpret pˇr´ıkaz˚uOS GNU/Linux jako Jabber/XMPP robot, bakal´aˇrsk´apr´ace, Brno, FIT VUT v Brnˇe, 2008 Vzd´alen´yinterpret pˇr´ıkaz˚uOS GNU/Linux jako Jabber/XMPP robot Prohl´aˇsen´ı Prehlasujem, ˇzesom t´uto bakal´arskupr´acu vypracoval samostatne pod veden´ımMgr. Ma- reka Rychl´eho.Uviedol som vˇsetky liter´arnepramene a publik´acie, z ktor´ych som ˇcerpal. ....................... Michal Pr´ıvozn´ık 5. kvˇetna2008 Podˇekov´an´ı R´adby som pod’akoval svojmu ved´ucemu Mgr. Marekovi Rychl´emu za ´ustretov´ypr´ıstupa hodnotn´epripomienky. c Michal Pr´ıvozn´ık, 2008. Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´emuˇcen´ı technick´emv Brnˇe,Fakultˇein- formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇenaautorsk´ymz´akonem a jej´ıuˇzit´ıbez udˇelen´ıopr´avnˇen´ı autorem je nez´akonn´e,s v´yjimkou z´akonemdefinovan´ych pˇr´ıpad˚u. Obsah 1 Uvod´ 3 2 Te´oria 4 2.1 Z´akladn´epojmy .................................. 4 2.1.1 Instant Messaging ............................ 4 2.1.2 XML .................................... 4 2.1.3 XMPP ................................... 6 2.2 Fungovanie XMPP/Jabber ............................ 8 2.3 Jabber a OpenPGP ............................... 13 2.4 Jabber servery a klienti ............................. 14 2.4.1 Psi ..................................... 14 2.4.2 Gajim ................................... 14 2.4.3 Miranda .................................. 14 2.4.4 Web a mobiln´yklienti .......................... 15 2.4.5 Jabberd 1.x ................................ 15 2.4.6 Jabberd 2 ................................. 16 2.4.7 eJabberd ................................. 16 3 N´avrh 17 3.1 Sluˇzbavs. klient ................................. 17 3.1.1 Klient ................................... 17 3.1.2 Sluˇzba ................................... 17 3.2 Triedy robota ................................... 18 3.3 Kniˇznice a implementaˇcn´yjazyk ........................ 18 4 Implement´acia 20 4.1 Princ´ıp ....................................... 20 4.2 Konfigur´acia ................................... 21 4.3 White list ..................................... 22 4.4 GPG ........................................ 23 4.5 Shell ........................................ 23 4.6 Konverzia k´odovania ............................... 24 4.7 Dalˇs´ıv´yvojˇ .................................... 24 5 Z´aver 26 1 6 Pr´ılohy 28 6.1 Inˇstal´aciarobota ................................. 28 6.2 Pr´ıkladkonfiguraˇcn´ehos´uboru ......................... 28 2 Kapitola 1 Uvod´ T´utot´emu bakal´arskej pr´acesom si vybral kvˆolimojmu pozit´ıvn´emu vzt’ahu k XMPP proto- kolu. Tento protokol dnes expanduje (vd’aka jeho otvorenosti) a na poli instant messaging-u sa st´ava ˇcorazpopul´arnejˇs´ım. V prvej kapitole sa zozn´amimeso z´akladn´ymipojmami, vysvetl´ıme si ako siet’ funguje a predstav´ımesi najv´yznamnejˇsie programy V druhej si vysvetl´ımerozdiel medzi sluˇzbou a klientom a navrhneme rieˇsenia, zodel´ıme robota do jednotliv´ych logick´ych ´usekov. V tretej podrobne rozoberieme a pop´ıˇseme implement´aciurobota, zdˆovodn´ımpostup a rieˇsenia jednotliv´ych podprobl´emov (GPG ˇsifrovanie, konverzia k´odovania, ... ), naˇcrtnem moˇznosti d’alˇsiehov´yvoja aplik´acie. Napokon v poslednej zhodnot´ım projekt ako tak´ya jeho pr´ınos. 3 Kapitola 2 Te´oria V tejto kapitole sa budeme zaoberat’ z´akladn´ymipojmami, ktor´ebudeme potrebovat’ pri n´avrhu robota a n´aslednejimplement´aci´ı. 2.1 Z´akladn´epojmy 2.1.1 Instant Messaging Na komunik´aciu l’ud´ıpo internete sl´uˇzie-mail, elektronick´aobdoba poˇsty, ktor´ym´avˇsak radu nev´yhod. Je s´ıcer´ychlejˇs´ıneˇzak´akol’vek poˇsta, no st´aleto nie je komunik´acia v re´alnom ˇcase. Niektor´eprogramy s´ıcekontroluj´ue-mailov´uschrank´uv urˇcit´ych ˇcasov´ych intervaloch, no nie v dostatoˇcn´ych. A to je pr´ave ´uˇcelom Instant Messaging-u, fenom´en dneˇsnej doby. Vol’ne by sa tento term´ındal preloˇzit’ ako r´ychle spr´avy“.Programy z tejto kateg´orie sa ” snaˇziadoruˇcit’ spr´avy priamo uˇz´ıvatel’ovi a nie len do akejsi schr´anky, odkial’ si ju uˇz´ıvatel’ neskˆorvyzdvihne. Rovnako pren´aˇsaj´uaj inform´aciuo stave uˇz´ıvatel’a – ˇci dotyˇcn´y,komu spr´avu chceme poslat’ je pr´ıtomn´y,pr´ıpadne pracuje a neˇzel´asi byt’ ruˇsn´yapod. Nie je to s´ıcekomunik´aciav re´alnom ˇcase v pravom zmysle slova, ale v takmer re´alnom. Nie je totiˇzdefinovan´adoba, za ktor´usa maj´uspr´avydoruˇcit’. Naproti tomu, komunik´aciu v ozajstnom re´alnom ˇcase, kde ˇcoi len mal´eoneskorenie vpl´yva na kvalitu sluˇzby, l’udia (zatial’) nepotrebuj´u. V beˇznom rozhovore totiˇzsekundov´eoneskorenie nehr´arolu, no v stabilizaˇcn´ych syst´emoch raketopl´anov mˆoˇze spˆosobit’ p´ad. Probl´emomt´ychto syst´emov vˇsak je to, ˇzena rozdiel od e-mailu, nevych´adzaj´uz jedn´eho ˇstandardu. Nie s´ukompatibiln´e.Prev´adzkovatelia ˇcastoani nechc´u, aby sme my, uˇz´ıvatelia, mohli komunikovat’ s niek´ym, kto nepouˇz´ıva zrovna ten ich protokol. Medzi najzn´amejˇsie IM syst´emy patr´ı: Internet Relay Chat (IRC), MSN Messanger. V Ceskejˇ republike, na Slovensku a v Izraeli sa vel’kej obl’ube teˇs´ıICQ. V rˆoznych IM s´uuˇz´ıvatel’ia rˆozne identifikovan´y.ICQ oznaˇcuje uˇz´ıvatel’a len ak´ymsi ˇc´ıslom, MSN e-mailom, XMPP/Jabber tzv. JID, ktor´ysa podob´ana e-mail, IRC identifikuje uˇz´ıvatel’a na z´aklade prez´yvky (nick). 2.1.2 XML XML (eXtensible Markup Language) je jazyk sl´uˇziaci na v´ymenu d´at.Jeho predchodcom bol SGML (Standard Generalized Markup Language).[4] Ked’ˇzeXML je znaˇckovac´ıjazyk, dokumenty v tomto jazyku s´uvlastne s´ubor znaˇciek(s pr´ıpadn´ymi atrib´utami). XML m´a, 4 Obr´azek 2.1: Grafick´areprezent´aciastromovej ˇstrukt´ury podobne ako napr. HTML1, p´arov´ea nep´arov´eznaˇcky. P´arov´esa skladaj´uz otv´aracej a ukonˇcovacej znaˇcky, zatial’ ˇconep´arov´elen z jednej znaˇcky, ktor´aje otv´araciaa ukonˇcovacia z´aroveˇn. Naviac, XML rozdeluje d´atav dokumente do stromovej ˇstrukt´ury: <?xml version="1.0" encoding="utf-8"?> <person> <name> <first>Ferdinand</first> <last>Mrkviˇcka</last> </name> <birth> <date>16.02.1988</date> <place>Zilina</place>ˇ </birth> <!-- koment´ar--> <email>[email protected]</email> </person> Tento pr´ıklad obsahuje koreˇnov´yelement person, ktor´ym´atroch potomkov: name, birth a email. Podobne name m´apotomkov first a last, birth m´a datea place (obr´azok 2.1). Elementy v jazyku XML sa naz´yvaj´u tagy. Dˆoleˇzitouvlastnost’ou XML dokumentov je, ˇze tagy mˆoˇzubyt’ vnoren´e,no nesm´usa kr´ıˇzit’: <p>Prv´yodstavec s <b>tuˇcn´ymp´ısmom</p></b> Kaˇzd´ytag mˆoˇze obsahovat’ atrib´ut, ktor´ysa uv´adzado ´uvodzoviek: <tag atribut="prv´yatrib´ut"trieda="druh´yatrib´ut"/> Jeden tag mˆoˇzeobsahovat’ atrib´utov viac, no nemus´ıani jeden. Aj ked’ uˇzvytvor´ıme spr´avnezostaven´yXML dokument, teda dodrˇzalisme vˇsetky syntaktick´epravidl´a,zost´ava ot´azka, ˇcije dokument validn´y– vyhovuje s´emantike. T´asa 1HyperText Markup Language 5 definuje na zaˇciatku dokumentu: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> S´emantika stanovuje, ktor´etagy s´upovinn´e, ktor´evolitel’n´e,ktor´eatrib´uty s´upr´ıustn´e; S´emantiku mˆoˇzeme deklarovat’ dvoma spˆosobmi:defin´ıciatypu dokumentu (DTD) alebo XML sch´ema(XML schema). Na pr´acu s XML dokumentami sa pouˇz´ıvaj´uˇspecializovan´ekniˇznice. Hoci ide o jedno- duch´yform´ats´uboru, pr´acas n´ım je n´aroˇcn´ana dodrˇzanie vˇsetk´ych pravidiel. Specialitouˇ s´uXML streamy - teda XML dokumenty, ktor´evznikaj´uv re´alnom ˇcase, a rovnako v re´alnom ˇcaseich je treba spracov´avat’. Nemoˇznoˇcakat’ aˇzna ukonˇcenie spojenia a aˇzpotom zaˇcat’ spracov´avat’ dokument (napr. dokument sa vytv´arana z´aklade interakcie uˇz´ıvatel’a). Probl´emmˆoˇze nastat’ pri ˇc´ıtan´ıp´arov´ych tagov, ktor´eeˇstenepriˇslikompletn´e. XMPP pro- tokol pr´ave patr´ıdo skupiny XML streamov. 2.1.3 XMPP XMPP (Extensible Messaging and Presence Protocol)[15] je protokol aplikaˇcnej vrstvy sl´uˇziacina v´ymenu spr´avmedzi dvoma entitami na internete.[5] V podstate ide o kom- bin´aciuXML2 a IM, aj ked’ niektor´etypy d´atnesmie obsahovat’ (koment´are,bin´arne d´ata) Pouˇz´ıvanou, no nie vyˇzadovanou, architekt´urou je klient – server, klienti teda medzi sebou nekomunikuj´upriamo, ale cez siet’ serverov. Cel´at´atosiet’ je decentralizovan´a.Neexis- tuje ˇziadny centr´alny server (tak ako napr´ıkladpri ICQ), ktor´yby zaruˇcoval chod siete (v´ymenu inform´aci´ımedzi uˇz´ıvatel’mi). XMPP sa tieˇzzvykne oznaˇcovat’ pojmom Jabber. Do slovenˇciny by sa tento term´ındal vol’ne preloˇzit’ ako bl’abot, bl’abotat’, dˇzavotat’. V roku 1998 zaˇcalJeremie Miller projekt Jabber. Prv´ym produktom bol jabber server jabberd. Jabber neskˆorvy´ustildo ˇstandardu XMPP (rok 2004).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    33 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us