-58.1.2.Regisztráció...24 8.1.3.A kezdő felület...25 8.1.4.Domainek...26 8.1.5.Beállítások...28 8.1.6.Jelszó módosítása...28 8.1.7.



Hasonló dokumentumok
SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ

SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ

SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ

Hiteles Elektronikus Postafiók

Az autorizáció részletes leírása

Oktatási anyag az MLSZ-IFA rendszerhez

POSZEIDON dokumentáció (1.2)

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

Digitális aláíró program telepítése az ERA rendszeren

Albacomp RI Rendszerintegrációs Kft Székesfehérvár, Mártírok útja 9. E K O P - 1. A. 2 - A D A T Á L L O M Á N Y O K

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Telenor Magyarország MS Office 365 telepítési útmutató

A Perkapun keresztül a gazdálkodó szervezetek és a jogi képviselővel eljáró felek nyújthatják be beadványaikat. A szolgáltatást kizárólag

Novell és Windows7 bejelentkezési jelszavak módosítása

Sú gó az ASIR/PA IR Públikús felú lethez

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Felhasználói kézikönyv

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

T-Online-os Ügyfelek postafiókjainak áttétele Virtualoso szolgáltatásra. Ha az ügyfél még nem rendelkezik saját domain névvel

A T-Online-os Ügyfelek postafiókjainak áttétele Virtualoso szolgáltatásra. Ha az ügyfél már rendelkezik saját domain névvel

RBLDNS DNS-based blocklists management felhasználói kézikönyv

WordPress segédlet. Bevezető. Letöltés. Telepítés

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése

Hálózati adminisztráció Linux (Ubuntu 9.04) 9. gyakorlat

Magyar Kereskedelmi és Iparkamara HelpDesk rendszer. Felhasználói útmutató

Digitális aláíró program telepítése az ERA rendszeren

Cikktípusok készítése a Xarayában

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Hálózati architektúrák laborgyakorlat

Példa webáruház kialakítás rendszerdokumentáció

ALKALMAZÁSOK ISMERTETÉSE

WIN-TAX programrendszer frissítése

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

TERC V.I.P. hardverkulcs regisztráció

PHP-MySQL. Adatbázisok gyakorlat

Parlagfű Bejelentő Rendszer

Vectory telepítési útmutató

Regisztráció folyamata az admin.kozadat.hu oldalon az Új adatgazda regisztráció menüpontban

MÉRY Android Alkalmazás

Felhasználói dokumentáció a teljesítményadó állományok letöltéséhez v1.0

Névfeloldás hosts, nsswitch, DNS

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Felhasználói kézikönyv a WEB EDInet rendszer használatához

KTI Közlekedéstudományi Intézet Nonprofit Kft. Vasúti Vizsgaközpont

Mobil Partner telepítési és használati útmutató

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

Jelentkezési lap képző szervek részére

Útmutató. Elektronikus ügyintézéshez a oldalon július 25. Oldal: 1 / 8

Active Directory kiegészítő kiszolgálók telepítése és konfigurálása Windows Server 2003 R2 alatt

Hungaropharma Zrt. WEB Áruház felhasználói útmutató. Tartalomjegyzék

ContractTray program Leírás

Útmutató a évi szabadidősportos pályázatok elektronikus beadásához

DebitTray program Leírás

Dropbox - online fájltárolás és megosztás

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.

Felhasználói kézikönyv MAGYAR NEMZETI BANK. ERA keretrendszer

Felhasználói kézikönyv

FELHASZNÁLÓI ÚTMUTATÓ

FELHASZNÁLÓI KÉZIKÖNYV

BEJELENTKEZÉS AZ EPK RENDSZERÉBE

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43


OKTATÁSKUTATÓ ÉS FEJLESZTŐ INTÉZET TÁMOP-3.1.5/ Pedagógusképzés támogatása

First Voice Kft. Stilldesign Üzletág

HC Csoport Ügyfélkapu

Mikroszámla. Interneten működő számlázóprogram. Kézikönyv

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

Gyári alkatrészek rendelése modul

Mappák megosztása a GroupWise-ban

TÁJÉKOZTATÓ az OTH Szakrendszeri Információs Rendszerbe (OSZIR) történő regisztráció és belépés menetéről belföldi partner nevében

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató

Virtualoso Server szolgáltatás Virtuális szerver használati útmutató

Nokia N97_mini (Mail for Exchange) beállítása Virtualoso levelezésre

web works hungary Rövid technikai tájékoztató a webhosting szolgáltatásról. (PLESK szerver)

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Tájékoztató e-közmű regisztrációhoz

Albacomp RI Rendszerintegrációs Kft Székesfehérvár, Mártírok útja 9. E K O P - 1. A. 2 - A D A T Á L L O M Á N Y O K

SZOLGÁLTATÓI NYILVÁNTARTÁSI RENDSZER FELHASZNÁLÓI KÉZIKÖNYV

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

Használati útmutató a Székács Elemér Szakközépiskola WLAN hálózatához

Invitel levelezés címek esetén

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

A CCL program használatbavétele

Ügyfélforgalom számlálás modul

ServiceTray program Leírás

FŐKÖNYV ÁLTALÁNOS TÁJÉKOZTATÓ TÖRZSEK KIALAKÍTÁSA

