2018. március 10., szombat

ADFS beállítása felhőben 13_A osztály


Active Directory federált hitelesítés a felhőben lépésről-lépésre

Mi a federált hitelesítés?

Példánkban az alkalmazás és a hitelesítést végző szerver két logikailag teljesen különálló helyen lesz (szemben azzal, amikor az autentikációt maga az alkalmazás végzi). Ezt a hitelesítési módot federált hitelesítésnek hívják. Működésére remek analógia a sörözés: ha belépünk egy kocsmába, és viszonylag fiatalos arcunk van, akkor hitelesítésre van szükségünk (igazolnunk kell nagykorúságunkat). Viszont a hitelesítést nem a kocsma saját “motorja” végzi (azaz nincs náluk egy óriási adatbázis az összes 18 évesnél idősebb magyar állampolgár adataival), hanem federálják azt a magyar államnak: elkérik a személyi igazolványunkat. Ezt a állam állította ki, és igazolja életkorunkat. A kocsma pedig megbízik a Magyar Államban, tehát elfogadja az általa kiállított igazolást, és vehetünk sört. Ugyanez szakkifejezésekkel leírva: alkalmazásunk szeretne azonosítani egy felhasználót. Ehhez nem a saját adatbázisából dolgozik, hanem elküldi a felhasználót egy hitelesítési szerverhez (esetünkben az Active Directory-hoz); ott megtörténik a bejelentkezés (konkrétan a felhasználó gépén felugrik a “név-jelszó” ablak), majd az Active Directory egy digitálisan aláírt tokent küld vissza alkalmazásunknak a felhasználó adataival. Mivel mi megbízunk a kérdéses Active Directory-ban, elfogadjuk majd a tokenen szereplő állításokat, és a felhasználót bejelentkezettnek tekintjük anélkül, hogy valaha is találkoztunk volna a hitelesítési adataival.

Teendőink

Az alkalmazásunk és az Active Directory közötti federált hitelesítést nagy vonalakban a következő módon fogjuk majd beállítani:
  1. “Megágyazunk” a szerveren: Feltelepítjük és bekonfiguráljuk az Active Directoryt. (Ez lesz a leghosszadalmasabb feladat, az utána következők lényegesen könnyebbek és gyorsabbak lesznek majd.)
  2. “Megágyazunk” a saját oldalunkon: Megírunk egy nagyon egyszerű demóalkalmazást.
  3. Beállítjuk alkalmazásunkat, hogy megbízzon az AD-ben.
  4. Beállítjuk az AD-t, hogy megbízzon az alkalmazásunkban.

1. A szerver előkészítése

1.1. A virtualizációs szoftver és a Windows Server

Szükségünk lesz egy Windows Serverre. Amint ígértem, a leírás egyetlen fizikai gépről szól, így a Server virtualizált lesz. Az operációs rendszer verziója igazából mindegy: Windows 2008 illetve 2008 R2 is megfelelő, valamint a Standard és az Enterprise változatok is működni fognak. A képernyőképek egy angol Windows Server 2008 R2 Enterprise változatról készültek.
A virtualizációs környezet gyakorlatilag bármilyen technológia lehet. Elsősorban a Microsoftos termékeket ajánlom, de ha valakinek 32 bites munkaállomása van, és ezen szeretne egy 64 bites Windows Server 2008 R2-t futtatni, akkor marad a VirtualBox nevű szoftver. Én ezt használtam. Maga a Windows Server pedig igény szerint beszerezhető: akinek van MSDNTechNet, vagy MSDN:AA (egyetemisták figyelem!) előfizetése, az ott megtalálhatja, egyébként pedig letölthetők próbaverziók a Microsoft oldalairól.
Ha ezek megvannak, telepítsük fel a Windows Servert. A gép neve lényeges lesz; változtassuk meg valamilyen könnyen megjegyezhetőre, pl. adfsserver.
image

1.2. IP beállítások

Amint a bevezetőben említettem, az egygépes megoldás komplikáltabb, mint a éles, többgépes. Ennek oka az, hogy a használt technológiából eredően az általunk írt alkalmazásnak egy DNS névvel (pl. adfsserver.adfsdemo.local) kell hivatkoznia az általa megcélzott AD-re, nem elég az IP cím (pl. 192.168.120.2). Működő, fejlesztői célra használható DNS nevet pedig nehézkes szerezni, míg élesben rendelkezik ilyennel a megcélzott Active Directory. Helyi megoldásunk az lesz, hogy a feltelepített Windows Servert adjuk meg a fejlesztői gépünk egyik DNS szerverének, így létrehozhatunk bármilyen DNS nevet a szerveren, a mi gépünk fel fogja ismerni azt. (Más gépen beírva ugyanazt az URL-t természetesen nem fog működni.) A DNS tényleges beállítására később még visszatérünk.
A szervernek is hivatkoznia kell majd a mi alkalmazásunkra (hogy visszaküldhesse neki az elkészült tokent), de ehhez már elég lesz csak egy IP címet adni az alkalmazásunknak.
A fenti két kritérium miatt szükséges, hogy a saját gépünk, illetve a virtuális szerver tudjon egymással kommunikálni egy belső hálón keresztül. Ezt minden virtualizációs környezet támogatja. A demóban úgy állítottam be a fizikai és a virtuális Windows-okat, hogy a fejlesztői gépem IP címe 192.168.120.1, a virtuális szerver IP címe 192.168.120.2, és kölcsönösen tudják egymást pingelni. A használt virtuális környezetnek megfelelő módon végezzük el ezeket a beállításokat. (Ha a virtualizációs környezet nem támogat egyszerűbb megoldást, akkor a fizikai gépünkön adjunk hozzá egy Microsoft Loopback Adapter névre hallgató hálózati kártya-emulátort – a Windows beépítve tud ilyet -, a virtuális gépet pedig erre a kártyára kössük rá. Majd, a fizikai és a virtuális gépen is állítsuk be a megfelelő IP címeket erre a kártyára, és kis idő múlva létre fog jönni a hálózat. Ne felejtsük, hogy a Windows tűzfal alapértelmezésként megfogja a pingkéréseket, így tesztelés előtt ezt is konfigurálni kell!)
FIGYELEM: A továbbiakban saját Active Directoryt és DNS szervert fogunk telepíteni. Aki munkahelyi hálózaton van, győződjön meg róla, hogy a demószerver nem juthat ki arra, mert a vállalati IT haragos lesz, ha a demószerverünk elkezdi osztogatni az IP címeket!
image

1.3. Az IIS és az Active Directory telepítése

A Windows Server telepítése és az IP címek beállítása után után rakjuk fel a Web Server és az Active Directory Domain Services szerepköröket.
Kezdjük a Web Serverrel, amihez az összes lehetőséget válasszuk ki.
image   image
Utána jöhet az Active Directory. Először tegyük fel magát az Active Directory Domain Services szerepkört. Ez még ténylegesen nem csinál domain controllert a gépből, csak felmásolja az ehhez szükséges binárisokat.
image   image
Miután ezzel elkészültünk, következhet az AD tényleges beállítása. Ehhez parancssorból ki kell adnunk a dcpromo parancsot.
image
Egy domain létrehozása általában alapos tervezést igényel, de a mi demócéljainkra a legegyszerűbb beállítások is megfelelnek majd. Kövessük a képernyőképek beállításait.
Maradjunk a hagyományos telepítési módnál (nem kell az Advanced Mode), és hozzunk létre egy új erdőt (azaz a létrehozni kívánt domain teljesen új lesz, nem meglévőhöz csatoljuk hozzá).
image image
A domain neve legyen adfsdemo.local (a gép teljes neve így adfsserver.adfsdemo.local lesz majd), és a domain “működési szintjének” válasszuk ki a legmagasabbat, a Windows Server 2008 R2-t.
image image
Hagyjuk, hogy a varázsló feltelepítse a DNS Server funkciót is (a kapcsolódó figyelmeztetéssel ne törődjünk), és ne nyúljunk az alapértelmezett könyvtárakhoz.
image image image
Végül adjunk meg egy jelszót a helyreállítási üzemmód rendszergazdájának (nekünk nem lesz rá szükségünk, egy éles helyzetben az összeomlott domain helyreállításakor szükséges), majd indítsuk el a telepítést.
image image image
A gép újra fog indulni, ezúttal már jóval lassabban, mint eddig. A domain ezzel elkészült.
Vegyünk fel néhány demófelhasználót, akiket majd bejelentkeztetünk ide távolról. Ehhez az Active Directory Users and Computers nevű alkalmazásra lesz szükségünk, amit a Start menü Administrative Tools almenüjében találunk. Válasszuk ki a bal oldali listából az Users szervezeti egységet, és adjunk hozzá néhány felhasználót, valamilyen egyszerű jelszóval.
image
A felhasználó hozzáadásakor úgy állítsuk be, hogy jelszavát ne kelljen megváltoztatnia az első bejelentkezéskor, különben nem tudjuk majd megfelelően használni a demó során!
image
A domaint ezzel beállítottuk a virtuális gépen. Most el kell érnünk, hogy a fejlesztői gépen beírva az adfsdemo.local DNS nevet, a virtuális szerverhez jussunk  – azaz tudjuk is használni a létrehozott domaint. Ahogy korábban már említettem, ezt a virtuális kiszolgáló DNS szerverként alkalmazásával oldjuk meg. Azaz a publikus DNS szerverek helyett, amelyek nem ismerik a sehol be nem regisztrált fejlesztői domain-nevünket, a virtuális kiszolgálót magát használjuk DNS szerverként – a saját címét természetesen fel tudja majd oldani.
Látogassunk el ahhoz a hálózati adapterhez, amivel a fizikai gépen a virtuális szerverhez csatlakozunk, és állítsuk be, hogy DNS szerverként magát a virtuális szervert használja. Ez a használt virtuális környezettől függően más lesz, Loopback AdapterVirtualBox Host-Only Network, vagy valamilyen hasonló névre hallgat majd.
image
Végül egy szörnyű lépés következik: a demó idejére húzzuk ki a hálózati kábelt és/vagy tiltsuk le a többi adaptert, hogy a gép bármilyen kérésnél csak ezen az adapteren (és ezen a DNS szerveren) keresztül kommunikáljon. Ha ezt nem tesszük meg, a fejlesztői gép nem mindig a saját DNS szerverünknél fog próbálkozni, és a viselkedése véletlenszerű lesz. Igen, ez sajnos azt jelenti, hogy ideiglenesen nem lesz internet. Élesben, ahol nem kell ilyen módon trükközni a DNS szerverekkel, erre természetesen nincs szükség.
Teszteljük az eredményt: látogassunk el a http://adfsdemo.local és a http://adfsserver.adfsdemo.local címekre. Ha minden jól megy (és a leírásban említett DNS- és gépnevet használtuk), meg fog jelenni az IIS7 kezdőképernyője, azaz sikeresen kapcsolódtunk a virtuális szerverhez a helyi DNS és az új domain használatával.

Az ADFS 2.0 telepítése

Elérkeztünk a szerver konfigurálásának utolsó lépéséhez: feltesszük az Active Directory-t kiegészítő Active Directory Federation Services 2.0 komponenst. A Windows Server már beépítve is tartalmaz egy ADFS nevű szerepkört; fontos, hogy nekünk nem ez kell, hanem ennek a 2.0-s verziója, amely külön tölthető le.
Szedjük le innen: http://technet.microsoft.com/en-us/evalcenter/ee476597.aspx (Ideiglenesen ehhez visszakapcsolhatjuk az internetet, de ne felejtsük el újra letiltani letöltés után. A letöltést a fejlesztői gépen végezzük el, és utána másoljuk át a virtuális gépre; ne zavarjunk bele a már beállított hálózatba.)
A telepítésnél gyakorlatilag minden beállítást változatlanul hagyhatunk. Az egyetlen nem megszokott kérdés az alábbi ablak lesz; itt válasszuk az (alapértelmezett) Federation Serverbeállítást. A beállítás arra kérdez rá, hogy az épp telepített gép maga lesz-e federációs szerver, vagy csak egy tűzfal mögött lévő másik federációs szerver elérésére használt proxyt akarunk-e létrehozni. Nekünk természetesen az első beállítás kell.
image
Telepítés után az ADFS menedzsment konzol magától beindul. (Ha nem tenné, az Administrative Tools alatt AD FS 2.0 Management néven megtalálható.)
image
Az Active Directory Domain Services-hez hasonlóan az ADFS telepítése és beállítása is két külön fázis. A telepítéssel elkészültünk, most beállítjuk a szervert. Ehhez kattintsunk a középtájon látható AD FS 2.0 Federation Server Configuration Wizard linkre.
Az első ablakban maradhatunk az alapértelmezett beállításnál: új szervert hozunk létre. A másodiknál válasszuk a Stand-alone federation server-t. Ha nagy terhelésre számítunk, akkor a federációs szervereket farmba is szervezhetjük; esetünkben elég lesz egyetlen szerver is.
image   image
A következő ablaknál egy SSL tanúsítványt kell kiválasztanunk, amely a szerver azonosítására szolgál majd. Az alapértelmezett beállítás valószínűleg nem lesz jó, mert az ADFS-nek olyan SSL tanúsítvány kell, ami egy DNS nevet tartalmaz (pl. adfsserver.adfsdemo.local); a számítógép telepítésekor viszont a domain még nem létezett, így az alapértelmezett SSL tanúsítvány egyszerűen csak a gép neve. Így tehát generálnunk kell egy saját SSL tanúsítványt. (Profi környezetben erre valószínűleg nem lesz szükség, mert a rendszergazda már gondoskodott erről, esetleg van is vásárolt, elismert tanúsítvány.)
image
Tanúsítvány generálására többféle módszer is létezik. Talán a legegyszerűbb módszer, ha az IIS-t használjuk erre a célra. Nyissuk meg az IIS kezelőt az inetmgr parancs kiadásával. Ha a bal oldali fában ráállunk a szerver nevére, akkor középen kiválaszthatjuk a Server Certificates elemet.
image
Nyissuk meg, és a jobb oldalt található Create Self-Signed Certificate parancs segítségével hozzunk létre egy új tanúsítványt mondjuk AdfsServerCert néven.
image
Ennek hatására az IIS legenerál egy SSL tanúsítványt. Ezt mi hoztuk létre, azaz mi “írtuk alá”, tehát ez egy “self-signed certificate”. Mi megbízunk benne, de rajtunk kívül más nem fogja elismerni, mert ilyen tanúsítványt bárki létrehozhat (tehát hiába van ráírva, hogy mondjuk a szuper-internetes-bank.hu állította ki, semmiféle hitelességet nem bizonyít). Céljainkra ez elegendő lesz, de éles környezetben tanúsítványt külső szolgáltatótól kell szerezni.
Visszatérve az ADFS konfigurációs varázslóhoz, kattintsunk a Back, aztán a Next gombra. A varázsló újra betölti a tanúsítványok listáját, így már kiválaszthatjuk a frissen létrehozott AdfsServerCert –et.
image
A további ablakokon már nincs több teendőnk, a varázsló bekonfigurálja az ADFS-t.
image
Teszteljük, hogy sikerült-e. Húzzuk ki ismét az internetet, hogy csak a belső DNS-en keresztül tudjunk kommunikálni, majd látogassunk el a https://adfsserver.adfsdemo.local/FederationMetadata/2007-06/federationmetadata.xmlcímre. Némi gondolkodás után egy tanúsítványhibával szembesülünk (a használt self-signed certificate miatt), majd ezen továbblépve egy XML fájlt kapunk vissza. Ez a fájl tartalmazza az ADFS használatához szükséges metainformációkat, ez alapján tudjuk majd bekonfigurálni az alkalmazásainkat.
image
Szerverünk ezzel elkészült. DNS név segítségével el tudjuk érni, tartalmaz egy működő Active Directory domaint, és képes kezelni a federált hitelesítési kéréseket. Most megírjuk az alkalmazásunkat, és beállítjuk az alkalmazás és a szerver közötti bizalmi viszonyt. Ígérem, ez már rövidebb lesz!

