Linux X 500 LDAP NIS Bilicki Vilmos Tartalom
Linux, X. 500, LDAP, NIS Bilicki Vilmos
Tartalom l l Linux operációs rendszer X. 500 NIS LDAP
Linux l Richard M. Stallman (198 X FSF) – – – l Szabad terjesztésű UNIX GNU C, . . . GNU GPL Linux – – Szülőapja: Linus Tovards (Kernel) Szülőanyja: Internet (GNU, FSF) Eric S. Raymond (Cathedral vs. Bazaar ) http: //www. firstmonday. dk/issues/issue 3_3/raymond/index. html l – Cathedral l – óvatos fejlesztés kicsi csoportok akik csak ezzel foglalkoznak csak a végső verzió publikus Bazaar l l rövid debug (nyílt forrás, sok felhasználó, programozó) gyakori frissítés korai kibocsájtás okos adatszerkezetek és csúnya kódok jobban működnek mint fordítva
Linux kernel l virtuális interfész a process-ek számára elfedi a hardvert moduláris kernel – – dinamikusan betöltődő modulok statikus modulok kernel forrás letölthető, saját kernelt készíthetünk felelős: l l l process memória hardver
A Linux kernel összetevői l l l Process Scheduler – szabályozza a process-ek hozzáférését a CPUhoz Memory Manager – lehetővé teszi a process-ek számára a memória biztonságos, egymástól független elérését – lehetővé teszi a virtuális memória kezelését Virtual File System – elrejti a különböző hardver erőforrásokat egy szabványos felületet nyújtva (több fájlrendszert is támogat) Network Interface – hozzáférést biztosít több hálózati interfészhez – több hálózati protokollt támogat Inter Process Communication – lehetőséget biztosít a process-process kommunikációra (több különböző módon)
Időzítő (Scheduler) l l egyszerű prioritás alapú időzítés task_struct (process tábla, az első az init process) – prioritás l l – számláló (counter) l – priority rt_priority az adott process számára engedélyezett futási időzítés szabály (Scheduling policy) l l normal real time (ha van akkor ez fut elsőnek) round robin – fifo – – process ID
Szálak kezelése l User-space threads – – l nem a kernel menedzseli kooperatív multitaszking a szál maga hívja meg a szálváltó eljárást (kiéhezés) gyorsabb mint a kernel szál váltás Kernel-space threads – időosztásos
Virtuális fájl rendszer l l l l Hardver eszközök Logikai fájl rendszerek Futtatható formátumok (a. out , ELF, java ) Homogenitás (egységes felületet nyújt) Sebesség Adatbiztonság Biztonság
Virtuális fájlrendszer szolgáltatásai l system call interface – – – l fájlok (open/close/read/write/seek/tell) könyvtárak (readdir/creat/unlink/chmod/stat) POSIX kompatibilis internal interface (a kernel egyéb részeinek nyújt szolgáltatásokat) – inode interface l l – create() lookup() link() / symlink() / unlink() / readlink() / follow_link() … file interface l l open() / release() read() / write() select(), lseek() …
Fájl alrendszer
IPC l l l jelek várakozó sorok (sleep scheduler) fájl zárolások (egész, részleges) csövek, nevesített csövek (kapcsolatorientált kétirányú adatkapcsolat process-ek között) System V IPC – – – l szemaforok üzenet sorok (kapcsolatmentes) osztott memória UNIX domain sockets (kapcsolatorientált adatátvitel)
Hálózati interfész l INET socket (inet_write(), …) – – l alacsonyabb szintű a TCP, UDP protokollokra épül BSD socket (sock_write(), …) – – – Unix, Windows magas szintű az INET socket-re épül stream/data connected/unconnected
Directory (Könyvtár) l l l objektumok listája mely az objektumok részletes tulajdonságait tárolja (telefonkönyv) speciális adatbázis - adattárház mely típusos és rendezett információt tárol objektumokról adatbázisok – könyvtárszolgáltatások: – – – az adatbázisokkal ellentétben sokkal gyakrabban történnek keresések mint frissítések olvasásra van optimalizálva nem feltétlenül támogatják a tranzakciókat a könyvtárban tárolt információ nem követel meg erős konzisztenciát egyszerű hozzáférési protokoll (SQL, LDAP)
Könyvtár elérés, hozzáférés l kliensszerver modell
Elosztott könyvtárak l l lokális, globális információ könyvtár szolgáltatás: – – központosított (talán egyszerűbb a karbantartása) elosztott (gyorsabb) l l az információ tagolható replikálható
X. 500 l l l telefonkönyv elosztott adminisztráció a számítógép és a humán adatok egy adatbázisban tárolódnak X. 400, OSI name server minden helynek saját könyvtára lehet másolatok tárolhatók
Az X. 500 könyvtár felépítése l Directory Information Model (helyi szemszögből nézi a rendszert, az információ elosztása nem lényeges): – – – Directory User Information Model Directory Operation Administrative Information Model l DSA Information Model – l a könyvtár használhatósága érdekében létezik egy rögzített információ típus több nézetet biztosít (administrator, user) leírja, hogyan kell egy számítógépnek tárolnia az adatokat ahhoz, hogy mások is hozzáférhessenek Directory Administrative Authority Model – az elosztott adatbázis elosztott adminisztrálását írja le
Objektumok és egyedek l Directory Information Base – – l hierarchikus felépítés a hasonló tulajdonságokkal rendelkező objektumok Objektum osztályokba sorolhatóak minden objektum legalább egy objektum osztály tagja az adatok a tulajdonságokban vannak tárolva Directory Information Tree – – levél bejegyzések ág bejegyzések megkülönböztető név (distinguished name DN) (a szülő ág neve is) relatív megkülönböztető név (relative distinguished name RDN)
Példa
Objektumok és egyedek l alias – – l gyakran fontos, hogy egy objektumra több mint egy néven hivatkozzunk egy bejegyzés a DIT-ben mely egy mutatót tartalmaz az objektumra saját objektum osztályuk van: alias dereferencing kollektív tulajdonság (közös telefonszám)
Adminisztrációs modell l l a DIT különböző részei különböző szervezetek által menedzselhetőek AAA (Autonomous Administrative Areas) – l AAP (Autonomous Administrative Point) ettől kezdődik és a másik AAP-ig tart IAA (Inner Administrative Areas) – – IAP (Inner Administrative Point) az AAA-n belül helyezkedik el
Adminisztratív körzetek l Feladatuk: – – – l Schema administration Access controll administration Collective attribute administration az AAA mindhárom feladathoz külön osztható
NIS (Network Information Services) l l l l problémát okozott a közös felhasználói adatbázis karbantartása (kié a jó verzió) 1985 SUN -> Yellow Pages -> NIS RPC hívások UDP felett a rendszerhívásokat átirányítja a szerverre DBM fájlokat használ az információ tárolására (indexelt fájlok) kulcs alapján könnyen kereshető az információ probléma a DBM fájlok binárisak -> nehezen érthető megoldás ASCII fájlokból időnként átkonvertáljuk DBMbe az adatokat
NIS elemei l l NIS domain név Master – l Slave – l egy lehet belőle működhetnek szerverként azonban az információt a master-től kapják Client – – egy IP álhálózatban kell lennie a szerverrel a kliensek üzenetszórással keresik a szervert
A leggyakrabban megosztott információ l lehetnek lokálisak és globálisak – – – – – /etc/passwd - User account information /etc/group - UNIX group definitions /etc/hosts - Maps hostnames and ip addresses /etc/services - Lists port numbers for well-known network services /etc/protocols - Maps text names to protocol numbers /etc/ethers* - Maps hostnames and ethernet addresses /etc/aliases - Mail alias definitions, including postmaster /etc/rpc - Lists id numbers for rpc services /etc/netgroup - Defines collections of hosts, users and networks
A NIS részletei l a következő helyeken tárolja információit: – l az adatok átmásolása mastre, slave között – l /var/yp, /usr/etc/yp or /etc/yp ypxfr, yppush démonok – – ypserv (csak szerveren) ypbind (minden gépen szerver kereső)
NIS parancsok I. l l l l l ypserv NIS server daemon started at boot time by master/slave servers ypbind NIS client daemon started at boot time by all domainname Sets NIS domain machine belongs to at boot time ypxfr Downloads current version of a map from master server ypxfrd Serves requests from ypxfr (runs on master) yppush Makes slave servers update their map versions makedbm Builds a ndbm map from a flat file ypmake* Rebuilds ndbm maps from flat files that have changed (IRIX) ypinit Configures a host as a master or slave server ypset Makes ypbind connect to a particular server
NIS parancsok II. l l l l l ypwhich Finds out which server the current host is using yppoll Finds out what version of a map a server is using ypcat Prints the values contained in an NIS map ypmatch Prints map entries for a specified key yppasswd Changes a password on the NIS master server ypchfn Changes GECOS info on the NIS master server ypchsh Changes a login shell on NIS master server yppasswdd Server for yppasswd, ypchsh and ypchfn ypupdated Server for updating NIS maps (managed by inetd)
A NIS előnyei, hátrányai l l egyszerűen karbantartható, egyszerű szöveges fájlokat kell módosítgatnunk sok felhasználó és számítógép könnyen menedzselhető időnként nagy a sávszélesség igénye nem biztonságos (véletlen domain név)!
NIS+ l l l adattitkosítás RPC hitelesítés névmodell: – – fa struktúra minden levél egy NIS+ objektum l l l l könyvtár bejegyzés csoport hivatkozás tábla privát org_dir – adminisztrációs táblák groups_dir – hozzáférés vezérlés táblák
LDAP (Lightweight Directory Access Protocol) l l l nyílt ipari szabvány a könyvtárak elérésének szabvánnyá vált a DAP alternatívája LDAP szerver jelenleg független az X. 500 -tól
LDAP architektúra l A következő nézetek lehetnek: – – Információs modell (Information) Elnevezései modell (Naming) Funkcionális modell (Functional) Biztonsági modell (Security)
Információs modell l l az információ alapegysége a bejegyzés (entry) a bejegyzések valós objektumokat reprezentálnak a bejegyzések tulajdonságok halmazából állnak a tulajdonság típusa definiálja szintaxisát mely megadja milyen értékek tárolhatóak benne a szintaxis megadja a tárolt érték viselkedését keresés közben is. Telefonszám esetében : – – – lexikografikus sorrend szóköz, vessző kihagyandó az érték karakterekből állhat
Néhány LDAP tulajdonság szintaxis l l l bin – bináris információ ces – érzékeny a kis és a nagy betűkre cis – nem érzékeny a kis és nagy betűkre tel – telefonszám dn – megkülönböztető név
LDAP Információs modell I. l l sémák (schema) segítségével írják le a könyvtárban tárolható objektumok típusát, megadva a használható tulajdonságokat az együttműködést elősegítendő sok séma van szabványosítva
LDAP információs modell II. l l objektumokat tudunk objektumokból származtatni minden könyvtár bejegyzés tartalmaz egy object. Class nevű tulajdonságot mely kettő vagy több sémát sorol fel
Elnevezési Modell (Naming Model) l l l a bejegyzések azonosítását és szervezését definiálja a bejegyzések fa struktúrában vannak elrendezve (DIT) a fa struktúrán belül a megkülönböztető nevük alapján szerveződnek (DN - egyedi név) DN (RDN, . . . ) elsődleges kulcsként működik RDN (<tulajdonság név>=<érték>)
Példa l cn=John Smith, o=IBM, c=DE
Tulajdonságok
Toldalékok, Hivatkozások l l Egy LDAP szerver nem feltétlenül tárolja az egész hierarchiát az általa tárolt legfelső elemet toldaléknak (suffix) nevezzük a szerverek közötti kapcsolatot a hivatkozások teremtik meg (referrals) amikor egy kliens kérést küld és egy hivatkozást kap akkor ezt követnie kell
Funkcionális modell l az LDAP műveletek definiál az információk elérésére módosítására – – – lekérdezés (query) frissítés (update) – add, delet, modify RDN azonosítás (authentication) – bind, unbind,
Lekérdezés l l l alap (base) – a DN amely a start pontot azonosítja hatókör (scope) – a mélységet azonosítja (base. Object, single. Level, whole. Subtree) kereső szűrő (search filter) – a szűrési kritériumot definiálja visszatérési tulajdonság – a visszaadott tulajdonságokat adhatjuk meg határok – idő, méret
Példa
Biztonsági modell l Azonosítás (Authentication) – l Intergritás (Integrity) – l bizonyosság arról, hogy az információ amely megérkezik valóban amelyet elküldtek Bizalmasság (Confidentality) – l bizonyosság a másik oldal azonosságáról az információ titkosítása Engedélyezés (Authorization) – bizonyosság arról, hogy a másik oldal valóban jogosult arra amit tenni szeretne
Megvalósítási módok l l nincs azonosítás Basic Authentication (HTTP Basic Authentication) – l DN, jelszó clear text (Base 64) Simple Authentication and Security Layer (SASL) – egy általános azonosítási keretrendszer melyet az LDAP V 3 -as verziójában vezettek be. Több azonosítási módszert ismer, ezek közül egy a Kerberos, használható a TLS is (SSL)
SSL/TLS 1. 2. 3. 4. 5. a kliens TLS kapcsoltra kéri a szervert a szerver visszaküldi a TLS paramétereket, egy bizonyítványt, mely többek között magába foglalja a szerver publikus kulcsát a kliens a publikus kulccsal kódolva küld egy teszt adatot a szerver ezt dekódolja és visszaküldi a kliens és a szerver megegyezik a a használandó szimmetrikus kulcsban
Az LDAP jövője l l LDAP kliensek megtalálják az LDAP szervereket DCE (Distributed Computing Environment): – – – l szálak támogatása DCE RPC (kódolást is támogat) biztonság könyvtár szolgáltatás (központi információ az elosztott rendszer erőforrásairól) Distributed Time Service Distributed File Service lehetséges, hogy az LDAP integrálva lesz a DCE-be
- Slides: 48