Felhasználói segédlet a Web of Knowledge / Web of Science adatbázis használatához

KIRA. KIRA rendszer. Telepítési útmutató v1

WEBrendelés modul Felhasználói kézikönyv

BaBér bérügyviteli rendszer telepítési segédlete év

Elektronikus ügyintézés súgó. Az Elektronikus ügyintézés kezdeményezésének lépései:

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Szolgáltatói Adminisztrátori leírás

Hiteles Elektronikus Postafiók

TELEPÍTÉSI ÉS FELHASZNÁLÓI ÚTMUTATÓ

QB-Suli Felhasználói útmutató verziószám: március 4.

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Átírás:

-1-

-2-

-3-

-4-1. Tartalomjegyzék 1.Tartalomjegyzék...4 2.Bevezetés...7 3.A probléma elemzése, specifikáció kidolgozása...8 3.1.A DNS azaz a Domain Name System (Domain Név Rendszer) működése...8 3.2.A DNS zónák felépítése...9 3.2.1.A zóna bejegyzés:...9 3.2.2.A forward zóna:...10 3.2.3.A reverse zóna:...12 3.3.A DNS problémája...13 4.Lehetséges megközelítési módok...14 4.1.Igénylő rendszer kialakítása a frissítéshez...14 4.1.1.A rendszer előnyei:...14 4.1.2.A rendszer hátrányai:...14 4.2.Dinamikus DNS kiszolgáló szerver fejlesztése...15 4.2.1.A rendszer előnyei:...15 4.2.2.A rendszer hátrányai:...15 5. Módszer kiválasztása, a választás indoklása...16 6.A program részletes specifikációja...17 6.1.A programmal szemben támasztott követelmények:...17 7.A tervezés során végzett munkafázisok...20 7.1.Megvalósítási mód kiválasztása...20 7.1.1.Operációs rendszer választása:...20 7.1.2.Adatbázis kiválasztása:...20 7.1.3.Futtatói környezet kiválasztása:...21 7.2.Adatbázis szerkezet felépítése...21 8.A megvalósítás leírása, elemzése...24 8.1.Felhasználói dokumentáció...24 8.1.1.Belépés a rendszerbe...24

-58.1.2.Regisztráció...24 8.1.3.A kezdő felület...25 8.1.4.Domainek...26 8.1.5.Beállítások...28 8.1.6.Jelszó módosítása...28 8.1.7.E-mail cím módosítása...29 8.1.8.Kijelentkezés gomb...29 8.1.9.Adminisztráció gomb...30 8.1.10.IP cím frissítése...30 8.2.Adminisztrátori dokumentáció...31 8.2.1.Az adminisztrátor lehetőségei...31 8.2.2.Felhasználók kezelése...31 8.2.3.Domainek felvitele...32 8.2.4.Aldomainek kezelése...33 8.2.5.Jogosultságok kezelése...34 8.3.Programozói dokumentáció...35 8.3.1.Az index.php...35 8.3.2.A login.php...36 8.3.3.A regisztráció (reg.php)...37 8.3.4.A regisztráció megerősítése...37 8.3.5.A main.php...38 8.3.6.A domainek.php...38 8.3.7.Beállítások (settings.php)...39 8.3.8.Jelszó változtatás...39 8.3.9.E-mail változtatás...39 8.3.10.Adminisztráció...40 8.3.11.Felhasználó karbantartás...40 8.3.12.Domainek karbantartása...41 8.3.13.Aldomainek karbantartása...42 8.3.14.Jogosultságok karbantartása...43

-68.3.15.Kijelentkezés (logout.php)...43 8.3.16.A fejléc (header.php)...44 8.3.17.Lábléc (footer.php)...44 8.3.18.Globális beállítások (conf.php)...44 8.3.19.Függvények (fuggvenyek.php)...44 8.3.20.Aldomain frissítő, hozzáadó, törlő script...47 8.3.21.A frissítés lekezelését végző php...47 9.A program működési tesztje...49 10.Összefoglalás...52 11.Summary...53 12.Irodalomjegyzék...54 13.A CD-ROM melléklet tartalma...55

-7-2. Bevezetés A feladat annak megoldása, hogy az időnként a szolgáltatótól más-más IP-címet kapó szerver gépek, ugyanazon a domain néven legyenek elérhetőek. A szolgáltatások domain alapján történő elérése miatt ez egy nagyon fontos dolog. A megoldás egy adatbázis alapú, webes regisztrációs felületet tartalmaz, amelyen regisztrálhatóak az aldomainek. Ezek frissítését a szervereken időközönként lefutó IP frissítő programmal valósítottam meg. Az aldomainek regisztrációja a felületen történik, amelyen minden felhasználó a kijelölt domainekhez férhet csak hozzá, egyéni azonosítással. A dolgozat bemutatja a felhasznált technológiákat, a tervezési megfontolásokat, az adatbázis felépítését, a programot és a felhasználói, adminisztrátori, illetve programozói dokumentációt.