2. Az alkalmazás előkészítése

2.1. A Windows Identity Foundation telepítése

Alkalmazásunknak ismernie kell az ADFS megszólításához használható protokollokat, illetve értelmeznie kell a visszaérkező tokent. Ezeket a képességeket szerencsére nem nekünk kell megírni: a Windows Identity Foundation (WIF) nevű .NET Framework-komponens tartalmazza a federált hitelesítéshez szükséges osztályokat, nekünk csak telepítenünk kell ezt.
A WIF-nek két része van, a WIF Runtime, és a WIF SDK. Fejlesztéshez mindkettőre szükség van. Töltsük le és telepítsük őket! (És utána ne felejtsük el kihúzni az internetet.)
WIF Runtime: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eb9c345f-e830-40b8-a5fe-ae7a864c4d76&displaylang=en
WIF SDK: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c148b2df-c7af-46bb-9162-2c9422208504&displaylang=en

2.2. Mit használjunk?

A Windows Azure Web Role-ok és az ASP.NET Web Application-ök közötti szinte teljes egyezés miatt az itt leírtak rögtön mindkettőre használhatók lesznek. A cikk ugyan felhőalkalmazásokról szól, mi viszont most mégis ASP.NET Web Applicationt fogunk írni. Amint korábban már többször is utaltam rá, az egygépes környezet több szempontból megnehezíti a dolgunkat; itt is ez szól közbe. A Windows Azure Compute Emulator (korábban Development Fabric) ugyanis úgy van megírva, hogy csak a localhost (127.0.0.1) IP-címre érkező kéréseket hajlandó fogadni. Az AD szervernek viszont mindenképpen vissza kell küldenie a tokent a webszerver (azaz a Compute Emulator) felé, amihez egy nem-localhost (esetünkben 192.168.120.1) IP címre kell adatokat küldenie. (Hiszen ha az AD az 127.0.0.1-re küld adatokat, akkor saját magára fog rátalálni, nem pedig a Compute Emulator-t futtató fizikai gépre.)
Így sajnos a Compute Emulatorral nem tudjuk megoldani a demót, ezért kénytelenek leszünk sima ASP.NET alkalmazást használni. Éles körülmények között ez a megkötés nem él; mivel a felhőben természetesen minden alkalmazás hívható kívülről, az itt leírtakat változtatás nélkül tudjuk majd felhőalkalmazásokhoz is használni.

2.3. A webalkalmazás megírása

Hozzunk létre egy új ASP.NET Empty Web Application projektet. (A “sima” Web Application projekt magával hozna számunkra felesleges állományokat is.) A projekt neve legyen AdfsClient.
image
A projekt alapértelmezésként teljesen üres lesz. Vegyünk fel bele egy új Web Form-ot Default.aspx néven. Majd, adjunk hozzá egy DLL referenciát a Microsoft.IdentityModel DLL-re. (Ha nem találjuk, ellenőrizzük a WIF helyes telepítését!)
Az alkalmazás kódja összesen annyi munkát végez, hogy ha van bejelentkezett felhasználó, akkor kiírja a kapott token részleteit.
Default.aspx markupja legyen ez:

<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Default.aspx.cs” Inherits=”AdfsClient.Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”
http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title>ADFS Demó</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<h1>
ADFS Demó</h1>
<p>
Adataid:</p>
<asp:GridView ID=”claimsGridView” runat=”server” AutoGenerateColumns=”False”>
<Columns>
<asp:BoundField DataField=”ClaimType” HeaderText=”ClaimType” ReadOnly=”True” />
<asp:BoundField DataField=”Value” HeaderText=”Value” ReadOnly=”True” />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>

Default.aspx.cs kódja pedig ez:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.IdentityModel.Claims;
using System.Threading;
namespace AdfsClient
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
IClaimsIdentity claimsIdentity = ((IClaimsPrincipal)(Thread.CurrentPrincipal)).Identities.FirstOrDefault();
if (claimsIdentity != null)
{
claimsGridView.DataSource = claimsIdentity.Claims;
claimsGridView.DataBind();
}
}
}
}

Ezeken felül a web.config fájlban kell elvégeznünk egy módosítást. A weben gyakori támadási forma a cross-site scripting, amely során JavaScript-et visznek fel egy adatbázisba (pl. kommentként), majd amikor valaki ellátogat egy ezt megjelenítő oldalra, a gépén lefut a kérdéses JavaScript. Ez ellen az ASP.NET úgy védekezik, hogy a gyanús (HTML tag-szerű) kéréseket elutasítja. Az ADFS-től visszakapott token XML formátumú, így ez is erre a sorsra fog jutni, ha a validációs motort nem állítjuk át megfelelően.
Nem kell mást tennünk, mint a web.config-ba beszúrni egy újabb sort a <system.web> névtéren belülre:
<httpRuntime requestValidationMode=”2.0″/>
Ez visszaállítja a validációs motort az ASP.NET 2.0-nál megszokott formára, mely kevésbé paranoid, és átengedi a tokent. Ha élesben ennél kifinomultabb megoldásra van szükségünk, akkor írhatunk saját Request Validator-t is, amit teljesen testreszabhatunk.
A fejlesztéssel megvagyunk. Alkalmazásunkat kívülről is hozzáférhetővé kell tennünk, így az ASP.NET fejlesztői szerver (Cassini) nem lesz elégséges. Továbbá a biztonságos működés előfeltétele, hogy a tokeneket HTTPS fölött forgalmazzuk. Így beállítjuk a Visual Studiót, hogy futtatáskor az alkalmazásunkat rakja fel a helyi IIS-re, HTTPS fölé. (Ha fejlesztői gépünkön esetleg még nincs fent az IIS, akkor rakjuk fel; az Azure Tools telepítésekor felrakja, úgyhogy ez valószínűtlen.)
Látogassunk el a projekt tulajdonságai közé. Baloldalt válasszuk ki a Web fület, majd középen váltsunk az Use Local IIS Web server lehetőségre. URL-nek adjuk meg a https://localhost/AdfsClient URL-t. A Create Virtual Directory gomb egyelőre még nem fog működni, mert a helyi IIS-ünk valószínűleg nincs bekonfigurálva HTTPS használatára.
image
A HTTPS beállításához nyissuk meg a helyi IIS kezelőnket az inetmgr paranccsal. Kattintsunk jobb gombbal az alapértelmezett weboldalra, és válasszuk az Edit Bindings menüpontot.
image
Vegyünk fel egy új Binding-et, válasszuk ki a HTTPS lehetőséget, és jelöljünk ki egy szimpatikus tanúsítványt. Ha nincs megfelelő, akkor a korábban már látott módon generáljunk egyet.
image
Végül térjünk vissza a Visual Studióhoz és kattintsunk a Create Virtual Directory gombra. Most már működni fog. Futtassuk az alkalmazást, egyelőre semmit nem fog megjeleníteni (sőt, hibával le is fog állni), de látjuk majd, hogy a megfelelő URL-en fut.
Ezzel az alkalmazás elkészült. Természetesen ez egy triviális példa, de a kód könnyen átalakítható valamilyen éles célra is – pl. a claimsIdentity objektum tulajdonságait vizsgálva megállapíthatjuk, hogy van-e bejelentkezett felhasználó, milyen jogosultsági körei vannak stb.
A megírt alkalmazás egyelőre még működésképtelen, mert nincs tudomása a használandó ADFS szerverről. A következő lépésben a korábban már látott FederationMetadata.xml segítségével beállítjuk, hogy a telepített ADFS szervert használja.

3. Az alkalmazás beállítása a szerver igénybevételére

A WIF feltelepítésekor felkerült egy varázsló is, ami képes egy web.config fájlt beállítani egy federációs szerver használatára (az ADFS ilyen, de Live ID-t, Google Account-ot, Facebook-ot stb. is használhatunk az Azure Access Control Service segítségével). A Visual Studióban kattintsunk a projektünk nevére, majd válasszuk az Add STS Reference menüelemet. Ez nem mindig jelenik meg; ha nem látjuk, akkor a Start menüből indítsuk el a Windows Identity Foundation Federation Utility nevű alkalmazást.
image
A varázsló első oldalán meg kell adnunk az átalakítandó web.config fájlt és azt az URL-t, ahonnan alkalmazásunk futni fog majd. (Az URL azért szükséges, mert majd ez alapján azonosítja majd az AD szerver az általa ismert kliensalkalmazásokat.)
web.config fájl elérési útját egyszerűen tallózzuk ki,  URL-nek pedig adjuk meg a https://192.168.120.1/AdfsClient/ címet (fontos a https, és a végső / is). Éles környezetben az alkalmazás végső URL-je kerül majd ide, pl. http://pelda.cloudapp.net/.
image
A következő oldalon adhatjuk meg a használni kívánt STS adatait. Erre a korábban már látott FederationMetadata.xml szolgál majd. Adjuk meg a lenti mezőben a https://adfsserver.adfsdemo.local/FederationMetadata/2007-06/federationmetadata.xml URL-t. Az alkalmazás figyelmeztetni fog bennünket, hogy a talált tanúsítvány nem megbízható, de erről természetesen tudunk.
image
A további oldalak beállításain már nem szükséges változtatnunk, haladjunk végig a varázslón. Ezzel alkalmazásunkat beállítottuk, hogy megnyitásakor jelentkeztesse be a felhasználókat az ADFS segítségével.
Próbáljuk ki, hogy működik-e! Futtatáskor két egymást követő tanúsítványhibát kapunk a saját magunk által gyártott tanúsítványok használata miatt. Az első a saját alkalmazásunkra vonatkozik. Miután továbblépünk rajta, az alkalmazás továbbirányít bennünket az ADFS szerverre, itt jön a második. Ha ezen is továbblépünk, akkor megjelenik a hitelesítő ablak.
Ide megadva egy AD-ban érvényes nevet és jelszót, hibaablakot kapunk. Ha ezt látjuk, akkor idáig jól végeztük a dolgunkat – a lenti hiba azt jelenti, hogy az alkalmazás sikeresen hitelesít az ADFS felé, de az ADFS még nem bízik az alkalmazásunkban (és természetesen egy ismeretlen helyről érkező kérést nem fog kiszolgálni, mert ez biztonsági rést jelentene).
image
Utolsó feladatunk tehát a szerver és a kliens közötti bizalmi kapcsolat második felének beállítása.
A szerver beállítása az alkalmazás kéréseinek elfogadására
Térjünk vissza a virtuális géphez. Legutóbb a konfigurációs varázslóval és az IIS-sel dolgoztunk rajta; ezeket bezárva visszajutunk az ADFS menedzsment konzolhoz. Középen egy új menüelem jelent meg Required: Add a trusted relying party névvel. Kattintsunk rá.
image
Egy újabb varázslóban találjuk magunkat. A nyitólapot továbbkattintva meg kell adnunk a kliens adatait. A szerverhez hasonlóan a kliens is egy FederationMetadata.xml-t bocsát ki magából, ami tartalmazza a szerver számára szükséges információkat. Megadhatunk ugyan URL-t is, de a tanúsítványproblémák miatt a varázsló nem tudja majd megnyitni. Így kézzel kell azt letöltenünk.
Indítsuk el a fejlesztői gépen a webalkalmazást, hogy az IIS-be felkerüljön. Ha van tűzfalunk, akkor nyissuk meg rajta a 443-mas portot, hogy a szervergép hozzá tudjon férni az IIS-hez. Majd a szervergépen nyissuk meg a https://192.168.120.1/AdfsClient/FederationMetadata/2007-06/federationmetadata.xml URL-t, és mentsük le lemezre az XML fájlt. Végül adjuk meg a varázslóban a lementett XML fájl elérési útját.
image
A következő képernyőn adjunk egy nevet (pl. AdfsClient) a kliensnek, a többi képernyőn pedig lépjünk túl, mert az alapértelmezett beállítások megfelelőek.
image
Ezekkel a beállításokkal elértük, hogy ha az alkalmazásunk kérést küld a szerver felé, akkor a szerver ki fogja azt szolgálni.
Már csaknem kész vagyunk, de azt még nem állítottuk be, hogy a visszaküldött tokenben pontosan mik szerepeljenek. Az Active Directory-ban rengeteg információ megtalálható, amiket valahogy le kell képezni a tokenen szereplő állításokra (melyek tulajdonképpen név-érték párok).
Ezeknek a beállítására automatikusan egy újabb ablak nyílik. Az Add Rule gombra kattintva adhatunk hozzá szabályokat.
image
A legegyszerűbb leképzési szabály az, ha a LDAP tulajdonságokat (Active Directory tulajdonságok) egy az egyben leképezzük a tokenen szereplő állításokra.
image
A következő képernyőn vegyük fel az alábbi leképzéseket, melyek a felhasználó loginnevét (pl. balint) és rendes nevét (pl. Farkas Bálint) leképezik állításokra. Amint látható, nem szükséges minden AD tulajdonságot kiküldeni; célszerű csak azokat, amelyekre az alkalmazásnak feltétlenül szüksége van.
image
Ha ezzel megvagyunk, akkor jó hírem van: elkészültünk. Megvan a szerver és az alkalmazás, és ezek kölcsönösen meg is bíznak egymásban. Nincs más hátra, mint kipróbálni a művet.
Látogassunk el a https://localhost/AdfsClient/ URL-re. 2 tanúsítványhiba árán eljutunk az Active Directory hitelesítőablakhoz. Adataink beírása után egy újabb tanúsítványhiba fogad bennünket, majd visszakapjuk a korábban fejlesztett Default.aspx-et, amely megjeleníti felhasználói adatainkat. Azaz sikeresen bejelentkeztünk egy távoli Active Directory segítségével.
image

És ugyanez élesben?

…Jóval egyszerűbb lesz. Nincs probléma a DNS szerverrel, hiszen az AD-nek lesz a céges, vagy esetleg nyilvános DNS szerver által feloldható címe (ez alapkövetelmény a helyes működéséhez). Továbbá használhatjuk a Windows Azure-t, mert a teljes felhőnek természetesen nincsenek a Compute Emulator-hoz hasonló megkötései.
Egy teljes felhőalkalmazás ADFS-ítése a fenti lépéseknek megfelelően történhet:
  1. Előkészítjük az AD-t (valószínűleg csak az ADFS-t kell rátelepíteni és konfigurálni, nem kell a fent leírt valamennyi lépés).
  2. Megírjuk, vagy kibővítjük az alkalmazásunkat.
  3. Még a “földön” (fejlesztői gépen) bekonfiguráljuk az alkalmazást, hogy az AD-vel szemben hitelesítsen.
  4. Feltesszük az alkalmazást a felhőbe (hogy megkapja a végleges URL-jét).
    FIGYELEM: A referencia miatt belekerül majd a Microsoft.IdentityModel DLL is az alkalmazásunkba, azonban ez a felhőben nem létezik, így kézzel kell felmásolnunk! Állítsuk True-ra a Copy Local tulajdonságát.
    image
  5. Miután az alkalmazás felkerült a felhőbe, bekonfiguráljuk az ADFS-t, hogy megbízzon a felhőalkalmazás felől érkező kérésekben.

HTML ismeretek 9. osztály


Jegyzet az órán tanultakhoz; 

http://people.inf.elte.hu/zirtaai/html_ebooks/html_css_24ora_alatt.pdf
http://www.standardsmode.hu/html-css/html-alapok/

Fogalmak;

A HTML (angolul: HyperText Markup Language=hiperszöveges jelölőnyelv) egy leíró nyelv, melyet weboldalak készítéséhez fejlesztettek ki.

Cím szabvány a böngészőben.;

A HTTP (HyperText Transfer Protocol) egy információátviteli protokoll a weboldalak eléréséhez.

Az URL vagy más néven webcím (mely a Uniform Resource Locator [egységes erőforrás-hely] rövidítése), az interneten megtalálható bizonyos erőforrások (például szövegek, képek) szabványosított címe.

CSS; A stíluslapokat leíró nyelv a CSS, amelynek az elemeivel betűtípusokat, színeket, illetve elhelyezést határozhatunk meg, így végeredményben megadhatjuk, hogy miként jelenjen meg egy oldal tartalma a böngészőablakban. A CSS-stílusokat tárolhatjuk közvetlenül az adott HTML-fájlban, de külön stíluslapfájlban is elhelyezhetjük azokat. Bárhogy is járjunk el, a stíluslapok stílusszabályokat tartalmaznak, amelyek adott típusú elemek megjelenését befolyásolják. Ha külön fájlban tároljuk őket, akkor. CSS kiterjesztéssel jelöljük, hogy stíluslapfájlról van szó.

Egy péda style.css tartalomra;





































Utalás az index.html <head> részében a css-re;

<link rel="stylesheet" type="text/css" href="styles.css" />

Webszerver; PHP_SQL
A PHP általános szerver oldali szkript nyelv, melyet dinamikus weblapok megalkotására hoztak létre. A PHP a Personal Home Page (személyes honlap) kifejezésből ered, de hivatalos jelentése a következő: Hypertext Preprocessor. A MySQL egy olyan adatbázis rendszer, mely sok adat tárolására alkalmas, továbbá keresni is tudunk közöttük. Ezek az adatbázisok pedig könnyen kezelhetőek PHP programok segítségével. Később részletesen.

A File Transfer Protocol, vagy rövid nevén FTP TCP/IP hálózatokon – mint amilyen az internet is – történő állományátvitelre szolgáló szabvány. Gyakran van szükség arra, hogy valamilyen állományt hálózaton keresztül töltsünk le saját gépünkre, vagy egy állományt mások számára hozzáférhetővé tegyünk. Erre alkalmas az FTP, ami lehetővé teszi a különböző operációs rendszerű gépek között is az információcserét. A világon nagy mennyiségű információforrás áll rendelkezésre, melyek letöltése ilyen módon megvalósítható.

A XAMPP egy szabad és nyílt forrású platformfüggetlen webszerver-szoftvercsomag, ami biztosítja gépünkön a megfelelő webszerver környezetet. Ez a szoftvercsomag egy integrált rendszert alkot, amely webes alkalmazások készítését, tesztelését és futtatását célozza, és ehhez egy csomagban minden szükséges összetevőt tartalmaz. A rendszer egyik nagy előnye az összehangolt elemek könnyű telepíthetősége.

Szerkesztés; jegyzettömb notepad, vagy grafikus prg; később.

Kezdő oldal neve index.html

Minden HTML formátumú szövegfájl a <HTML> utasítással kezdődik és a </HTML> záró utasítással végződik. A dokumentumot a fejlécelemek vezetik be, melyek kezdetét a <HEAD> utasítás jelzi. A fejlécelemek között szokás a dokumentumcímet megadni, mely címet a <TITLE> és a </TITLE> utasítások közé kell zárni. A fejlécet a </HEAD> utasítás zárja.  A dokumentumtörzs a fájl <BODY> és </BODY> utasítások közötti része. Ezen elemek között kell elhelyezni mindent: a szöveget, hivatkozásokat, képeket, stb. (A keretek és a JavaScript kódok kivételével!) Tehát a következőkben a következő szerkezetet fogjuk használni:

Mit miért:

 <?xml version="l.О" encodings"UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//HU"
"http: //www.w3 .org/TR/xhtmlll/DTD/xhtmlll .dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head><title>The First Web Page</title></head>

Kezdjük; az oldal szerkezete

<HTML>

<HEAD>

<TITLE> Ide jön az oldal címe, ezt a szöveget fogod latni a böngésző címsorában</TITLE>

</HEAD>

<BODY>

Ide jön a dokumentumtörzs. A tartalom ami látható a weboldalon

</BODY>

</HTML>


A következőkben egyszerű formázó tag-ekre mutatok példát, amelyet a <body> és </body> tagek közé kell elhelyezni.


<html> ... < /html> Magában foglalja a teljes HTML-dokumentumot.
<head> ... </head> Ez az elem tartalmazza a HTML-dokumentum fejlécét.
<title> ... </title>  Ez az elem tartalmazza a dokumentum címét.
<body> ... < /body>Ez az elem tartalmazza a HTML-dokumentum törzsét.
<p> ... < /P>           Szövegtömb  Bekezdés.
<br />                     Az egyes bekezdések között kihagy egy sort. Sortörés.
<hr />                    Vízszintes vonal.
<hl> ... </hl>          Első szintű címsor.
<h2> ... </h2>       Második szintű címsor.
<h3> ... </h3>       Harmadik szintű címsor.
<h4> ... </h4>       Negyedik szintű címsor (ritkán használt).
<h5> ... </h5>      Ötödik szintű címsor (ritkán használt).
<h6> ... </h6>      Hatodik szintű címsor (ritkán használt).

 A táblázatban láthatjátok a kódot, és mellette a kód eredményét. Amint látni fogjátok, minden tag-et (formázó utasítást) a < jel vezet be, és a > jel zár le. Az adott tag hatását a megfelelő lezáró tag szünteti meg, amely </tag> formátumú.

() Ha nem ezt szeretnéd használni, akkor természetesen bármilyen szöveges szerkesztőben (pl. notepad, joe, pico) megírhatod a kódot, amit  el kell mentened, majd a böngésződbe be kell olvasnod.

Betűtípusok, stílusok <b> <i> <u> <tt>

Ha ezt a kódot beírod a dokumentumtörzsbe

<b>Kövér betűk (bold) </b>

Kövér betűk (bold)

<i>Dőlt betűk (italic)</i>

Dőlt betűk (italic)

<u>Aláhúzott betűk (underlined) </u>

Aláhúzott betűk (underlined)

<tt>Írógép betűk (teletype) </tt>

Írógép betűk (teletype)

Fejléc <h1> ... <h6>

(A fejlécek - mint ahogy a szövegszerkesztésnél is megszokhattuk - a html oldalak logikai felosztását teszik lehetővé. pl. h1 az oldal címe, h2 egy alcím, h3 annak az alcíme és így tovább. A HTML oldalak esetén 6 fejlécet használhatunk)

<h1>1-es fejléc </h1>

1-es fejléc

<h2>2-es fejléc </h2>

2-es fejléc

<h3>3-as fejléc </h3>

3-as fejléc

<h4>4-es fejléc </h4>

4-es fejléc

<h5>5-ös fejléc </h5>

5-ös fejléc

<h6>6-os fejléc </h6>

6-os fejléc

Ha nem az alapértelmezett (balra) igazítást szeretnénk használni, megadhatjuk az igazítás típusát az align paraméter segítségével. (left=balra, center=középre, right=jobbra) pl.

<h1 align="center"> Ez egy középre igazított 1-es fejléc </h1>

Ez egy középre igazított 1-es fejléc

<h3 align="right"> Ez egy jobbra igazított 3-as fejléc </h3>

Ez egy jobbra igazított 3-as fejléc

betűméret <font size=" ">

A betűméretet kétféleképpen állíthatjuk be: abszolút és relatív módon.

Az abszolút méretmegadásban 1 és 7 között állíthatjuk be a méretet, ahol a 7-es a legnagyobb az 1-es a legkisebb...

<font size ="4"> 4-es betűméret </font>

4-es betűméret

<font size ="7"> 7-es betűméret </font>

7-es betűméret

 A relatív méretbeállításnál azt adhatjuk meg, hogy az alapként beállított betűmérethez képest mennyivel nagyobb, illetve kisebb betűméretet akarunk látni. Ha pl. 2-el nagyobbat, akkor a +2, ha 1-el kisebbet, akkor a -1 méretmegadást kell alkalmaznunk.

Azt, hogy mihez képest legyen nagyobb vagy kisebb az adott betűméret a <basefont size="méret"> tag segítségével állíthatjuk be.

<font size ="+2"> Kettővel nagyobb betűméret </font>

Kettővel nagyobb betűméret

<font size ="-1"> Eggyel kisebb betűméret </font>

Eggyel kisebb betűméret

 Az alábbi ablakban módosíthatod a kódot, és kipróbálhatod a méretmegadások közti különbségeket. pl. megváltoztathatod a basefont beállításokat is...

<HTML>

<HEAD>

<TITLE>Meret megadasok</TITLE>

</HEAD>

<BODY>

<basefont size="3">

<font size="2"> 2-es méret </font>

<font size="4"> 4-es méret </font>

<font size="7"> 7-es méret </font>

<font size="+2"> 2-el növel méret </font>

<font size="-1"> 1-el csökkentett méret </font>

<font size="-2"> 2-vel csökkentett méret </font>

</BODY>

</HTML>

Betűtípus <font face=" ">

A Face paraméter segítségével állítható be a kívánt betűtípus.

Ne használj különleges, egyedi betűtípusokat, mert nagy valószínűséggel a látogatók semmit sem vesznek észre belőle. (ugyanis azon betűtípusok esetében, amelyek nincsenek az adott gépre felinstallálva, a böngésző a hagyományos betűtípusokat jeleníti meg.)

<font face ="Arial">Arial betűtípus. </font>

Arial betűtipus.

<font face ="Courier">Courier betűtípus. </font>

Courier betűtipus.

Betűszín <font color=" ">

A betűk színét is többféleképpen lehet beállítani. Az első esetben a szín nevét használjuk, természetesen angolul. pl. red, yellow, black, white, stb... A második esetben egy kóddal adjuk meg a színt. A 6 jegyű kódot a # jel vezeti be.

<font color=red> Piros </font>

Piros

<font color=#898134> Kevert </font>

Kevert

#898134 a szín úgynevezett RGB kódja. Az első két karakter a vörös (R=red) szín erősségét mutatja 16-os számrendszerben (hexadecimálisan). A leggyengébb a 00, a legerősebb az FF. A 3.és 4. karakter a zöld szín erőssége (G=green), az 5. és 6. a kéké (B=blue)

A színek kódját a grafikai programok többsége megmutatja az adott színt kiválasztva. De az RGB picker segítségével online módon is megtudhatod a színek kódját.

Vízszintes vonal <hr>

Ha a dokumentumon belül valamilyen szakaszt el szeretnénk különíteni a többitől, használhatunk vízszintes elválasztó vonalat a <hr> tag használatával.

Ez egy vízszintes vonal (horizontal rule) <hr>

Az elválasztó vonal szélességét (width) és vastagságát (size) is megadhatjuk. Az igazítás (align)  balra (left), jobbra (right), középre (center) történhet.

pl. <hr size="3" align="center" width="150">

A vonal szélességét megadhatjuk képpontokban (ahogy a fenti példa mutatja), vagy pedig a rendelkezésre álló hely százalékában.

pl. <hr size="3" align="center" width="80%">

Bekezdések <p>

A <p> elem segítségével a szöveget bekezdésekre tördelhetjük. Az adott bekezdést a <p> és </p> elemek közé kell tenni. A bekezdést az align paraméterrel balra, középre, jobbra igazíthatjuk.

A böngészők az egyes bekezdések előtt és után - a tagolás érdekében - nagyobb helyet hagynak.

Igazítás (align): left(balra), center(közép), right(jobbra)

<P align="left"> Ez egy balra igazított bekezdés </P>

Ez egy balra igazított bekezdés

<P align="center"> Ez egy középre igazított bekezdés </P>

Ez egy középre igazított bekezdés

<P align="right"> Ez egy jobbra igazított bekezdés </P>

Ez egy jobbra igazított bekezdés

Sortörés <br>

Ha a szövegben egy sort feltétlenül új sorban akarunk kezdeni a <br> taget kell használnunk.

Ez az első sor<br>Ez pedig a második

Ez az első sor

Ez pedig a második

Hiperlinkek <a href="URL">  szöveg </a>

A hiperlinkekkel hozhatunk létre kapcsolatot szövegrészek, illetve dokumentumok között. A böngészők a linkeket aláhúzással illetve eltérő színnel jelölik, persze ezek a beállítások megváltoztathatóak.

Az URL (Uniform Resource Locator, egységes dokumentum meghatározó rendszer) a következő lehet:

Ha a saját gépünkön lévő dokumentumra szeretnénk hivatkozni, akkor az URL megadásánál a file:// "előtagot" kell használnunk. Ha pl. a c:\web\iskola\palyazat.html oldalra szeretnénk linket, akkor a file://C|WEB/ISKOLA/PALYAZAT.HTML URL-t kell használni. A c:\ megadás helyett használjuk a c| formát.

file://

dokumentum a kliens számítógépen

file://C|WEB/ISKOLA/PALYAZAT.HTML

Jól gondoljuk meg, hogy valóban erre a megadási módra van-e szükségünk. (ha ugyanezt az oldalt másik gépről néznénk, akkor a link az azon a gépen lévő web alkönyvtárban keresné az iskola alkönyvtárat és abban a palyazat.htm oldalt...)

Ha egy FTP szerveren elhelyezkedő állományt akarunk belinkelni, akkor az ftp:// protokolt kell használni.

ftp://

file átviteli protocol

ftp://ftp.c3.hu/Utilities/winzip70.exe

Ha egy másik weboldalra akarunk linket, használjuk a következőt:

http://

hypertext transfer protocol

http://www.elte.hu/

Ha a link segítségével be szeretnék jelentkezni (telnet segítségével) egy gépre, használjuk a következőt:

telnet://

bejelentkezés egy távoli gépre

telnet://wmk.hu/

Ha a mailto:email cím formát használjuk, az adott linkre kattintva betöltődik az alapértelmezett levelezőprogram, amellyel emailt küldhetünk a megadott email címre.

mailto:

email cím megadása

mailto:abonyita@freemail.hu

(A levél tárgya is megadható a ?subject=szöveg elemmel, sőt az is hogy ki kapjon másolatot (?cc=cimzett) Ha több opciót akarunk megadni, akkor az &jelet kell alkalmazni. pl. mailto:abonyita@freemail.hu?CC=gipszjakab@freemail.hu&Subject=Proba)

Példák:

<a href="http://wmk.hu/">Ez az iskolánk honlapja</a>

Ez az ELTE honlapja

<a href="ftp://ftp.c3.hu/Utilities/Winzip70.exe ">A winzip letölthető erről a címről</a>

A winzip letölthető erről a címről

<a href="mailto:szli@freemail.hu?subject=Üdvözlet">Itt írhat nekem levelet</a>

Itt írhat nekem levelet

A következőkben (pl. a frameknél) még foglalkozunk a hiperlinkek megadási módjaival.

Felsorolások

A HTML nyelv lehetőséget ad arra, hogy különböző listákat (felsorolás, sorszámozott, meghatározás) hozzunk létre.

Egyszerű felsorolás

Egyszerű felsorolás esetén az <ul> és </ul> tagek közé kell elhelyeznünk a listaelemeket, amelyeket a <li> tagek vezetnek be. pl.

<ul>

<li>első elem

<li>második elem

<li>harmadik elem

</ul>

első elem

második elem

harmadik elem

Sorszámozott lista

Sorszámozott lista  esetén az <ol> és </ol> tagek közé kell elhelyeznünk a listaelemeket, amelyeket a <li> tagek vezetnek be. pl

<ol>

<li>első elem

<li>második elem

<li>harmadik elem

</ol>

első elem

második elem

harmadik elem

Meghatározás lista

Meghatározás lista esetén az <dl> és </dl> tagek közé kell elhelyeznünk a listaelemeket, amelyek a fogalom megadásából (<dt> tag vezeti be) és a magyarázatából (<dd> tag vezeti be) állnak.

<dl>

<dt>1. fogalom <dd>az első fogalom magyarázata

<dt>2. fogalom <dd>a második fogalom magyarázata</dd>

</dl>

1. fogalom

az első fogalom magyarázata

2. fogalom

a második fogalom magyarázata

2018. március 9., péntek

SAMBA FILE KISZOLGÁLÓ LINUX ALATT (14_A)


Csomag telepítése
sudo apt-get install samba

/etc/samba/smb.conf

ÁTÍRNI
workgroup = EXAMPLE
   ...
   security = user
úJ SZAKASZ
[share]
    comment = Ubuntu fájlkiszolgáló megosztás
    path = /srv/samba/megosztas
windows tallózás engedélyezése
    browsable = yes
jelszó nélül vendégként hozzáférés
    guest ok = yes
fordított, írási jog
    read only = no
    új file esetén a jogosultság
create mask = 0755
Megosztás
sudo mkdir -p /srv/samba/megosztas
a -p a teljes könyvtárfát létrehozza
sudo chown nobody.nogroup /srv/samba/megosztas/
sudo /etc/init.d/samba restart

A felhasználókhoz rendeli az adatbázist
sudo apt-get install libpam-smbpass
/etc/samba/smb.conf
guest ok = no
sudo /etc/init.d/samba restart
olvasási jog
read list = @qa
    write list = @sysadmin, vincent

adnin jog melissanak

sudo chown -R melissa /srv/samba/share/
sudo chgrp -R sysadmin /srv/samba/share/
sudo setfacl -R -m g:qa:rx /srv/samba/share/

PDC tartományvezérlő
sudo apt-get install samba libpam-smbpass
munkacsoport felhasználó
workgroup = EXAMPLE
   ...
   security = user
domain logons = yes  (tartományvezérlő)
   logon path = \\%N\%U\profile
   logon drive = H:
   logon home = \\%N\%U    (saját könyvtár helye)
   logon script = logon.cmd
   add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u
létrehozta az accountot

admin users = melissa
sudo /etc/init.d/samba restart

[homes]
   comment = Saját könyvtárak
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S
Tartományvezérlő beállítása
[netlogon]
   comment = Hálózati bejelentkezési szolgáltatás
   path = /srv/samba/netlogon
   guest ok = yes
   read only = yes
   share modes = no
parancsfile
sudo mkdir -p /srv/samba/netlogon
sudo touch /srv/samba/netlogon/logon.cmd
rendszer csoport
sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
sudo /etc/init.d/samba restart
sudo apt-get install samba libpam-smbpass
workgroup = EXAMPLE
   ...
   security = user
domain logons = yes
   domain master = no
sudo chgrp -R admin /var/lib/samba
sudo scp -r felhasználónév@pdc:/var/lib/samba /var/lib
sudo /etc/init.d/samba restart

AD DC
sudo apt-get install samba smbfs smbclient
sudo mv /var/lib/samba/secrets.tdb /var/lib/samba/secrets.tdb.orig
sudo ln -s /etc/samba/secrets.tdb /var/lib/samba
/etc/samba/smb.conf beállítása
workgroup = PÉLDA
   ...
   security = ads
   realm = PÉLDA.HU
   ...
   idmap backend = lwopen
   idmap uid = 50-9999999999
   idmap gid = 50-9999999999

sudo /etc/init.d/samba restart
mount.cifs //fs01.példa.hu/megosztás csatolási_pont//192.168.0.5/megosztás /mnt/windows cifs auto,username=geza,password=titok,rw 0        0
smbclient //fs01.példa.hu/megosztás -k -c "ls"
smbclient //fs01.példa.hu/megosztás -k -c "get fájl.txt"
smbclient //fs01.példa.hu/megosztás -k -c "put /etc/hosts hosts"
smbclient //fs01.példa.hu/megosztás -k

parancssoros shellek
sudo apt-get install likewise-open
sudo domainjoin-cli join példa.hu Rendszergazdassh '
ssh 'példa\geza'@gépnév
/etc/samba/lwiauthd.conf
winbind use default domain = yes
demon
sudo /etc/init.d/likewise-open restart
sudo domainjoin-cli leave

Shell parancsok
#!/bin/sh
####################################
#
# NFS-csatolásra biztonsági mentést készítő parancsfájl.
#
####################################

# Mit kell menteni.
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Hová kell menteni.
dest="/mnt/backup"

# Archívumfájl nevének létrehozása.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Kezdési állapotüzenet kiírása.
echo "$backup_files mentése ide: $dest/$archive_file"
date
echo

# A fájlok mentése a tar segítségével.
tar czf $dest/$archive_file $backup_files

# Befejezési állapotüzenet kiírása.
echo
echo "A mentés kész"
date

# A fájlok részletes felsorolása a $dest könyvtárban a fájlméretek ellenőrzéséhez.
ls -lh $dest

-----------
Processzing telepítése linuxra



MC telepítése

apt-get install mc -y



Ha nincs Java a rendszerünkön, az alábbi terminál-parancsokkal telepíthetjük:

sudo add-apt-repository ppa:webupd8team/java


sudo apt-get update


sudo apt-get install oracle-java9-installer -y

Az első parancssor kiadásakor a jelszót kell megadnunk és aztán a lefutó szöveg végén Enter-t.

A harmadik parancsot kiadva várjunk 5-8 percet, amíg lefut a telepítés! Utána ellenőrizzük telepítésünket az iménti java -version paranccsal!

Ha minden rendben ment, még le kell ellenőriznünk a JAVA_HOME környezeti változó állapotát az echo $JAVA_HOMEparanccsal. Erre az alábbi sort kell kapnunk válaszul:

/usr/lib/jvm/java-9-oracle

Ha ez nincs, akkor végül az alábbi parancsot kell kiadnunk még:

sudo mcedit /etc/environment

Ekkor a Midnight Commanderhez tartozó mcedit szövegszerkesztővel hívtuk be a szerkesztendő fájlt, mely a környezeti változókat tartalmazza. A megnyíló szövegszerkesztővel a PATH sort követő sorba írjuk be:

JAVA_HOME="/usr/lib/jvm/java-9-oracle"

Mentsük a fájlt az F2 gombbal és lépjünk ki a szerkesztőből az Esc-vel!

A Processing letöltési helyén válasszuk azt a Linuxot, amelyik architektúrával dolgozunk (32bit vagy 64bit)! A kiválasztott verzióra jobb egérgombbal kattintva válasszuk a cél mentése másként (vagy hasonló hatású) opciót és jegyezzük le a fájlnévben lévő verziószámot! A cikk írásakor ez például processing-3.2.3-linux32.tgz, tehát a verzió 3.2.3. Aztán nyomjuk meg a mégsem gombot, mert nem kell letöltenünk semmit!

A cikk alján letölthető három szöveges fájl. Ezeket mentsük le egy tetszőleges helyre (pl. a Letöltések mappába)! Majd indítsuk el a terminál ablakot és adjuk ki a

cd ~/Letöltések

parancsot belépve ezzel a Letöltések mappába, ahová az imént a három fájlt is lementettük!

Majd hívjuk be a szövegszerkesztőbe a

gedit processing_shortcut.sh

paranccsal a telepítést végző parancsfájlt!

A VERZIO= kezdetű sorba az idézőjelek közt töröljük a korábbi számsort és írjuk be az imént megállapított, aktuális verziószámot! (pl. 3.2.3), majd mentsük el az állományt és lépjünk ki a szerkesztőből!

Hasonló módon szerkesszük meg a processing.desktop.content állományt kiadva a

gedit processing.desktop.content

utasítást! Itt a Version= kezdetű sorba írjuk be a verziószámot, csak idézőjelek nélkül!

Mentsünk és lépjünk ki a szövegszerkesztőből! Nagyjából ennyi volt az előkészület. A parancs sorba (terminálba) adjuk ki az

sh ./processing_shortcut.sh

parancsot (a ./pro után nyomjuk meg a tabulátort és automatikusan kitöltődik a fájlnév).

Ekkor letöltődik a processing, feltelepül és létrejön az ikon. Ha mégsem, úgy a bal felső Dash indító karikára kattintva elkezdjük begépelni a processing szót és a megjelenő ikonra kattintva elindul a program. Ekkor megjelenik az ikonja az indító ikonok közt. Arra jobb egérgombbal kattintva válasszuk az indítóban tartás opciót. Ezután mindig elérhető lesz az ikon.

2018. március 6., kedd

SQL folytatás 2018 március 7. Középszintű Érettségire 12. osztály

https://gyires.inf.unideb.hu/GyBITT/31/ch27s08.html#idp77065568

módosítás kiegészítés

update diak
set nev='Dr.' +nev

törlés akinek a neve ki-vel kezdődik

select * from diakok
go
delete from diakok
where nev LIKE 'Ki%'
go
select from diakok
go


új rekord felvitele
insert into diakok (nev)
values ('kiss pista')
go select * from diakok
go

törlése
delete from diakok
where nev='kiss pista'
go
select* from diakok
go


rendezés
select * from diakok
where neme= '1'
order by suly DESC

több táblás lekérdezés
select * from diakok, tanarok
where nev=vezeteknev

Alias név AS

select *
from diakok AS d, tanarok AS t
where d. nev=k.vezeteknev
and i.nev like 'Kiss%'

táblák összekapcsolása

Mi a különbség az „INNER” és az „OUTER” típusú összekapcsolások között? „INNER JOIN”-ról akkor beszélünk, ha azok és csak azok a rekordok kerülnek bele az eredményhalmazba, melyek az összekapcsolási feltételnek megfelelnek. „LEFT OUTER JOIN” esetén az első tábla összes rekordjához megpróbálunk rekordokat párosítani a második táblából a feltétel alapján. Ha sikerül, akkor az belekerül az eredményhalmazba. Ha nem, akkor az első tábla pár nélküli sorai is az eredményhalmazba kerülnek, miközben a második tábla oszlopait NULL értékkel szerepeltetjük. A „RIGHT OUTER JOIN” értelemszerűen az első és második tábla megfordításával adódik. „FULL OUTER JOIN” esetén a párosított sorok mellett mindkét táblából szerepeltetjük a nem párosítható sorokat, a megfelelő oszlopértékeket „NULL”-al.

select *
from diakok AS d INNER JOIN
Tanarok AS t ON d. nev=vezeteknev

SQL alapfogalmak Középszintű Érettségire 12. osztály

A relációs adatbázis az adatokat relációkban (kapcsolatokban) tárolja, amelyek a felhasználó számára táblák formájában jelennek meg. A táblában egy sort rekordnak neveznek, a rekord mezőkből áll össze.

Tábla

A táblák az adatbázis legfontosabb szerkezetei, minden tábla egyetlen, jól meghatározott tárgyat ír le. A rekordok és a mezők sorrendje lényegtelen, minden tábla tartalmaz legalább egy olyan mezőt, amely egyedi módon azonosítja a tábla rekordjait, ezt elsődleges kulcsnak nevezzük. Azokat a táblákat, amelyek a tárolt adatok alapján információt szolgáltatnak, adattábláknak nevezik. Az ilyen táblákban tárolt adatok általában dinamikusak, mivel módosíthatók és többféle módon feldolgozhatók.

Mező

A mező az adatbázis legkisebb szerkezete, amely a tábla tárgyának egy jellemzőjét adja meg. A mezők tárolják a tényleges adatokat. Egy jól megtervezett adatbázisban minden mező egy vagy több értéket tartalmaz, és a mező neve utal a tárolt értékre.

Rekord

Az adatbázis egy sora, amelyet rekordnak is neveznek, a tábla tárgyának egy egyedi példányát írja le. A rekord a teljes mezőkészletet magában foglalja, függetlenül attól, hogy az adott mezők tartalmaznak-e értékeket. Az elsődleges kulcsként használt mező azonosítja a tábla sorait, vagyis a rekordokat.

Kulcsok

A kulcsok olyan mezők, amelyek különleges szerepet töltenek be a táblában. Egy tábla számos különféle típusú kulcsot tartalmazhat, a legfontosabbak az elsődleges és a másodlagos kulcsok. Az elsődleges kulcs olyan mező, vagy mezőcsoport, amely egyedi módon azonosítja a rekordokat a táblán belül. Ha az elsődleges kulcs több mezőből áll, akkor összetett elsődleges kulcsnak nevezik. Az elsődleges kulcs a tábla legfontosabb kulcsa.

Az elsődleges kulcs értéke egy rekordot azonosít az adatbázisban.
Az elsődleges kulcs mező egy táblát azonosít az adatbázisban.
Az elsődleges kulcs táblaszintű épséget biztosít, és segít a táblák összekapcsolásában.
Az adatbázis minden táblájának kell, hogy legyen elsődleges kulcsa.
Nézettábla