-8-3. A probléma elemzése, specifikáció kidolgozása 3.1. A DNS azaz a Domain Name System (Domain Név Rendszer) működése. A DNS egy hierarchikus, osztott elnevezési rendszer, számítógépek, szolgáltatások, illetve bármilyen más hálózatra kötött erőforrás számára amelyet 1983-ban Paul Mockapetris alakított ki[1]. A rendszer lényege, hogy ne kelljen a felhasználónak megjegyeznie, és állandóan beírnia a kapcsolódási szándékából következő cél szerver IP címét (pl.: 195.228.74.124), hanem egyszerűen egy névvel hivatkozni tudjon az adott rendszerre. Ezt valósítja meg a DNS oly módon, hogy az erre kijelölt DNS névfordító gépek feloldják a domaint a náluk meglévő IP címmé és így kiszolgálhatóvá teszik a kérést. Ez alapján például a w5.hu gépnévhez a 94.125.248.21 IP cím tartozik (3.1 ábra). (3.1 ábra Névfeloldás) A DNS feloldáshoz nem szükséges egy központi fordító állomást állandóan üzemeltetni. A név feloldáshoz először a fő névkiszolgálókhoz fordulnak a gépek (amennyiben a saját névkiszolgálója nem tartalmazza a szükséges bejegyzést). Ezek szolgáltatják az országos domain neveket (pl.:.hu.org.info) és tartalmazzák a további névfordítókat. Így tulajdonképpen egy fa struktúrát alakítanak ki, amely ágain haladva könnyen feloldhatóak a címek. Lássunk erre egy példát. Valamely számítógép keresi a [1] Forrás: http://hu.wikipedia.org/wiki/domain_name_system

-9houston.debilinux.hu címét. Először a.hu feloldásáért felelős gépet keresi meg, majd ezután fordul a debilinux.hu fordításáért felelős géphez, majd így fordított sorrendben végighaladva eljut addig a gépig amely szolgáltatni fogja neki a houston.debilinux.hu IP címét. A névfeloldáshoz a bejegyzéseket a névszerverek úgynevezett zónákban tárolják. A zónák tartalmaznak egy FORWARD és egy REVERSE nevű részt. A forward részben vannak azok a bejegyzések, amelyek a domain-t IP címmé alakítják, míg a reverse rész az adott IP címhez szolgáltat domain nevet. 3.2. A DNS zónák felépítése. 3.2.1. A zóna bejegyzés: A DNS zóna definiálásakor (amely a névszerver konfigurációjában történik) meg kell adni a zóna típusát (master vagy slave amelynél a slave a masterről frissíti az információit), a fájlt amely tartalmazza a zóna tulajdonságait és bejegyzéseit, illetve egy bejegyzést arról, hogy honnan elérhető az adott zónafájl (any esetén bárhonnan). A reverse zóna neve adott. Ezt meghatározza a tartomány neve, amely formátuma az IP cím nem változó részei fordított sorrendben ponttal elválasztva, majd az in-addr.arpa felirat. Pl.: Ha egy lokális zónát definiálunk a 192.168.0.0/24 -es hálózatra akkor a reverse zóna neve 0.168.192.in-addr.arpa. A konfigurációban így néz ki egy zóna bejegyzés: zone tesco { type master; file /etc/bind/tesco; allow-transfer {any;}; };

- 10 zone 0.168.192.in-addr.arpa { type master; file /etc/bind/tescorev ; }; Ez a minimális követelmény egy zóna bejegyzésére. Ezek után nézzünk egy példát a zónafájlok felépítésére is. 3.2.2. A forward zóna: (3.2 ábra A forward zóna) A forward zóna (3.2 ábra) egy TTL (Time To Live) értékkel kezdődik, amely meghatározza, hogy mennyi ideig érvényes a belőle kinyert információ. Ez után következik egy SOA rekord. Ebben kell definiálni a zóna alapvető tulajdonságait. A @ jel a zóna nevére illeszkedik, így nem kell mindig kiírni azt. A localhost. az elsődleges névszervert határozza meg, a root.localhost pedig egy e-mail cím, amely a @ elválasztó helyett pontot alkalmaz. Ezek után következik 5db szám, melyekből az elsővel szokás jelölni az utolsó módosítás dátumát. Alapesetben ez csak egy növelendő szám, amely alapján ellenőrzik a slave-ek, hogy történt-e módosítás a zónában, de ha a

- 11 dátumot írjuk bele az információval szolgálhat a későbbiekben. A második szám a Refresh. Ez határozza meg, hogy mennyi időnként ellenőrizzék a slavek, hogy történt-e módosítás. A retry határozza meg, hogy ha nem elérhető a névszerver, akkor ennyi időnként próbálkozzanak újra. Az utolsó előtti expire szám azt adja meg, hogy mennyi ideig szolgáltathatják a zónát a slavek ha az elsődleges névszerver nem elérhető. A Negative Cache TTL adja meg mennyi ideig cache-elhessen egy bejegyzést. A számok minden esetben másodpercben értendők. A következő rekord (@ IN NS localhost.) a névszerver rekord. Ez határozza meg, hogy milyen címen érhető el a névszerver. Jelen esetben localhost tehát a saját névszerverét használja. Megadható több ilyen rekord is, ilyen esetben terhelés-megosztással működik a feloldás. Az ezt követő (@ IN A 192.168.0.1) rekord egy A típusú rekord, amely IP címet képes rendelni egy adott domain névhez. A domain név itt a zóna neve a @ miatt. A felépítés tehát láthatóan a következő: <domainnév> IN A <ip cím>. A következő egy CNAME típusú rekord (geery IN CNAME @). Ennek a típusnak a lényege hogy domaint képes rendelni egy másik domainhez, tehát a feloldás során egy másik domain nevet kapunk vissza. Ez akkor lehet hasznos, ha például van egy domain nevünk ami automatikusan frissül (mert például a mi névszerverünk frissíti) és van egy amit bérlünk. Ha a béreltet egy CNAME rekorddal a mi domain-ünkre állíttatunk nem kell mindig átirattatni az IP címet amire mutat. Az utolsó bejegyzésbe található AAAA rekord szinte teljes mértékben megegyezik az A rekorddal, csak annyi a különbség, hogy ezt használhatjuk Ipv6-os címek fordítására. Még létezik egy fontos rekord típus, az MX rekord. Ez az e-mail forgalom lebonyolításáért felelős, mert mint például itt is a tesco domaint a névszerver