A nézettábla egy virtuális tábla, amely az adatbázis egy vagy több táblájának mezőiből áll, és a nézettáblát felépítő táblákat együttesen alaptábláknak nevezzük. A nézettáblák tartalmukat más táblákból nyerik. Ezek a táblák lehetővé teszik, hogy többféle nézőpontból lehessen vizsgálni az adatbázis tartalmát.

Kapcsolatok

Ha két tábla rekordjai valamilyen értelemben összetartoznak akkor a két tábla kapcsolódik egymáshoz. A táblák közötti kapcsolatok elsődleges és másodlagos kulcsokkal, és kapcsolótábla segítségével valósíthatók meg.



Az adatbázisokhoz tartozik egy programrendszer, neve adatbázis-kezelő rendszer (Database Managment System - DBMS). Ezzel lehet az adatok tárolását megszervezni, az adatbázisban tárolt adatokat kezelni: adatokat megkeresni, kiválasztani, karbantartani, módosítani, új adatokat beilleszteni, vagy egyes adatokat törölni.

Ezeket a rendszereket szokás egyszerűen adatbázisrendszereknek nevezni. Egy adatbázis-kezelő rendszerrel hatékonyan készíthető, kezelhető az adathalmaz, az adatok hosszú ideig, biztonságosan megőrizhetőek. Ezek a rendszerek a legbonyolultabb, legösszetettebb programok közé sorolhatóak. Egy adatbázis-kezelő rendszerrel szembeni igények a következők:

Legyen lehetőség új adatbázisok létrehozására, és az adatok logikai struktúráját, vagyis az adatbázis sémáját, egy speciális nyelven lehessen megadni. Adatdefiníciós nyelvnek nevezik ezt a speciális nyelvet. Angol neve Data Definiton Language, rövidítve: DDL.
Legyen lehetőség megfelelő nyelv segítségével az adatok módosítására és lekérdezésére. Ezt a nyelvet adatmanipulációs nyelvnek vagy lekérdező nyelvnek nevezik. Angol neve: Data Manipulation Language, rövidítve: DML.
Megvalósítható legyen nagy mennyiségű adat hosszú időn keresztüli tárolása. Az adatok védelme biztosítható legyen az illetéktelen hozzáférésektől és a meghibásodásoktól. Az adatok biztonsága garantálható legyen. Az adatbázis módosításakor és a lekérdezéseknél hatékony adathozzáférést tegyen lehetővé.
Korrekt módon lehessen kezelni több felhasználó egy időben történő adathozzáférését, az egyes felhasználók műveletei ne legyenek hatással a többi felhasználóra, az egyidejű adat hozzáférések miatt az adatok ne váljanak hibássá vagy következetlenné.
Az adatbázis tartalma időben változik. Az adatbázis kifejezés alatt a pillanatnyilag tárolt információra lehet gondolni. Az adatbázis-kezelő szó az adatbázis-kezelő programrendszer szó rövidítése. Az adatbázis-kezelő programjait működtetőket felhasználóknak, user-eknek, nevezik. Azokat, akik felelősek az adatbázis-kezelő programjainak karbantartásáért, új programok megírásáért, ezeknek az adatbázis-kezelőbe történő be illesztéséért, az információ épségéért, adatbázis-adminisztrátornak hívják.

Néhány adatbázis-kezelő rendszer

Banki rendszerek

Adatelemek: ügyfelek nevei, címei, folyószámlák és hitelszámlák egyenlegei, ügyfelek és számlák közötti kapcsolatok. Ilyen kapcsolat például: kinek melyik számlához van aláírási jog. Gyakori a számlák egyenlegének lekérdezése és a módosítások, amelyek a számlára vonatkozó befizetést vagy kifizetést jelentenek. Gyakori, hogy egyidejűleg több banki ügyintéző és bankjegykiadó automatát használó ügyfél végez lekérdezést vagy módosítást. Alapvetően fontos, hogy az egyidejűleg végzett műveletek miatt ne vesszenek el egy automatánál elvégzett műveletek adatai. Hibák nem megengedhetőek. Ha a pénzt kiadta az automata, akkor a pénzfelvételt is rögzítenie kell a banknak, ha közben áramszünet lesz. Másrészt nem megengedhető, hogy a pénzfelvételt rögzítsék, de a pénzt ne adja ki az automata áramszünet miatt. Az ilyen műveletek helyes kezelése nem egyszerű.

Vállalati nyilvántartások

Az első számítógépes alkalmazások közül jó néhánynak az volt a feladata, hogy egy vállalat különböző nyilvántartásait kezelje. Az adatok kapcsolódhattak az eladásokhoz, kimenő és bejövő számlákhoz, vagy a dolgozókhoz. A lekérdezések olyan jelentések kinyomtatásából állnak, mint például a kinn lévő számlák, a dolgozók havi fizetése. Az eladások, vásárlások, számlakibocsátások, számlakifizetések, dolgozók felvétele, elbocsátása, előléptetése mindezek az adatbázis módosítását jelentik.

Országos Lótenyésztési Információs Rendszer (OLIR)

A hazai regisztrált lóállományra vonatkozó adatok nyilvántartása. A tenyésztői, tulajdonosi információk mellett rögzítik a származási és küllemi adatokat is. Gyakori lekérdezések között szerepel a származási lapok megjelenítése, adott ló ivadékainak listázása.





Az egyes mezőkhöz rendelhető fontosabb adattípusok:

Szöveg: legfeljebb 255 karakter hosszú karakterlánc, alapértelmezett hosszúsága 50 karakter.
Feljegyzés: legfeljebb 65535 karakternyi szöveg.
Szám: numerikus adatok tárolására.
Dátum/idő: 100-tól 9999-ig terjedő években dátum és időpont tárolására szolgál.
Pénznem: szimbólum, amely az érték mellett szerepel.
Számláló: automatikusan generált egyedi sorszám, értéke egyesével növekszik új rekordok felvételénél.
Igen/nem: logikai érték.
OLE objektum: más alkalmazásban (például Word, Excel) létrehozott objektum tárolására használható (szöveges dokumentum, kép, hang, stb.).
Hiperhivatkozás: például URL cím. Hossza legfeljebb 65535 karakter, nem indexelhető.
A következő mezőtulajdonságokat lehet megadni.

Mezőméret: a szövegmező mérete 1 és 255 karakter között lehet.
Formátum: az adatok megjelenítési és kinyomtatási módja.
Tizedes helyek: a tizedes helyek száma, a szám és a pénznem típusoknál.
Beviteli maszk: formázó karakterek megjelenítésére szolgál, amelyek biztosítják, hogy a bevitt adatok megfeleljenek a megadott maszknak.
Cím: a mező átnevezése végezhető el ezzel. Az eredeti név helyett ez jelenik meg az adattáblában, a lekérdezésben, az űrlapon és a jelentésben.
Alapértelmezett érték: új rekord hozzáadásakor automatikusan ez az érték jelenik meg a mezőben.
Érvényességi szabály: a mezőbe bevihető adatok körét korlátozó kifejezés.
Érvényesítési szöveg: az adatmezőben érvénytelen adat beírásakor megjelenő figyelmeztető üzenet.
Kötelező: a mezőbe mindig kell megadni adatot, nem hagyható üresen.
Nulla hosszúság engedélyezése: Szöveg vagy Feljegyzés típusú mezőknél megengedett a nulla hosszúságú karakterlánc is.
Indexelt: az adott mező értékeire gyorsan kereshető lesz a tábla.
Új érték: Számláló típusú mezőnél megadható, hogy növekvően vagy véletlenszerűen kapja a mező az értékét új rekord hozzáadásakor.

Információ vagy adat