- 12 192.168.0.1-re oldja fel, de így ha levélről van szó (pl.: geery@tesco) akkor ebben a bejegyzésben található címet fogja fordítani. Több ilyen rekorddal biztosítható, hogy ne vesszenek el a levelek, mert ha például egy másik átveszi akkor onnantól ő próbálja továbbítani az elsődlegesnek. Az MX rekordok súlyozhatóak. Mindig a kisebb súlyú értékkel próbálkozik először. 3.2.3. A reverse zóna: (3.3 ábra A reverse zóna) A reverse zóna (3.3 ábra) egy ugyan olyan SOA rekorddal kezdődik mint a forward és a működése is ugyanaz. Egy dologban tér el, mégpedig abban, hogy itt kell definiálni az úgynevezett PTR rekordokat. Ezek határozzák meg, hogy adott IP-t milyen domain névre oldjon fel a névszerver. Mivel a definícióban a 192.168.0 már meg van adva, itt elegendő a 2 IN PTR asus-geery. bejegyzés. Ha 192.168-ig lett volna csak, abban az esetben 2.0-t kellene megadni, tehát itt is fordított sorrendben.

- 13 3.3. A DNS problémája A DNS rendszer működése felvet bizonyos problémákat. Az egyik ilyen nagyobb közülük az internet szolgáltatók megoldásaiban rejlik. Némelyik szolgáltató (főleg a DSL-ekre jellemző) 24 óránként bontja az internet kapcsolatot és másik IP címet oszt ki az ügyfélnek. Amennyiben az ügyfél valamilyen (pl.: VNC) szolgáltatást üzemeltet, ez az IP változás problémákat vet fel. A DNS látszólag megoldás erre, de viszont fontos dolog hogy a domain nevek frissüljenek az adott IP-re a lehető leggyorsabban. Amennyiben ez nem történik meg minél hamarabb, a VNC kliens a domain névvel sem tudja megtalálni az adott gépen futó szolgáltatást. Így a szolgáltatás elérhetőségi szempontból nagyon gyenge lesz. Erre a problémára kellene valamiféle gyors, megbízható, dinamikus megoldást találni.

- 14-4. Lehetséges megközelítési módok 4.1. Igénylő rendszer kialakítása a frissítéshez Az igénylő rendszer egy olyan rendszer, amelyben a felhasználók egy adott helyen jelzik IP cím változási problémájukat, majd a másik oldalon ezt egy adminisztrátor fogadja. Az adminisztrátor ezek után átállítja a kérés alapján a megfelelő domaint a megfelelő helyre. 4.1.1. A rendszer előnyei: A rendszer előnye, hogy az adminisztrátor ellenőrizhet minden kérést és így nem terhelik a rendszert a felhasználó által rosszul megadott kérések. 4.1.2. A rendszer hátrányai: Az egyik nagyon nagy hátránya ennek a megközelítésnek a sebesség. A kérésnek ugyanis idő kell ahhoz, hogy eljusson az őt kiszolgáló személyhez, így nem történhet meg azonnal a módosítás. A másik probléma, hogy ezzel emberi tényezőt viszünk a rendszerbe, ami felmerülhet később mint hibaforrás (pl.: valamit elír az adminisztrátor), továbbá nagyon magas költséggel is jár.

- 15 4.2. Dinamikus DNS kiszolgáló szerver fejlesztése A dinamikus DNS kiszolgáló szerver egy olyan szolgáltatást nyújt, amelyben a felhasználók a saját domainjeiket, saját maguk kezelhetik. Ilyen rendszerek több helyen léteznek már és használhatók is, ám vagy fizetősek, vagy korlátozottak. Egy saját dinamikus DNS kiszolgáló fejlesztése tehát hosszú távon jó befektetés lehet. 4.2.1. A rendszer előnyei: A rendszer előnye, hogy adott változtatás azonnal életbe lép, így nincs szolgáltatás kiesés. A másik nagy előny, hogy a felhasználók a szerveken futó (már létező és több helyről ingyen letölthető) IP frissítő kliens programokkal automatikusan frissíthetik a szervereik IP címét. További előny még, hogy egy jól megírt kiszolgáló képes jogosultságokkal korlátozni a felhasználókat, hogy csak a hozzájuk tartozó domainekhez férjenek hozzá. 4.2.2. A rendszer hátrányai: A fejlesztés költséges lehet, és a rendszert karbantartani is kell. Otthoni kisgépes környezetben nem hatékony, érdemes szerverre telepíteni.

- 16-5. Módszer kiválasztása, a választás indoklása A módszer kiválasztásánál összevetettem az előnyöket illetve hátrányokat és arra a következtetésre jutottam, hogy a saját DynDNS rendszer a legjobb választás. Ennek az oka, hogy minimális hátránnyal rendelkezik a statikus átírással szemben, a létező bérléssel szemben pedig annyiban jobb, hogy a fejlesztési költséget egyszer kell megfizetni, amely idővel megtérül.

- 17-6. A program részletes specifikációja 6.1. A programmal szemben támasztott követelmények: Felhasználó szintű azonosítás jelszóval védve Felhasználónév Jelszó (tárolás kódolva) Teljes név E-mail cím Regisztráció dátuma Admin jogosultság adása védett módon (felhasználói felületről ne lehessen) Megjegyzés Fő domainek tárolása, melyekhez aldomainek regisztrálhatók Domain neve Létrehozó tárolása Létrehozás dátumának tárolása Megjegyzés Lehessen publikussá tenni domaint, amihez bárki felvehet aldomaint

- 18 - Aldomainek tárolása Melyik fődomainhez tartozik Mi az amihez hozzárendelünk Mit rendelünk hozzá Milyen típusú az adott hozzárendelés (A,AAAA,MX,CNAME) Létrehozó tárolása Létrehozás dátuma Megjegyzés Lehetőség legyen adott domainhez adott usernek jogot adni Domain amihez a jogosultság tartozik Felhasználó aki kapja a jogosultságot Jogosultság létrehozójának tárolása Jogosultság keletkezésének dátuma Megjegyzés Adminisztrációs felület ahol az adminok karbantarthatják az egyes táblákat Felhasználók karbantartása (hozzáadás,törlés,módosítás) Domainek karbantartása (hozzáadás,törlés,módosítás) Aldomainek karbantartása (hozzáadás,törlés,módosítás) Jogosultságok karbantartása (hozzáadás,törlés,módosítás)

- 19 - Egyéb elvárt funkciók Adminisztrációs felületen törlés esetén ha vannak kapcsolódó rekordok más táblákban, csak figyelmeztetés után lehessen törölni (ilyenkor a kapcsolódó rekordok is törlődnek) Adott felhasználó csak azokhoz a domainekhez férhessen hozzá amelyekhez van jogosultsága, vagy publikusak Adott felhasználó korlátlan számú aldomaint vehessen fel A felhasználó módosíthassa a saját jelszavát és e-mail címét (ezen kívül semmi mást) Az adminisztrátor ne férhessen hozzá más jelszavához, csak módosítani tudja azt A felhasználó a már létező felépítésű IP frissítő klienssel aktualizálni tudja az IP címét

- 20-7. A tervezés során végzett munkafázisok 7.1. Megvalósítási mód kiválasztása 7.1.1. Operációs rendszer választása: Első dolog a megvalósítás kiválasztása során a futtatási környezet kiválasztása. Két lehetőség jött szóba operációs rendszer szinten, hogy Windows vagy Linux környezet alól üzemeltessem-e a szerver oldali programot. Megbízhatósági megfontolásból a Linuxos környezetet választottam, illetve azon okból is mert a Linux disztribúció ingyenes amely csökkenti az üzembe helyezés költségeit. Ha meg kellene vásárolni az operációs rendszert és még hozzá az adatbázis kezelőt is, a költségek nagyon magasak lennének. 7.1.2. Adatbázis kiválasztása: Linux operációs rendszer alatt több stabilan működő adatbázis kiszolgáló működik. Ilyenek például a PostgreSQL, a MySQL és még az OracleSQL is feltelepíthető bizonyos Linux disztribúciókra. Az adatbázis kiválasztásánál fontos tényező, hogy a bonyolultságnak megfelelő adatbázist válasszunk. Mivel az adatbázisban nincs szükségünk különleges képességekre ezért talán a legjobb a választás a MySQL. A MySQL egy többfelhasználós, többszálú, SQL-alapú relációs adatbázis-kezelő szerver, amely az egyik legelterjedtebb azon oknál fogva, hogy a teljesen nyílt forráskódú LAMP (Linux-Apache-MySQL-PHP) összeállítás részeként költséghatékony és egyszerűen beállítható megoldást ad a dinamikus webhelyek szolgáltatására.[2] [2] Forrás: http://hu.wikipedia.org/wiki/mysql

- 21 7.1.3. Futtatói környezet kiválasztása: A futtatói környezet kiválasztása volt talán az egyik legegyszerűbb feladat. Az adatbázis kiválasztását követően egyértelmű, hogy a MySQL az Apache webkiszolgálóval, és a PHP programnyelvvel képes a leghatékonyabban együtt dolgozni. Az Apache HTTP Server (röviden Apache) nyílt forráskódú webkiszolgáló alkalmazás, szabad szoftver, mely kulcsfontosságú szerepet játszott a World Wide Web elterjedésében. A projekt célja olyan webszerver program létrehozása, karbantartása, és fejlesztése, amely megfelel a gyorsan változó Internet követelményeinek, biztonságos, üzleti, vállalati felhasználásra is megfelelő és szabadon használható.[3] Tehát az Apache webszerver egy jó választás a megvalósításra. A PHP (Hypertext Preprocessor) Rasmus Lerdorf által 1994-ben megalkotott nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése és ingyenesen telepíthető a legtöbb operációs rendszerre.[4] 7.2. Adatbázis szerkezet felépítése A következő fázis az adatbázis felépítése volt. Ezen folyamatot először megpróbáltam teljesen a specifikáció alapján elkészíteni, de ki kellett egészíteni később a programozás logikájából következő mezőkkel. Az adatbázis táblák tehát a következőképpen alakultak: [3] Forrás: http://hu.wikipedia.org/wiki/apache_http_server [4] Forrás: http://hu.wikipedia.org/wiki/php