A környezetünkből érkező, a befogadó személyre ható impulzusok az adatok: mindaz, amit látunk, hallunk, érzünk (akár szaglás útján, akár tapintással, akár emócionális úton). Az adat az által válik információvá, hogy a befogadó az észlelésen túl jelentéssel ruházza fel. Ez azt jelenti, hogy az a tény, hogy süt a nap (ha egyébként nem érdekel bennünket, csak éppen tudomásul vesszük, hogy nem kell villanyt gyújtanunk): adat, ami akkor válik információvá, ha ez a tény számunkra valamilyen jelentéssel bír (pl. azzal, hogy akkor most biztosan nincs éjfél). Egy másik (a két fogalom viszonyával foglalkozó szakirodalmi forrásokban gyakran említett) példával élve, ha meglátunk egy kínai nyelvű feliratot, érzékeljük az írásjeleit (adat), de - tisztelet a kivételnek - nem tudjuk, mit jelent a felirat, tehát nincs információ-tartalma - számunkra. Ebben a megközelítésben tehát az adat részhalmaza az információ. A második megközelítés szerint a környezet ingerei közül a számunkra nem fontos ingerekről úgysem veszünk tudomást, következésképpen ezeket felesleges is kategorizálni. Maradnak a környezetünk azon impulzusai, amelyeket figyelembe veszünk - azaz számunkra valamilyen oknál fogva fontosak, jelentéssel bírnak: ezek az információk. Ebben a megközelítésben az információnak azt a jellemzőjét szokás hangsúlyozni, hogy megszerzésével az érzékelő személy „tudása" bővül - az információ tehát érték(es észlelés). Az adat pedig nem más, mint az információ tárolt (rögzített vagy rögzítésre alkalmas) formája. Tehát az előző gondolatmenet kínai feliratánál maradva, ha nem tudunk kínaiul, akkor a fent említett táblán látható ákombákomok még csak nem is információk. Ha viszont el tudjuk olvasni a tábla feliratát, akkor ugyanazok az álombákomok máris információvá válnak - sőt, adattá is (hiszen rögzített módon állnak rendelkezésre). Vegyük észre, hogy e szerint a megközelítés szerint a rész-egész viszony pont a fordítottja az előzőnek: itt az információ a nagyobb halmaz, az adat pedig annak részhalmaza.
A két megközelítésben - látszólagos ellentmondásosságuk dacára is - van egy közös vonás: az információt mindkét megközelítés olyasvalaminek tekinti, ami a befogadó számára jelentéssel bír, fontos, értékes. (A továbbiakban az egyszerűség kedvéért nem teszünk különbséget az adat és az információ között - ahol mégis lényeges, ott hangsúlyozzuk, hogy melyik értelmezésben használjuk egyik vagy másik fogalmat.)
Természetesen az információ nem „csak úgy van" (persze, vannak ilyen típusú információk is, de a számítástechnika szempontjából ezek kevésbé jelentősek): azt valamilyen módon elő kell állítani (pl. méréssel, számítással, kutatással), értelmezni kell tudni (ld. az előző példát!), esetleg szükség lehet a tárolására (holnap ne kelljen már újra kiszámolni), stb. Azoknak az eszközöknek és módszereknek az összességét, amelyek az információ előállításával, tárolásával, feldolgozásával és továbbításával foglalkoznak, információtechnológiának nevezzük. Amennyiben ezt leszűkítjük egy konkrét feldolgozási folyamatra (azaz meghatározható a szóba jöhető információk köre, a feldolgozásukra szolgáló módszerek összessége, a tárolásuk módja, stb.), akkor beszélhetünk információ (-technológiai) rendszerről (IT rendszer).
Végül pedig azt a tudományágat, amely a fentieknek megfelelő IT rendszerek fejlesztési, üzemeltetési, elemzési kérdéseivel foglalkozik, informatikának hívjuk. (Fontos: a fentiekből természetesen következik, hogy az informatika nem azonos a számítástechnikával: ez utóbbi az informatika egyik részterülete, amely egy konkrét eszközrendszerre vonatkozóan végzi a fentebb megfogalmazott feladatokat!)
Előfordul, hogy az információ a keletkezési helyén kerül feldolgozásra, de (manapság már) nem ez az általános: az információt (általában) el kell juttatni egyik rendszerből a másikba, az ezzel kapcsolatos eljárásokat nevezzük összefoglaló néven kommunikációnak. A kommunikációs folyamatban legalább két fél vesz részt: az információt közlő (adó) és az információt fogadó (vevő). A kommunikáció csak akkor lehet sikeres, ha az adó által közölt információ ugyanazzal a jelentéstartalommal jelenik meg a vevőnél - ez pedig csak akkor biztosítható, ha a kommunikáció során mindkét fél betart bizonyos (előre meghatározott) szabályokat. Protokollnak nevezzük a kommunikációs folyamatra vonatkozó előírások gyűjteményét. Amennyiben egy kommunikációs folyamatban a részt vevő ICT eszközök összetartozását szeretnénk hangsúlyozni (vagyis azt a tényt, hogy az adott eszközök nem véletlenszerűen továbbítanak és fogadnak információt egymás között, hanem ezt valamilyen céllal teszik), akkor beszélünk kommunikációs hálózatokról.
Nos, vannak tehát információink, amelyek kommunikációs protokollok biztosításával jutnak el egyik informatikai eszköztől a másikig. Ezek az eszközök aztán valamit csinálnak az információval. Azt, hogy pontosan mit, azt nyilvánvalóan az információt értelmező személy határozza meg, jelen esetben a hangsúly az automatizálhatóságon van. Algoritmusnak nevezzük valamely feladat megoldását eredményező, véges számú, elemi (további műveleti részre már nem bontható) tevékenységek szabályokkal definiált sorozatát. Ha egy algoritmusra a következő feltételek teljesülnek, akkor az az algoritmus gépesíthető:
egyértelműen meghatározott kezdőtevékenységgel rendelkezik (azaz pontosan egy „eleje" van),
determinisztikus és rendezett (minden egyes tevékenység elvégzése után egyértelműen meghatározható a következő - elvégzendő - tevékenység),
van legalább egy olyan tevékenysége, amelyet újabb tevékenység már nem követ (azaz van vége - figyelem: amíg a kezdetre kikötés az egyértelműség, végállapotból több is lehet!).
Azokat az információ-technológiai eszközöket, amelyek képesek az információ és a velük műveletet végrehajtó algoritmusok tárolására és automatikus végrehajtására, számítógépeknek nevezzük. A számítógép által értelmezhető algoritmusok neve program, a számítógépen tárolt és feldolgozott információ neve (egyértelműen!) adat - ez a két komponens együttesen alkotja a számítógép szoftver rétegét. Ezen kívül a számítógép részét képezi az adott eszközt ténylegesen alkotó (egyes megfogalmazások szerint: „kézzel fogható") „fizikai" elemek (elektronikai eszközök, vezetékek, csavarok, tokok, stb.) összessége, amelyet hardvernek nevezünk.
Összefoglalásként tehát azt mondhatjuk, hogy számítógép =
hardver: alaplap, memória, processzor, merevlemezes meghajtó, kábel, billentyűzet, stb,
szoftver:
adat: az adatokat kategorizálhatjuk
jellegük szerint: azaz milyen típusú információt tárolnak: numerikus (szám), szöveges, logikai, esetleg dátum értékű, stb,
belső szerkezetük szerint: az adatot alkotó információ összefüggése alapján (mező, rekord, állomány, stb.).
program: a programokat általában feladatuk szerint csoportosítjuk:
operációs rendszerek, rendszerprogramok,
rendszerközeli programok (segédprogramok),
felhasználói programok (alkalmazások),
fejlesztő eszközök (programozási nyelvek).
(egyes források szerint a számítógép mint IT rendszer részét képezi a számítógépet használó személy (mint emberi erőforrás) is, ebben az értelmezésben az elnevezése „manware").
Napjainkban a matematikában a tízes számrendszert alkalmazzuk a mindennapokban. A kettes számrendszer 0-kból, és 1-esekből álló jelsorozat. A helyi értékek a kettő hatványait fogják jelenteni 1=20; 2=21; 4=22; 8=23;... tehát itt egyesek, kettesek, négyesek, nyolcasok.. vannak a tízes számrendszerben megszokott egyesek, tízesek, százasok... helyett. Például a tízes számrendszerbeli 4 kettes számrendszerbeli ábrázolása: 100.
Az elektronikus rendszerekben a kétfázisú állapotok fizikai létrehozására az informatikában a kettes számrendszert használják. Ez lehet az elektromos áram által okozott mágnesezettség létrehozásáról és megszüntetéséről, vagy a kettős fényvisszaverő tulajdonság könnyű és gyors cseréjéről, és más fizikai megvalósítás.
Az információ mértékegysége a bit.
A bit két diszkrét érték (egyértelmű) megkülönböztetését lehetővé tevő jel-pár.
Megállapodás kérdése, hogy értékeit a kettes számrendszer jegyeivel (0, 1) jelöljük - lehetne akár a piros-kék színpár is (mint az általános iskolában használt számolókorongok). A dolog szépséghibája, hogy a fentiekből az következik, hogy 1 bit összesen két állapot megkülönböztetését teszi lehetővé. Ha ennél több állapotunk van, akkor több bitre lesz szükségünk. n bittel pontosan 2n különböző értéket tudunk jelölni.
Célszerűségi okokból a számítógépek felépítése és működése ezen bitcsoportok közül a 8 bitet tartalmazó csoportok köré szerveződött. A memória minden egyes tárolási egysége pontosan ennyi bit tárolására képes. 8 bit együttesét bájtnak nevezzük. (ilyen módon 1 bájton 28=256 különböző érték ábrázolható.)
A bájt az információ-tárolás egysége.
A számítástechnikában a mértékek váltószámai (hasonlóan a tízes számrendszerhez) nagyságrendileg ezresenként követik egymást, de fontos tudni, hogy nem pontosan 1000 a váltószám, hanem 210=1024! (Írásban - a bevett gyakorlat szerint - a bitet „b", a bájtot „B" jelöli.) Ennek megfelelően
1 kilobájt (KB) = 1024 bájt (nagyjából ezer, 103),
1 megabájt (MB) = 1024 kilobájt = 10242 (=220) bájt (nagyjából 1 millió, 106),
1 gigabájt (GB) = 1024 megabájt = 10243 (=230) bájt (nagyjából 1 milliárd, 109),
a további váltószámok növekvő sorrendben: tera (T, 1012), peta (P, 1015), exa (E, 1018).
A bit (illetve bájt) alapú adattárolásnak (pontosabban a kettes számrendszer kizárólagosságának) van egy másik hatása is: gondoljuk csak el, hogy hogyan magyarázzuk el a számítógépnek, hogy 29? Az ötlet egyszerű: váltsuk át kettes számrendszerbe, és kész. Rendben, működik. És hogy tároljuk le a 299-et? Az átváltással itt sincs gond, azonban a 299 kettes számrendszerbeli alakja hosszabb, mint 8 jegy (azaz 1 bájt, márpedig az előbb leszögeztük, hogy a memória bájtokat tárol)... És a gondok csak fokozódnak, ha az is felmerül bennünk, hogy hogyan tároljuk le azt a szót, hogy ALMA? Ezt még csak át se lehet váltani kettes számrendszerbe...
A számítógépek az adatot minden esetben kettes számrendszerbeli alakjukban (ún. bináris kódban) tárolják!
A számok esetében a bináris kód
fixpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjával (amennyiben a szám értéke olyan nagy, hogy egy bájton nem fér el a neki megfelelő kettes számrendszerbeli szám, akkor az egymást követő sorszámú rekeszekben tárolódik).
Példa: fixpontos ábrázolás esetén ha a memória egyik rekeszébe a 99-es értéket írjuk be, akkor a rekesz tartalma 01100011 lesz.
A fixpontos ábrázolás alapvetően két korlátozó tulajdonsággal rendelkezik: ábrázolási tartománya viszonylag kicsi és nem képes tárolni valós számokat.
lebegőpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjának normálalakjával.
Példa: lebegőpontos alakban a 99 érték tárolása helyett a 9,9*101 felírási mód egyes elemeit tároljuk, azaz a memóriarekesz(ek) tartalma a 99 és az 1 (amennyivel el kell tolnia tizedesvesszőt ahhoz, hogy az eredeti értéket megkapjuk) bináris kódja lesz. (Megjegyezzük, hogy természetesen a normálalak is kettes számrendszerben képződik és az eltolást is 2 hatvány alakban kell érteni, a fenti példa csak az alapelv szemléltetését célozza!)
BCD (binárisan kódolt decimális) ábrázolás esetén megegyezik a szám jegyeinek kettes számrendszerbeli alakjainak sorozatával.
Példa: BCD ábrázolás esetén a 99 minden egyes jegyét külön-külön tároljuk (azaz nem a szám értéke, hanem az „alakja" kerül letárolásra): a memóriában 0000 1001 0000 1001 lesz található.
Szöveges értékek esetén a bináris kód
valamilyen kódrendszer alapján az adott szöveges szimbólumot (karaktert, betűt) jelölő sorszám. Ismertebb kódolási rendszerek:
ASCII: eredetileg 7 bites kódolási rendszer, a karaktereket egy kódtáblázat alapján sorszámokkal látja el (pl. az „A" betűnek a 65 felel meg). A 7 bites kódolásnak köszönhetően (27=128) legfeljebb 128 szimbólum megkülönböztetését teszi lehetővé - ami az angol nyelv karakterkészletét tekintve elegendő, de ha figyelembe vesszük a nemzeti karaktereket is (pl. a magyar ékezetes betűket), akkor már nem. A kiterjesztett ASCII 8 bites kódolást használ olyan módon, hogy az első 128 sorszámhoz minden nyelvben ugyanazok (a 7 bites ASCII szabványnak megfelelő) szimbólumok tartoznak, míg a 129-255 közötti sorszámokhoz az egyes nyelvek (szabványokban rögzített) eltérő karakterei kaptak helyet - ezeket a kiegészítéseket nevezzük kódlapnak.
MIME: ezt a kódolást elsősorban az elektronikus levelezési rendszerek alkalmazzák, hogy a levélben szereplő tetszőleges karaktereket a 7 bites ASCII kódtábla szimbólumaival le lehessen írni.
UNICODE: manapság legjelentősebb és legelterjedtebb kódolási rendszer az ASCII filozófiáját követi, de 2 bájtos kódolási rendszerének köszönhetően (2 bájt = 16 bit → 216) hozzávetőlegesen 64 000 karakter különböztethető meg a segítségével.
Ebből az következik, hogy a számítógép számára egy memóriarekesz 8 bites tartalma bármi lehet: akár szám, akár egy karakter sorszáma, akár egy számsorozat egyik eleme - a számítógépnek nem tudja (és nem is tudja eldönteni!), ezért lényeges, hogy az adatokat feldolgozó programokat helyesen készítsük el!
Aritmetikai műveletek: számokon végezzük, eredményül szintén számot kapunk. (hatványozás, gyökvonás, szorzás, osztás, összeadás, kivonás).
A logikai műveleteket logikai változóknak nevezzük. Minden logikai változónak két lehetséges értéke van. Ha bekövetkezik az esemény akkor igaz, ha nem következik be akkor hamis az értéke. 4 lehetséges művelet van:
NOT=NEM (negálás): Az állításunk ellentettje lesz igaz. Tehát ha A állítás igaz volt akkor NOT A hamis, ha A hamis volt akkor NOT A igaz lesz. Halmazműveleteknél a komplementer képzésnek felel meg,
AND=ÉS (logikai szorzás) A AND B állítás csak akkor igaz, ha A és B állítások is igazak voltak. Metszetképzésnek felel meg a halmazműveletek esetén,
OR = VAGY (logikai összeadás): A OR B állítás igaz, ha A és B közül legalább az egyik igaz volt. Ha mind a kettő hamis volt akkor az eredmény is hamis. Halmazműveletek esetén a z unió műveletnek felel meg,
XOR=KIZÁRÓ VAGY (logikai kivonás): A XOR B akkor igaz ha A és B közül csak az egyik állítás teljesül. Ha mind a kettő teljesül akkor hamis, és akkor is ha egyikük sem teljesül.

Relációs műveletek: számokkal végezzük, eredményül logikai értéket kapunk. Lehetséges műveletek: egyenlő (=), nem egyenlő (<>); kisebb (<), nagyobb(>), kisebb vagy egyenlő(<=>), nagyobb vagy egyenlő(>=)
Műveletei precedenciák és szabályok
A precedenciák megadják, hogy mivel kell kezdeni a kiértékelését a műveleteknek Minél nagyobb egy művelet precedenciája annál hamarabb kell elvégezni a műveletet.
Aritmetikai műveletek precedenciája: (nagyobb precedenciához kisebb szám tartozik!)
hatványozás, gyökvonás,
szorzás, osztás,
összeadás, kivonás.
Logikai műveletek precedenciája (nagyobb precedenciához kisebb szám tartozik!)
NOT,
AND,
OR.
A XOR művelet átalakítható OR és AND műveletekké a következő szabályok szerint:
A XOR B =(A OR B) AND (NOT (A AND B))
Az informatikában a programok bizonyos adatokkal végeznek különböző műveleteket. Egy adattípus definiálása annyit jelent, hogy megadjuk hogy mi az értékkészlet (értelmezési tartomány) és milyen műveleteket végezhetünk velük, mely művelet mit jelent.
Az adattípusok segítségével definiálhatunk aztán változókat (program futása során változik az értéke) és konstansokat (program futása során az értéke változatlan, állandó.)
Az adattípusok jellemzői:
Integer (egész szám):
Méret: 2 bájton ábrázoljuk (azaz 2*8biten) amiből az első bit előjelbit. Ha az első bit 1 akkor a szám negatív ha az első bit 0 akkor a szám pozitív.
Intervallum: -32768 és 32767 közötti számok lehetnek.
Műveletek: összeadás (+), kivonás (-), szorzás (*), egész osztás =maradékos osztás (DIV), maradékképzés =egész osztás utáni maradék (MOD), negálás (-1 -el való szorzás), hatványozás (^).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
REAL, FLOAT, DOUBLE... (valós számok):
Ábrázolás (méret): általában 4*8 biten (4bájt) ábrázolják, de ez változó a kívánt pontosságtól függően. Az első bit az előjelbit, ezt követi a kettedes egészrész (mantissza) végül a kettedes kitevő (exponens). Így ±m*2e alakú számot kapunk. (ahol m-mantissza, e-exponens).
Intervallum: a mérettől függ és a választott számábrázolási módtól.
Műveletek: összeadás(+), kivonás(-), szorzás(*), osztás(/), hatványozás(^), negálás(~)
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
BOOLEAN (logikai típus):
Méret: elég lenne egyetlen bit. 0=hamis, 1=igaz. Gyakorlatilag mégis a legkisebb foglalási egység a bájt, ezért 1 logikai változó esetén is kénytelenek vagyunk minimum 1 bájtot lefoglalni. (De ha van 8 logikai változónk akkor is elég 1 bájt, a különböző helyi értékeit más-más logikai változó értékének tekinthetjük, helytakarékos megoldásként.).
Intervallum: igaz/hamis. Összesen két értéket vehet fel.
Műveletek: AND (és), OR (vagy), NOT(nem, negálás), XOR(kizáró vagy).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
CHAR (karakter típus):
Ábrázolás (méret):
ASCII kódtábla szerint 1 bájton 0-255 kódú jelek,
UNICODE-16 szerint 2 bájt,
UNICODE-32 szerint 4 bájt,
UNICODE-64 szerint 8 bájt.
Intervallum: ASCII 0-255 kódú jelek. Tartalmazzák az angol abc kis és nagybetűit, néhány ékezetes betűt (pl nem az Ő,Ű betűket). A tartalmazott betűket sem abc sorrendben, mert külön tartományt képez a kis és a nagybetűk. Ezen kívül tartalmazzák az írásjeleket, és néhány speciális karaktert.
Műveletek: nincs karakterspecifikus művelet.
Relációs műveletek: vannak, (kód alapján) de ez nem logikus csak egy résztartományon belül (pl. A<B<a).

Hálózati ismeretek óra Középszintű Érettségire 12. osztály

Az operációs rendszerek között külön kategóriát képviselnek a hálózati operációs rendszerek. A hálózatokkal a későbbiekben még részletesen foglalkozunk, jelen fejezet szemopntjából a helyi hálózatok (viszonylag kis kiterjedésű, jellemzően egy szervezet számítógépeit összekapcsoló hálózati rendszer) kezelésével kapcsolatos rendszerek érdekesek. Hálózatot alapvetően erőforrás-megosztási céllal, kommunikációs közegként vagy az adatok biztonságának növelése érdekében alakíthatunk ki - helyi hálózatok esetén mindhárom szerep egyformán fontos, éppen ezért nem véletlen, hogy a hálózati operációs rendszerek már olyan széleskörű hálózati szolgáltatásokkal rendelkeznek, hogy minden jellemző hálózati tevékenység megvalósítható segítségükkel.

Hálózati modellek

A hálózatba bekapcsolt számítógépeket hálózati csomópontnak nevezzük, és elsődlegesen a hálózatban betöltött szerepük szerint szokás megkülönböztetni őket (bár ezek csupán fogalmi különbségek, nem biztos, hogy működésbeli vagy teljesítménybeli eltéréseket is jelentenek). Ilyen értelemben beszélhetünk hálózati kiszolgálókról (szerver: olyan számítógépek, amelyek valamilyen erőforrást vagy szolgáltatást nyújt (megoszt) a csomópontoknak) és munkaállomásokról (ügyfél- vagy kliens-számítógép: a szerver által nyújtott szolgáltatásokat igénylő vagy használó számítógép).

A helyi hálózatok sajátossága, hogy ugyanazon számítógép akár többféle szerepben is képes működni a hálózatban. A hálózati csomópontoknak a hálózatban elfoglalt lehetséges szerepei alapján két jellemző helyi hálózati modellt különböztethetünk meg:

Az egyenrangú („peer-to-peer") modellben a hálózat valamennyi számítógépe képes szolgáltatásokat nyújtani (erőforrásokat felajánlani) a többi számítógép számára és ugyanakkor használni (igényelni) más csomópontok által kínált szolgáltatásokat. Erre a modellre tehát az jellemző, hogy nincs kitüntetett számítógép: mindenki lehet szerver és munkaállomás - akár azonos időben is!
A hierarchikus (ügyfél-kiszolgáló, „server-client") modellben ezzel szemben minden esetben van egy (vagy több) kitüntetett szerepű számítógép (a szerver), „aki" a hálózati szolgáltatásokat kizárólagosan birtokolja - a hálózat többi számítógépe (a munkaállomások) csak a szerver által felajánlott szolgáltatásokat használhatja. (Ez persze azt is jelenti, hogy amennyiben két munkaállomás kommunikálni (pl. adatot cserélni,) szeretne egymással, ezt is csak a szerveren keresztül tehetik meg!) Ebben a modellben további kategorizálásra ad lehetőséget, ha
Azt is megvizsgáljuk, hogy a szerver (a hálózat kiszolgálásán és felügyeletén túl) milyen feladatok elvégzésére képes: dedikált szerver esetében semmilyen egyéb tevékenységet nem folytat (azaz felhasználói értelembe vett „munkát" nem végezhetünk rajta), a nem dedikált szerver a hálózat vezérlésén túl teljes értékű munkaállomásként is működik („kettő az egyben").
Azt is megvizsgáljuk, hogy a munkaállomás mennyire alkalmas önálló (hálózati kapcsolat nélküli) munkavégzésre: azokat a munkaállomásokat, amelyek csak a szerver erőforrásai birtokában tudnak valamilyen feladatot ellátni (megkülönböztetendő a hálózatba kapcsolt önálló számítógépektől) terminálnak nevezzük (ebben a megközelítésben a kiszolgálót is szokás „host"-ként emlegetni).
A két modell között (természetesen) számos eltérés van, azonban mégsem állíthatjuk azt, hogy az egyik vagy a másik jobb lenne. A használhatóságukat minden esetben az igények és a rendelkezésre álló források határozzák meg: az egyenrangú hálózat kiépítése olcsóbb, kihasználhatósága hatékonyabb (nem kell egy plusz - általában (a munkaállomásokhoz képest) nagyobb hardverigénnyel rendelkező (és adott esetben effektív munkavégzésre nem is használható) számítógépet beszerezni), a hierarchikus hálózat felügyelete egyszerűbb (egyetlen számítógépen (a szerveren) kell csak a beállításokat elvégezni), nagyobb a rendszer biztonsága (centralizált mentés, központi vírus- és betörésvédelem), rugalmasabb munkavégzést tesz lehetővé (felhasználók nagyobb szabadsággal használhatják a hálózat bármely munkaállomását).

A megismert operációs rendszerek közül a Windows hagyományos változatai (95, 98, XP) egyenrangú hálózati rendszerbe szervezhetőek, míg a szerverváltozatok (2000, 2003) segítségével akár hierarchikus hálózat is kialakítható. A Linux alapú rendszerek alapértelmezés szerint mindkét modellt támogatják. Vannak továbbá olyan operációs rendszerek, amelyek kimondottan hálózati célok kiszolgálására készültek, a legismertebb ilyen a Novell cég Netware nevű rendszere. (Az, hogy az egyes rendszerek között mennyire nem egyértelműek a határvonalak, jól példázza, hogy a Novell a legújabb operációs rendszerét már a Linux egyik disztribúciójára (SuSE) alapozva készítette el...)

Hálózati szolgáltatások

A hálózati operációs rendszerek többletszolgáltatásai (a hagyományos operációs rendszerekhez képest) a több felhasználói igény kiszolgálása köré szerveződnek. A legfontosabbak ezek közül:

Erőforrások megosztása: hozzáférés biztosítása a számítógép valamely lokális (saját: fizikailag az adott számítógéphez csatlakozó) erőforrásához (és a helyi hálózatok esetében ez szinte bármilyen típusú erőforrás lehet: hardveres (memória, háttértár, nyomtató) vagy szoftveres (program vagy adat)) a hálózat más számítógépei számára. A megosztott erőforrások használata a felhasználó felé transzparens módon valósul meg - azaz a felhasználó nem érzékel különbséget aközött, hogy saját számítógépével vagy a hálózaton található erőforrással dolgozik. A helyi hálózatokban leggyakrabban megosztott hardveres erőforrások tehát a háttértárak (merevlemez, illetve az itt tárolható állományok és könyvtárak) és a nyomtatók.
Jogosultságok kezelése: a megosztások kezelésével egyidejűleg felmerül egy olyan probléma, amely egy-felhasználós környezetben nem jelentkezik: nevezetesen a hozzáférés kérdése. Egyrészt, a közös tárolásnak csak akkor van értelme, ha a kiszolgáló által biztosított háttértárat minden, a hálózatba bekapcsolt számítógépről elérhetjük - másrészt viszont jogos elvárás az is, hogy bizonyos anyagokat ugyanolyan bizalmasan (másoktól védetten) kezelhessünk, mintha a saját számítógépünkön tárolnánk. Egyszerre legyen tehát nyilvános és privát...
Jogosultságoknak nevezzük a hálózat azonosított felhasználói és az egyes erőforrásokkal végezhető tevékenységek körét.

Hozzáférés: a hálózati megosztások közös jellemzője, hogy azonosításukra olyan módszert kell alkalmazni, amelyet a hálózat valamennyi számítógépe képes értelmezni: legegyszerűbben a megosztott erőforrások egyedi névvel rendelkeznek. A névadás szabályai esetenként változhatnak, azonban pont az egységesség miatt létezik egy szabvány, az UNC, amivel szinte minden rendszerben azonos módon hivatkozhatunk megosztott erőforrásra. Az UNC szintaxisa a következő: \\szerver\erőforrás, ahol a „szerver" annak a számítógépnek a hálózati azonosítója, ahol közvetlenül (fizikailag) létezik a megosztott erőforrás („aki megosztja"), az „erőforrás" a megosztott objektum hálózati megnevezése (aminek nem kell megegyezni a szerveren használt (tényleges) elnevezéssel!).
Felhasználói információk kezelése: a hálózati operációs rendszerben alapvetés, hogy egy olyan rendszerről van szó, amelyet több felhasználó használ. Ez pedig számos kérdést vet fel:
meg kell tudni különböztetni az egyes felhasználókat egymástól,
de célszerű a hálózat jogosult felhasználóit megkülönböztetni azoktól, akik nem használhatják az adott hálózat szolgáltatásait,
biztosítani kell az időben azonos hozzáférés lehetőségét,
de egyszerre legfeljebb csak egy bizonyos számú felhasználó kérését kiszolgálva (sem a számítógép műveletvégző képessége, sem az adatátviteli csatorna szélessége nem végtelen...),
célszerű külön választani az egyes felhasználók által elérhető erőforrásokat,
de úgy, hogy közben lehetőséget kell adni a felhasználóknak arra, hogy igény szerint akár kicserélhessék adataikat egymással, stb.
A gyakorlatban a felhasználók megkülönböztetésére valamilyen szöveges azonosítót szokás használni, ez az adott felhasználó adott hálózatra érvényes felhasználói neve („user name"). A felhasználói fiókok biztonságának fokozása érdekében a hálózati rendszerek (szinte minden esetben) az azonosításhoz egy ellenőrző kódot is megkövetelnek (jelszó, „password"). Ez a jelszó (elvileg) csak a felhasználó által ismert, és ily módon garantálja, hogy az adott felhasználói név alatt ténylegesen csak bizonyos személy használhassa a hálózat erőforrásait. (Megjegyzés: az olyan rendszerekben, ahol az egyértelmű azonosítás fontos követelmény, a felhasználói név és jelszó (ismeret alapú azonosítás) helyett gyakran alkalmaznak ún. birtoklás alapú azonosítási rendszereket (ilyenek pl. a bankkártyák), illetve ma már léteznek tulajdonság alapú azonosítási rendszerek (biometriai azonosítók, pl. ujjlenyomat) is.)

Azt a folyamatot, amely során a felhasználó azonosító adatait megadja illetve azt a hálózati kiszolgáló ellenőrzi, azonosításnak („authentication"), a sikeres ellenőrzést követően a hálózati kapcsolat kiépítését és a megfelelő hálózati szolgáltatások helyreállítását pedig bejelentkezésnek („log in") nevezzük. Természetesen a hálózati munkavégzés befejezésekor a hálózati kapcsolatot illik (ne fogjunk feleslegesen erőforrásokat mások elől!) és célszerű (biztonsági okokból) lebontani, ez a kijelentkezés („log out") folyamat.

Novell Netware

A különböző hálózati operációs rendszerek esetében az első (és legfontosabb) kérdés, hogy a szerver milyen szolgáltatás(oka)t nyújt a hálózat felhasználói számára. Gyakorlatilag az IntraNet fogalmának megjelenésétől azonban ebben a tekintetben nincs lényeges különbség az egyes megvalósítások között: az alapvető helyi hálózati feladatokon (fájl- és nyomtatómegosztás) túl minden LAN operációs rendszer számos többletszolgáltatással rendelkezik, részint beépített szolgáltatások, részint (külön megvásárolható) bővítmények formájában.

A Netware egy kliens-szerver alapú, dedikált szerveres hálózati operációs rendszer. A szerveren (természetesen) Netware operációs rendszer fut (a Netware a szervert futtató számítógép elindítására (boot-olására) és a hálózati operációs rendszer magjának (server.exe) betöltésére valamilyen DOS - az újabb verziókban Linux - verziót használ). A munkaállomásokon bármilyen operációs rendszer futhat, a hálózati kérések kezelését a Netware hálózati programja, a Netware kliens (Novell Netware Client) végzi, szinte minden jelentős operációs rendszerhez készült kliensprogram.

Hálózati szolgáltatások Középszintű Érettségire 12. osztály

Az Interneten, mivel eltérő felépítésű hálózatokat kötnek össze, szükséges az Interneten folyó kommunikáció közös szabványainak kidolgozása, amelyet az RFC (Request for Comments) dokumentumok tartalmazzák. A szabványok közös alapjául a UNIX operációs rendszerben megvalósított megoldások szolgáltak, mivel elsőként ilyen operációs rendszerű gépeket kötöttek össze. Az Internet lényegesebb alkalmazási protokolljai a következők:

SMTP Simple Mail Transfer Protocol egy alkalmazási protokoll, amely a hálózati felhasználók egymással való kommunikációját teszi lehetővé, elektronikus levelezés formájában, az elektronikus levelek továbbításának „nyelvét" meghatározva.
TELNET Terminál emuláció segítségével a saját gépét terminálnak használva egy távoli hosztra felhasználóként lehet bejelentkezni.
FTP File Transfer Protocol A fájl átviteli eljárás segítségével a felhasználónak lehetővé teszi az általános könyvtár és fájlműveletek végrehajtását a saját gépe és egy távoli hoszt lemezegysége között. Pl.: fájlokat vihet át, törölhet, átnevezhet fájlokat.
GOPHER Hierarchikusan felépített információban kereső protokoll.

HTTP Hypertext Transfer Protocol.
A következőkben ezen protokollok és ezeket használó szolgáltatások közül mutatunk be néhányat.Az egyik legalapvetőbb alkalmazás-protokoll, amely a terminálgépekről távoli szerverekre történő bejelentkezést és távoli parancs végrehajtást tesz lehetővé. A telnet semmilyen titkosítást nem tartalmaz, ezért helyette biztonsági okokból manapság már szinte kizárólag csak az SSH-t használják. Egy távoli gépre úgy lehet belépni, mintha egy terminálja előtt ülnénk. Azaz a TELNET a gépek közti távoli bejelentkezést lehetővé tevő protokoll neve. Ez is folyamatos (on-line) hálózati kapcsolatot igényel, és sebességigénye hasonló az FTPhez, (persze csak ha azt szeretnénk, hogy egy leütött billentyű ne 10 másodperc múlva jelenjen meg...). TELNET-tel csak akkor tudunk egy másik gépre belépni, ha azon a gépen is van accountunk.

Bejelentkezés után a rendszer úgy viselkedik, mintha ott ülnénk a távoli gép előtt, azaz a távoli gép operációs rendszerének konvenciói érvényesek, parancsainkat a TELNET protokoll adja át a távoli gép operációs rendszerének, és a távoli operációs rendszer hajtja végre. Így a távoli gépen programokat futtathatunk, megnézhetjük az odaérkezett leveleinket, stb.

Ezen lehetőség a hálózati gépek biztonságának egy sebezhető pontja. Ha ugyanis egy távoli gépre rendszeradminisztrátori jogokkal tudunk belépni (felhasználói név: root, a jelszót automatikus próbálkozási módszerrel „kitaláljuk"), akkor a géppel mindent megtehetünk. Az ilyen behatolás módot nyújt arra is, hogy a távoli gépet felhasználva (a TELNET-et ott elindítva) lépjünk be egy „kényesebb" gépre. Ez utóbbi behatolás felderítésekor a behatoló címe az erre használt gép címe, és ha az oda történő behatolás nyomait eltüntetjük, akkor nem lehet kideríteni a kényesebb gépre behatolót.

A probléma megoldására egy hasonló elveken működő, de a saját és a távoli gép közötti kommunikációt titkosított csatornán megvalósító eljárást dolgoztak ki, amely az „ssh" nevet kapta.

FTP

Az FTP protokoll a hálózatban lévő gépeken megtalálható fájlok átvitelére használható. Használata az elektronikus levelezéssel szemben már folyamatos hálózati kapcsolatot igényel. Adatátviteli sebesség igénye is jelentősebb, hiszen elfogadható időn belül kell átvinnünk esetleg több száz kilobájtnyi adatot. Néhány kbit/s-os átviteli sebesség már elfogadható. A szolgáltatás szintén szerver-kliens modellen alapul, azaz egy szolgáltató szerver és a felhasználó gépe közötti fájlok átvitelét biztosítja.

Az FTP protokoll két átviteli módban működhet: ascii és binary. Az előbbi, mivel 7 bites kódokat használ, szövegállományok átvitelére alkalmas, az utóbbi bármilyen általános fájlra. Fontos továbbá, hogy egyes rendszerek (pl. Unix) különbséget tesznek kis és nagybetűk közt, erre fel kell figyelni, ha korábban nem ehhez szoktunk, ráadásul mivel Unix alatt a „kep1.png" és a „Kep1.png" két külön fájl, Windows alatt pedig ugyanaz, felülírhatjuk saját fájljainkat, ha nem figyelünk kellőképpen. Azaz a fájl nevében tetszőlegesen lehetnek kis és nagybetűk.

A felhasználó általában akkor tud egy távoli gépről/gépre másolni, ha a távoli gépen is rendelkezik felhasználói jogosultsággal (account-tal).

A kapcsolat egy FTP programmal lehetséges, ott kell megadni a célgép nevét, ami egy Internet cím. Ha a kapcsolat létrejött, a rendszer kéri az azonosítót és a jelszót. Ha a belépés sikeres, akkor a következő legalapvetőbb parancsokat használhatja:

dir paranccsal listázhatja a célgép könyvtárszerkezetét,
cd paranccsal válthat a könyvtárak között,
get paranccsal hozhat le fájlokat a távoli gépről,
mget-tel egyszerre többet,
put paranccsal tölthet fel fájlt a távoli gépre,
mput-tal egyszerre többet,
Az ascii és binary üzemmódok közt az asc illetve bin paranccsal lehet váltani.
Vannak mindenki számára elérhető ún. nyilvános elérésű gépek, amelyekre természetesen nem kell account-tal rendelkezni, ez az ún. anonymous ftp. Az ilyen gépekre bejelentkezve bejelentkező (login) névként az "anonymous" szót kell begépelni. A rendszer ekkor arra kér, hogy jelszóként a saját email-címünket adjuk meg, ez sokszor gyakorlatilag nem kötelező, kizárólag statisztikai célt szolgál. Ezek után a távoli gépet, pontosabban annak nyilvánosan elérhető könyvtárait láthatjuk, és az összes fenti FTP parancs használható.

TCP IP
A számítógépek egymás közötti kommunikációjához az Interneten a gépek pontos azonosítása szükséges. Ha egy hálózat számítógépei a kommunikációhoz a TCP/IP protokollt használják, minden számítógép minden adaptere (hálózati kártyája) egyedi azonosítóval rendelkezik, mely egyedi azonosítók alapján a számítógépet az IP protokoll megtalálja a hálózatban. A számítógéphez rendelt azonosítót IP-címnek (IP address) nevezzük, mert az IP protokoll alapvető feladata, hogy a TCP szállítási szintű csomagokat a fejrészben megadott című állomáshoz továbbítsa, akár nagy kiterjedésű hálózaton keresztül is.

A címzési rendszer kialakításánál azt a valóságos tényt vették figyelembe, hogy a címzés legyen hierarchikus: azaz vannak hálózatok, és ezen belül gépek (hosztok). Így célszerű a címet két részre bontani: egy hálózatot azonosító, és ezen belül egy, a gépet azonosító címre.

A hálózati csomópontok IP-címe 32 bites szám, amelyet a leggyakrabban az úgynevezett pontozott tízes formában (dotted decimal form) írunk le, azaz négy darab 0 és 255 közötti decimális számmal, például 193.255.67.4. Ebben a formában a 32 bites IP-címet 8 bitenként konvertáljuk tízes számrendszerbe, és az egyes 8 bites szakaszokra gyakran külön is hivatkozunk.

Az IP-cím két részből áll: az első a csomópontot tartalmazó helyi hálózatot azonosítja, a másik a hálózaton belül a csomópontot. Az, hogy az IP-címből hány bit a hálózat és hány a csomópont azonosítója, elsősorban attól függ, hogy az összekapcsolt hálózatok rendszerében mennyi hálózatra, illetve hálózatonként mennyi csomópontra van szükség. A hálózatazonosító az összekapcsolt hálózatok között, a csomópontazonosító a hálózaton belül egyedi. Ha a hálózat az Internethez csatlakozik, a hálózatazonosítónak az egész Interneten belül egyedinek kell lenni. Ezért az Internethez csatlakozó hálózatok azonosítóit (a számítógépek IP-címeinek első néhány - 8, 16, vagy 24 - bitjét) külső szolgáltató határozza meg.

Az IP-címben a hálózat és a csomópont azonosítója az alhálózati maszk (netmask) segítségével választható szét, ezért amikor egy hálózati csomópontot konfigurálunk, az IP-cím mellett az alhálózati maszkot is meg kell adni. Az IP protokoll számára az IP-cím és az alhálózati maszk csak együtt értelmes, mert az IPcím mindig két részből áll. Az alhálózati maszk hiányában a csomópont nem tudja meghatározni az őt tartalmazó hálózat címét, amely az útválasztáshoz elengedhetetlen.

Az alhálózati maszk is 32 bites szám, amelyben 1-esek jelzik a hálózat, 0-k a csomópont azonosítójának IP-címbeli helyét. Az alhálózati maszk 1-esekből álló sorozattal kezdődik, és 0-sorozattal ér véget.

Példa alhálózati maszk használatára:

IP-cím: 196.225.15.4

Alhálózati maszk: 225.225.255.0

Amikor egy program adatokat küld a TCP/IP-hálózaton keresztül, az elküldendő adatokhoz mellékeli a saját és a címzett IP-címét is. Ha a címzett címében a hálózat azonosítója más, mint a küldőt tartalmazó hálózat címe, a címzett csak útválasztón (útválasztókon) keresztül érhető el.

Az útválasztás az a művelet, amelynek során a rendszer egy helyi hálózat valamely számítógépétől az adatcsomagokat különböző vonalszakaszokon keresztül eljuttatja azokhoz a címzettekhez is, amelyek nem részei a helyi hálózatnak. A TCP/IP protokollt használó rendszerek számára az a helyi hálózat amelynek csomópontjai azonos hálózatcímet használnak. Ha egy csomag elküldésekor a címzett csomópont IP-címében a hálózatcím más, mint a küldőé, az IP protokoll megpróbálja a csomagot egy útválasztóhoz (router) továbbítani, amelynek az a feladata, hogy a kapott csomagot továbbítsa a címzett hálózat felé. Az útválasztó olyan berendezés, amelynek több hálózati csatolója van, és mindegyik más (helyi) hálózathoz csatlakozik. Az útválasztó csomagokat fogad az egyes, hozzá csatlakozó hálózatok számítógépeitől, és továbbítja őket egy másik hálózati csatolóján. Az, hogy melyik hálózati csatolót kell használni a csomag elküldéséhez, a memóriájában lévő útválasztási tábla (routing table) alapján dönti el. A tábla bejegyzései hálózatok felé vezető útvonalakat (route) képviselnek.

Fontos megjegyezni, hogy az Internet folyamatos bővülése miatt ezek a címek hamarosan elfogynak. A további fejlődés biztosítására kidolgozták az IPv6 nevű címzési rendszert, amely lényegesen több számítógép Internetre csatlakozását fogja lehetővé tenni.

DNS
A számítógépek IP-címeit nehéz megjegyezni és könnyű elgépelni. Természetes tehát a felhasználóknak az az igénye, hogy a számítógépeket az IP-címek helyett könnyen olvasható és megjegyezhető nevek megadásával érjük el. Azonban a TCP/IP protokollkészlet használata esetén a számítógépeket csak az IP-cím alapján lehet elérni, név alapján nem. Ezt a műveletet névfeloldásnak (name resolution) nevezik.

A névfeloldás alkalmazásával az Interneten lévő szolgáltató gép vagy valamelyik csomópont eléréséhez a számítógépeket csomópontnévvel (host name) is megadhatjuk. A csomópontnév tetszőleges, legfeljebb 256 karakterből álló szöveg lehet. Az Interneten az úgynevezett teljes tartománynévvel (Fully Qualified Domain Name - FQDN) hivatkozhatunk rá. A tartománynév pontokkal (.) tagolt csomópontnév (host name), amelynek egyes részei a számítógépet tartalmazó szervezetet, illetve a számítógép helyét határozzák meg. Minden csomópontnévhez egyetlen IP-cím tartozik, de egy csomóponthoz (azaz IP-címhez) több név is rendelhető.

Míg az egyes hosztokat a hosztcímük egyértelműen meghatározzák, addig a hosztokat több felhasználó használja, tehát a hozzájuk kapcsolódó felhasználókat is meg kell különböztetnünk egymástól. Erre azok felhasználói neve (login- vagy felhasználónév), vagyis az adott hoszton egyedi azonosító-név szolgál.

Egy személy Internet elérhető levelezési (E-mail) címe tehát két főrészből áll, és a következő alakú:

felhasználónév@hoszt.aldomén.domén

2018. március 4., vasárnap

A sötét oldal


A sötét oldal
Vigyázzunk ne hogy áttévedjünk a föld árnyékos oldalára, mert onnan már nincs vissza út.Több évtizede van az internetnek egy olyan része, ami az átlag felhasználó elől rejtve van. Angolul dark webnek hívják, a láthatatlan internet, azaz a deep web részét képezi. A sötét alvilág virtuális világa ez, ami a legbrutálisabb fantáziát is felülmúlja. A virtuális alvilág a fegyvernepperek, drogbárók, pedofilok, szervkereskedők mekkája. A zavarosban halászók  anonimitása névtelensége a Tor által biztosított, ahol manapság közel hétezer belső szerver működik, ezek száma pedig folyamatosan nő, ezzel is azt bizonyítva, hogy ez a legnépszerűbb anonimitást biztosító rendszer. A Tor-t végtelenül egyszerű telepíteni. Nem kell hozzá különösebb informatikai szaktudás, magyar nyelven is elérhető és pont úgy működik, mint egy normál böngésző, amit az emberek többsége mindennap használ. A hivatalos weboldalról két kattintás után letölthető. A Tor, a felhasználó anonimitását a 128 bites szimmetrikus kulcsolású kódolással biztosítja a rendszer, így mire az IP címünk eljut a kívánt weboldalra, addig akár több száz anonym proxy szerveren lép át, amitől az eredő már visszakövethetetlen. A tor világa a végtelen lehetőségek hazája, a felelősségvállalás terhe nélkül, persze ez csak a jéghegy csúcsa. A dark web oldalak többsége a megszokott .com, vagy .hu helyett .onion-nal végződik. A bazár a Hidden Wiki, ahol mindent megtalálunk. A dark webnek van egy sajátos fizetőeszköze, a Bitcoin. Ez egy digitális pénznem, ami a 2008-as amerikai bankválság kirobbanása után jött létre. Más elektronikus fizetőeszközökhöz képest azzal a nagy előnnyel rendelkezik, hogy nincs központi kibocsátója, a peer-to-peer felépítés pedig megakadályozza a hatóságok számára, hogy nyomon kövessék a tranzakciókat. Bitcoint a legegyszerűbben úgy lehet szerezni, ha a normál fizetőeszközünket beváltjuk. A dark webes oldalak nem kérnek el személyes adatokat a regisztráció során. Csupán egy felhasználónévre és jelszóra van szükségünk. A legtöbb illegális üzletnél is az egyetlen dolog, amire szükségünk lehet, az az e-mail címünk. A vásárolt termékeket bármilyen címre kiszállítják, de aki igazán figyel az anonimitására azt a módszert választja, hogy a futár egy elhagyatott helyen hagyja a csomagot, majd a megfelelő koordinátákat elküldi a vásárlónak. A dark weben tolvajt is bérelhetünk, aki bármit eltulajdonít számunkra kevés pénzért. Vagy ha nagyon tönkre akarjuk tenni egy másik ember életét, akkor egy ismeretlen hacker Bitcoinért cserébe teli pakolja az illető merevlemezét gyermekpornóval, extra szolgáltatásként pedig a TEK-et is értesíti. Egy átlagos weblap, vagy felhasználói fiókok feltörése szinte rutin munkának számít ezeknek az embereknek. Jó pénzért pedig használati utasítást is osztogatnak a hacker léthez. A mélység a Red Romokban van, ahol a nézők azért fizetnek, hogy a filmben szereplők fizikálisan bántalmazzák egymást. Ezek a műsorok gyakran végződnek halálesetekkel, hiszen vannak olyan emberek, akik több ezer dollárt is a szörnyűségekért. A felső szint az úgynevezett Deep Web, azaz Mély Internet. Ami már tényleg a mélyben húzódik meg, az a Dark Web, azaz a Sötét Internet. Ez alapvetően egy olyan hálózatot jelent, amelyet a megfelelő módszerekkel teljesen anonim módon használhatunk. Az oldalak a .onion kiterjesztést használják. Igen, az onion hagymát jelent, és igazából ez a technológia a titkosítás alapjául szolgáló, sokrétegű megoldás miatt kapta a nevét. Érdemes tudni, hogy az .onion oldalakat, valamint a Tor által használt titkosítási algoritmust eddig még nem sikerült feltörnie senkinek, pedig dolgozik rajta mindenki mindenfelé. Különböző országok hatóságai értelemszerűen a bűnözés visszaszorítása miatt látnának bele szívesen a sötét netbe, míg vannak olyan országok, ahol a szólásszabadság elfojtása miatt menekülnek szószólók, illegális pártok, véleményvezérek a sötét web védelmébe. Oroszországban például teljesen legális, állami szinten kínálnak mesés vagyonokat annak, aki képes feltörni a Tor mögötti titkosítást és hozzáférést ad a kormánynak a másként gondolkodók személyéhezVan itt pénzmosás, illegáliskereskedelem, kábítószer, fegyver, szerv, hack, warez, erotica, pedofilia, szadizmus, perverzio, bérgyilkos stb. Aztán nem volt mese, jöhetett a vese. Azaz rákerestünk, hogy szervkereskedő oldalakon tényleg lehet-e vásárolni élő, működő szerveket, és itt is volt találat egy rakással. Először egy szerveket kereső fórumra bukkantunk, aztán pedig egy olyanra, ahol a saját szerveiket felajánlók jelentkeztek be az általuk felajánlott "belsőségekkel", és a kapcsolódó információkkal (vércsoport, ismert betegségek, állapot). Egy 34 éves férfi veséje most épp 20 ezer dollár környékéért van a piacon, ehhez a vevőnek még a donor utaztatását, szállását és a műtét költségeit is fizetnie kell. A "felnőtteknek szóló" linkek között egy csomó olyan fórumot találtunk, ahol képeket és videókat cserélgethetnek a (természetesen ismeretlenség mögé bújó) tagok. Itt aztán volt minden, ami a normál weben tiltott: megalázós szex, állatos témakörök, és még olyan borzalmak is, mint a nekrofília, az erőszak és a gyerekpornó.  Mint minden technológia, a Tor és a mögötte álló onion is akkor rossz, ha rossz dologra használják. A keresőkben találtunk egy csomó olyan hivatkozást, ahol diktatúrák által irányított országokban élőknek van lehetősége szabadon beszélni, visszaéléseket bejelenteni, segítséget kérni. Megfigyelt újságírók, elnémított bloggerek, aggódó polgárok beszélgetnek itt egymással és a külvilággal, ami valóban fontos és hasznos dolog. Másrészt pedig, bármennyire is sok a gyerekpornó és egyéb büntetendő tartalom, viszonylag ugyanilyen arányban találtunk olyan onion oldalakat is, amelyek az efféle tartalmak szűrésére, a pedofilok leleplezésére szakosodtak. Szóval van még remény itt is, és a Tor letöltése egyáltalán nem azt jelenti, hogy a Sötét Webet valóban rossz dolgokra kell használnunk. De vigyázat, ha belenézünk a sötétségbe, ne hogy megvakuljunk...
Eladó az egész világ! Hihetetlen, hogy egy USA driving licence 200 USD USA passport 1000 USD Bankszámla 1000 USD 1 db lőszer 50 forint 1bomba 20.000 forint és még sorolhatnám a megdöbbentő árakat. Én mindenkit óva intek attól, hogy elcsábuljon és a bűn útjára lépjen!