- 22 - (7.1 ábra) Az ábrán látható (7.1 ábra), hogy összesen négy táblát tartalmaz az adatbázis. A bal oldalon találhatóak az idegen kulcsot nem tartalmazó táblák, míg a jobb oldalon az ezekből kialakult jogosultság összerendelő, és aldomain összerendelő táblák. A user tábla tartalmazza a felhasználók adatait, mint például e-mail címüket, teljes nevüket. Itt az elsődleges kulcs maga a felhasználó neve, amely így "unique" tehát egy felhasználónév csak egyszer szerepelhet. A domain tábla tartalmazza a fő domaineket, melyeket egyértelműen meghatároz a nevük, így ez lett az elsődleges kulcs. Tartalmazza még a tábla a létrehozó nevét, a létrehozás idejét, megjegyzést, és egy "public" nevű mezőt, amely meghatározza hogy az adott domainhez bárki hozhat-e létre aldomaint. A következő tábla a "grants". Ez a tábla tartalmazza hogy adott felhasználó melyik nem

- 23 publikus domainhez férhet hozzá. Ehhez szükség van két idegen kulcsra, a felhasználóra akinek a jogosultságot adjuk, és a domain nevére amelyhez hozzáférhet. Ezen felül tárolódik, hogy ki adta a jogosultságot a felhasználónak, mikor adta, és esetlegesen megjegyzést lehet hozzáfűzni, hogy miért kapta a felhasználó a jogosultságot. Ebben a táblában az elsődleges kulcs megosztva a felhasználó neve és a domain. A negyedik tábla a "subdomain". Ez a tábla tartalmazza az összes létrehozott aldomaint. Szintén két idegen kulcsa van, a domain neve amelyhez az aldomain tartozik, illetve a user aki létrehozta. Ennél a táblánál egy domainhez, azonos típusú rekord, csak egy néven hozható létre, így ez a három lett összetetten az elsődleges kulcs. A tábla tartalmazza még hogy milyen IP címre vagy domainre mutat az adott rekord, illetve a létrehozás időpontját és a megjegyzés mezőt.

- 24-8. A megvalósítás leírása, elemzése 8.1. Felhasználói dokumentáció 8.1.1. Belépés a rendszerbe (8.1. ábra Belépés) A felhasználó a weboldalra lépve az 8.1. ábrán látható felülettel találkozik. Amennyiben már van hozzáférése a rendszerhez, a felhasználó nevének és jelszavának beírásával, valamint a Belépés gombra kattintással tudja azonosítani magát. 8.1.2. Regisztráció Amennyiben a felhasználó még nem rendelkezik az azonosításhoz szükséges adatokkal, ez esetben regisztrálnia kell magát a rendszerben. A regisztráció gombra kattintva a 8.2. ábrával találkozik.

- 25 - (8.2. ábra Regisztráció) Itt adhatja meg a kívánt felhasználói nevét, illetve az érvényes e-mail címét. Sikertelen a regisztráció ha az e-mail cím vagy a felhasználó név már használatban van. Sikeres regisztráció esetén egy e-mailes értesítést kap a regisztráció megerősítéséről. Az e-mail tartalmaz egy linket mellyel véglegesíthető a regisztráció. Ha ez is megtörtént az oldalon a "Sikeres megerosites! Most mar belephetsz! A jelszavadat a megadott címre elküldtük!" felirat jelenik meg, és egy "Vissza a bejelentkezéshez" link. Az e-mailben kapott jelszóval, és a kiválasztott felhasználó névvel így már azonosítani tudja magát a felhasználó a rendszerben. 8.1.3. A kezdő felület (8.3. ábra Kezdő felület)

- 26 - Az 8.3. ábrán látható kezdő felület jelenik meg sikeres bejelentkezés esetén. A főoldalon olvashatóak az éppen aktuális hírek, esetleg tervezett leállási dátumok, vagy bármely olyan információ melyet az adminisztrátor megoszt. A felső sorban található egy menü. Ezzel lehet a kívánt oldalra navigálni. 8.1.4. Domainek A domainek gombra kattintva az alábbi 8.4. ábra jelenik meg. (8.4. ábra Domain választó) Itt látható, hogy mely domainek elérhetők a számunkra. Amennyiben nem jelenik meg egy domain sem, abban az esetben az adott rendszeren nincsenek publikus domainek és nincs jogosultságunk egyetlen domainhez sem. A megfelelő domain kiválasztásával az 8.5. ábra jelenik meg.

- 27 - (8.5. ábra Domainek) Egy táblázat tartalmazza az összes általunk létrehozott aldomaint. Az alsó részen lehetőségünk van regisztrálni aldomaineket a megfelelő mezők kitöltésével. Például ha az adott domainen például a valami.hu-n szeretnénk létrehozni egy valaki.valami.hu rekordot amely a mi ip címünkre mutat amely mondjuk a 123.45.67.89, abban az esetben a "MIT:" feliratú mezőbe írjuk a "valaki" szót, ezután válasszuk az A rekord típust, majd a "MIRE:" mezőbe írjuk be az IP címünket. Ezek után a létrehoz gombra kattintva létrejön a megadott rekord. Amennyiben egy aldomainre már nincs szükségünk, egyszerűen eltávolíthatjuk a sor végén lévő "Törlés" gombbal.

- 28 8.1.5. Beállítások A Beállítások oldalon két lehetőségünk van. Az egyik a jelszó módosítása, amely első bejelentkezés után ajánlott, a másik pedig az e-mail címünk módosítása. 8.1.6. Jelszó módosítása (8.6. ábra Jelszó változtatás) A jelszó módosításához (8.6. ábra) kattintsunk a jelszó váltás linkre, majd meg kell adnunk a régi jelszavunkat. Ezzel védjük a felhasználót, hogy esetlegesen másik személy módosítani tudja a jelszavát. Ezek után kétszer meg kell adnunk az új jelszót. A két jelszónak meg kell egyeznie és legalább 6 karakteres kell hogy legyen. Amennyiben minden rendben zajlott a rendszer tudatja velünk a jelszó frissítés sikerességét.

- 29 8.1.7. E-mail cím módosítása (8.7. ábra E-mail változtatás) E-mail cím módosításához (8.7. ábra) válasszuk az E-mail változtatása linket. Itt szintén szükséges megadnunk a régi e-mail címünket, majd kétszer az újat. Amennyiben valós címet adtunk meg a rendszer jelzi hogy a frissítés megtörtént. 8.1.8. Kijelentkezés gomb A kijelentkezés gomb segítségével megszüntethetjük az adott munkamenetet. Ez olyan esetekben lehet hasznos, hogy ha például publikus helyről jelentkeztünk be és az utánunk következő esetlegesen hozzáfér a felhasználónkkal a rendszerhez.

- 30 8.1.9. Adminisztráció gomb Az adminisztráció menüpont csak adminisztrátori jogosultság esetén jelenik meg, ennek tárgyalásával az Adminisztrátori dokumentációban foglalkozunk részletesen. 8.1.10. IP cím frissítése Az IP cím frissítés elvégezhető bármelyik internetről letöltött programmal, de az "ezipupdate"[5] nevű kliens ajánlott amelyet a "http://ez-ipupdate.com/" oldalon lehet letölteni, vagy Debian alapú linux disztribúció esetén az "apt-get install ez-ipupdate" paranccsal. A beállításkor válasszuk a dyndns custom beállítást. A konfigurációs fájl a következő sorokat tartalmazza: service-type=dyndns-custom server=dyndns.debilinux.hu user=ger:jelszo host=valami.kristalycsepp.hu interface=eth0 run-as-user=ez-ipupd cache-file=/var/cache/ez-ipupdate/default-cache daemon A service-type határozza meg, hogy saját dyndns szervert használunk. Itt megadhatók a programba beépített más szolgáltatók által használt beállítások. A server sor tartalmazza a szerverünk elérési címét. A user sornál lehet megadni a frissítéshez szükséges felhasználó nevünket és jelszavunkat ("felhasználónév:jelszó" formátumban), mely megegyezik az oldalon regisztrált azonosítási adatainkkal. A host sorban tudjuk megadni a frissíteni kívánt aldomainek listáját, "," karakterrel elválasztva. Az interface -el választhatjuk ki, hogy melyik hálózati kártya ip címét frissítse a program. A többi beállítást a telepítés generálja, ezekhez nem kell hozzányúlnunk. A cache-file elérését tartalmazza a következő egy-két sor, illetve hogy daemon-ként fusson-e a program, [5] Forrás: http://ez-ipupdate.com/

- 31 továbbá hogy milyen felhasználó futtassa. 8.2. Adminisztrátori dokumentáció 8.2.1. Az adminisztrátor lehetőségei Az adminisztrátornak a sima felhasználóhoz képest több lehetősége van. Az ő felügyeleti felületét az "Adminisztráció" menüpont alatt lehet megtalálni. Adminisztrátor jogosultságot biztonsági okokból nem lehet a felületen keresztül adni semelyik felhasználónak. Ezt csak a szervert felügyelő személy teheti meg adatbázison keresztül. 8.2.2. Felhasználók kezelése (8.8. ábra Felhasználó karbantartó)

- 32 A menüpontra kattintva azonnal a felhasználók kezelése felület jelenik meg (8.8. ábra). Itt látjuk táblázatban felsorolva a rendszer összes felhasználóját két csoportba rendezve. Az egyik az aktív regisztrációval rendelkezők, a másik pedig (amennyiben van ilyen) a regisztrált, de nem aktivált felhasználók listája. Az első két oszlop tartalmaz egy "Módosít" és egy "Töröl" gombot. A módosításkor megváltoztathatjuk az adott felhasználó jelszavát, teljes nevét, e-mail címét és a megjegyzést. Törlés esetén a felület megjeleníti a felhasználóhoz tartozó összes aldomaint és jogosultságot, majd figyelmeztet, hogy a felhasználó törlésével ezen bejegyzések is törlődnek. A táblázat alatt lehetőségünk van új felhasználó regisztrálására. 8.2.3. Domainek felvitele (8.9. ábra Domainek)

- 33 A "Domainek" lehetőségre kattintva két táblázatba rendezve láthatjuk az eddig felvitt fő domaineket (8.9. ábra). Az egyik táblázat a publikus, a másik pedig a nem publikus domaineket tartalmazza. Itt is, mint a felhasználó kezelésnél lehetőség van a domainek módosítására, illetve törlésére. A domain név nem módosítható, csak a domain publikussága és a hozzá fűzött megjegyzés. Új domain felvitelekor szükséges, hogy a rendszer üzemeltetője megfelelően bejegyezze a zónát a megfelelő működés érdekében. Törlés esetén látható szintén egy figyelmeztetés az összes domainhez tartozó aldomainel és jogosultsággal. Megerősítéskor ezek is törlődnek. 8.2.4. Aldomainek kezelése (8.10. ábra Aldomainek)

- 34 Az aldomainek menüpont alatt az adminisztrátor láthatja az összes bejegyzett aldomaint (8.10. ábra). Itt csak az aldomainhez tartozó megjegyzést módosíthatjuk, a fő alkotórészek módosításához új aldomaint kell hozzá adnunk amely a táblázat alatti űrlap kitöltésével lehetséges. 8.2.5. Jogosultságok kezelése (8.11. ábra Jogosultságok)

- 35 Jogosultságok kiosztása az adminisztrátor feladata. Ezt a "Jogosultságok" menüpont alatt teheti meg, ahol felsorolva látható az összes kiadott jogosultság(8.11. ábra), melyeknek szintén csak a megjegyzése módosítható. Törlésre itt is van lehetőség és a felvitel ismételten a táblázat alatti űrlap kitöltésével lehetséges. 8.3. Programozói dokumentáció A programozói dokumentáció követéséhez javasolt figyelemmel kísérni a forráskódot, amely a mellékelt CD-ROM-on található. 8.3.1. Az index.php A program Apache webszerver alatt fut és a felépítése a következő. A webroot mappában létrehoztam egy dyndns nevű mappát. Ebben a mappában található az egész rendszer alapja az index.php. Az index.php egy ob_start(); függvényhívással kezdődik, ez azért kell, mert így amíg nincs vége a fájlnak, vagy amíg nem hívjuk meg az ob_end_flush();-t addig nem megy ki adat a böngészőnek és így lehetőség van a kód közepén is headert küldeni. Ezután következik a session indítása a session_start(); hívással, majd a fuggvenyek.php és az adatbázis csatlakozáshoz szükséges conf.php beimportálása. Minden egyéb php-t egy "inc" nevű mappából töltünk be az index.php segítségével, amely mappát egy.htaccess fájlban lévő "deny from all" bejegyzés véd. Így a belső fájlokhoz nem lehet közvetlenül hozzáférni. Ezt követően tovább haladva az index.php-n az adatbázis kapcsolat kiépítése következik és az adatbázis kiválasztása. $conn = mysql_connect($conf['db_host'],$conf['db_user'],$conf['db_pass']); mysql_select_db($conf['db_name']); Amennyiben ezek mások mint az alapértelmezett, az inc/conf.php-ben lehet átírni.

- 36 Ezután következik egy switch elágazás, amelyben a "$_GET['a']" átadott érték alapján választódik ki hogy melyik oldal kerül betöltésre. Ez a következő képpen néz ki: case "confirm": include("inc/header.php"); include("inc/confirm.php"); include("inc/footer.php"); break; Tehát a kérés alapján betölti a header és footer fájlokat, és a kért oldalt. Adott helyeken include() függvény helyett include2()-t használtam, mely az include függvény felüldefiniálása, annyi módosítással, hogy ellenőrzi be van-e jelentkezve a felhasználó. Amennyiben nem, azon esetben megtagadja a hozzáférést az adott fájlhoz. A php végén alapértelmezetten a login felület jelenik meg, ha pedig van bejelentkezett felhasználó akkor a kezdőlap (main.php). A fájl végén található még a mysql kapcsolatot lezáró mysql_close($conn); és az ob_start()-ot lezáró ob_end_flush();. 8.3.2. A login.php A login oldalt betöltve egy egyszerű űrlapot látunk egy sima submit típusú elküldő gombbal. Ez átadja post metódussal a megadott felhasználó nevet és jelszót a fent található bejelentkeztetőnek, amely először megnézi van-e postolt érték. Amennyiben van, a felhasználó alapján lekéri az adatbázisból a felhasználó adatait, és egy $adat tömbbe teszi az eredményt. Ezután crypt() eljárással (ahogyan a jelszó is tárolva van) lekódolja a megadott jelszót, majd összehasonlítja az adatbázisban lévővel. Ha nem egyeznek akkor a "Rossz felhasználónév vagy jelszó!" felirat jelenik meg. Ezt követően megnézi aktív(megerősített)-e a regisztráció. Ha nem, akkor az "E-mail cím nincs megerősítve" hibaüzenetet írja ki, ha igen akkor a session status-át 1-re állítja, amely azt eredményezi, hogy innentől a felhasználó be van jelentkezve. A következő két sor beállítja, hogy mi a felhasználó név, illetve admin-e az adott felhasználó. Ezután egy