650 likes | 836 Views
IT Arkitektur og Sikkerhed. Lektion 2 Version 1.01. Dagsorden. Sidste uge Introduktion til netværk Denne uge Introduktion til computere Introduktion til OS Virtuelle maskiner RAID SAN NAS Cluster Load Balancing Directories LDAP & Microsoft AD Server roller i IT infrastrukturen
E N D
IT Arkitektur og Sikkerhed Lektion 2 Version 1.01
Dagsorden • Sidste uge • Introduktion til netværk • Denne uge • Introduktion til computere • Introduktion til OS • Virtuelle maskiner • RAID • SAN • NAS • Cluster • Load Balancing • Directories • LDAP & Microsoft AD • Server roller i IT infrastrukturen • Server based computing 2
Introduktion til Computere CPU Memory Video Controller Keyboard Controller Floppy disk Controller Hard Disk controller 3
Processor (CPU) • CPU’en får instruktioner fra hukommelsen og eksekverer dem • Alle CPU’er opererer på følgende måde • Fetch henter instruktioner fra hukommelsen • Decodefordeler instruktionen til relevante dele af CPU’en • ExecuteCPU’en udfører instruktionen • WritebackSkriver eventuelt resultatet af de udførte instruktioner tilbage til hukommelse • Der findes flere typer af CPU arkitekturer • RISC (Reduced Instruction Set Computer) • CISC (Complex Instruction Set Computer) 4
Processor (CPU) • De fleste CPU opererer i mindst to forskellige modes (privilege modes): • User mode – CPU har kun adgang til et subset af instruktionerne og mindre hardware • Kernel mode (supervisor mode) – CPU afvikle alle instruktioner i et instruktionssæt. Og har adgang til den faktiske hardware • Hypervisor mode er et nyt koncept der blandt andet er introduceret af Intel og AMD i de nyere CPU arkitekturer – Hypervisor er vigtig at bide mærke i.f.t. virtualisering 5
Hukommelse (Memory) • Hukommelsen bruges til at gemme instruktioner og data, mens et program eksekverer. • Man designer typisk hukommelse ud fra tre kriterier: • Hastighed • Pris • Kapacitet • Intet hukommelse er optimalt på alle områderMan taler derfor om et hukommelse hierarki inde i en computer 6
I/O enheder • Som nævnt tidligere styrer OS også I/O enheder • VIGTIGTet typisk brugerprogram kan IKKE tilgå I/O enheder direkte • En I/O enhed består typisk af to dele: • En device controllersom er en chip (eller flere). Typisk en lille microcontroller der er uafhængig af CPU’en og som kun er programmeret til at styre enheden. • Enheden selv • Eksempler: • Et grafikkort eller en monitor • En harddisk controller og selve harddisken • En printer controller med tilhørende printer • ….. • En device controller kaldes ofte også for et kort eller en adapter (SCSI) 8
I/O enheder • OS tager fat i device controlleren. Device controlleren tager derefter direkte fat i hardwaren. • Den del af OS der taler med device controlleren hedder en device driver. • En device controller vil typisk have forskellige device drivers for hvert operativsystem: Linux OS Enhed Manufacturer A controller Linux driver Win XP OS Windows XP driver Manufacturer B controller Solaris OS Solaris driver Manufacturer C controller …… ……………… Hardware Software 9
I/O enheder og drivere • En device driver arbejder tæt sammen med kernefunktioner i operativsystemet og skal derfor typisk køre i kernel mode eller i et trusted ring mode. • Der er typisk tre måder at loade en driver i et operativsystem: • Relink OS kærnen med driveren og reboote systemet • De fleste Unix typer virker sådan. • Ved at lave et entry i konfigurationsfilen for operativsystemet og fortælle den at den skal loade driveren ved boot. • Typisk for Windows • Load og accepter driveren mens operativsystemet kører. Giver mulighed for hot-plugging (Plug and Pray?). Kaldes for ”dynamic loading”. Man behøver ikke her at reboote. De fleste OS’er arbejder i den retning. • USB behøver typisk dynamic loading. 10
Hvad er et Operativ System (OS)? • Et program der bliver startet af BOOT processen. • Et program der tilgås via. • Et applikationsprogram interface (API) • En brugergrænseflade (GUI) • Styrer brugen af CPU’en, herunder multi-tasking af applikationer • Styrer brugen af den interne hukommelse i systemet • Styrer input til og output fra tilknyttet hardware; såsom diske, printere, m.m. • Sender beskeder til applikationer og brugere om status på operationer der udføres, og eventuelle fejl der sker. 11
Hvor bliver OS brugt? • Flere og flere steder… • På desktop og servere • MAC OSX Server • Windows NT, 2000, XP, 2003 og VISTA • BSD • Linux varianter; Kommercielle såvel som Open Source • Novell/SuSE (OpenSuSE) • RedHat (Fedora) • Debian • Ubuntu • Gentoo • Kommercielle UNIX varianter: Solaris (BSD), AIX (AT&T), HPUX (AT&T) • Andre; OpenVMS, OS/400, m.fl. • På netværksudstyr • Routere 12
Hvor bliver OS brugt? • PDA’er • PalmOS • Windows Mobile • Embedded Linux • Mobiltelefoner • Symbian OS • Windows Mobile • Spillekonsoller • Xbox, Xbox360 • PSP, PS2, PS3 • Andet • Biler • Lyd & Billede 13
UNIX • Ken Thompson starter med at arbejde på UNIX i 1969 • Bill Joy starter med at arbejde på BSD i 1976 • Avie Tevanian starter med at arbejde på MACH i 1985 • Steve Jobs starter med at arbejde på NextStep i 1985 • Richard Stallman starter med at arbejde på GNU i 1984 • Linus Thorvaldsen starter med at arbejde på Linux i 1991 14
BOOT processen • Eksempel, PC • Når maskinen startes, initieres basic input-ouput system (BIOS) der er gemt på systemets read-only memory (ROM). • BIOS udfører først en POST check for at sikre at systemets komponenter er tilstede og virker. • BIOS er konfigureret til at vide hvor den skal finde OS. Normalt kigger den på disk, og herefter på CD-ROM. Rækkefølgen kan ændres. • Når BIOS har bestemt hvor OS er, indlæser den første sektor (512-byte) på disken med Master Boot Record (MBR) • MBR starter OS setup, og henter kærnen af OS ind i systemets hukommelse. 15
Kærnen • Kærnen ”kernel” er den inderste og grundlæggende del af OS, som bliver startet af BOOT processen og lagt ind i hoved hukommelsen. • Kærnen er ALTID i hoved hukommelsen. • Det varierer fra OS til OS hvad kærnen indeholder. 17
Typer af kærner • Monolitiske kærner • Hele kærnen kører i hukommelsen og udstiller alle systemkald til services såsom netværk, process styring, hukommelsesstyring m.m. • Det betyder i teorien at alt funktionalitet i kærnen bliver initieret ved systemstart. Moderne monolitiske kærner understøtter dog loadable modules dynamisk kan hentes ind i kærnen. • Eksempler: DOS, Linux, BSD, Solaris m.fl. 18
Typer af kærner • Mikrokærner • En minimal kærne kører i hukommelsen og udstiller kun de mest basale systemkald til services såsom process styring, hukommelsesstyring m.m. • Andre services der ellers ville være forventet i kærnen leveres af programmer uden for kærnen kaldt servers. • Mikrokærner er blevet interessante i de senere år pg.a. sikkerhed. • Eksempler: AmigaOS, SymbianOS m.fl. 19
Typer af kærner • Hybride kærner • Kombinerer elementer fra monolitiske- og mikrokærner. Ideen er at have en kærne lig en mikrokærne, men implementeret som en monolitisk kærne. Alle servers kører i kærnen. • Eksempler: MAC OSX, Windows NT, 2000, 2003, XP & VISTA 20
OS bloat Der har gennem tiden været en tendens, startende fra BSD med at inkludere flere og flere services til OS.. OS Bloats. Der kører heftige debatter om hvilke kærne typer der er bedst. Den voldsomeste og længstlevende debat er mellem Andrew S. Tanenbaum og Linus TorvaldsGoogle: The Tanenbaum-Torvalds Debate 21
Modes og Processer • Modes • Normalt kører processer i user mode • Processer • En proces er en instans af et kørende program. • En proces består af fem dele • En kopi af koden i programmet • Hukommelse (real memoryeller virtual memory) der indeholder koden, og proces specifik data • OS ressourcer (descriptors) der er allokeret til processen • Sikkerheds attributter, såsom proces ejer og proces rettigheder • Processens kontekst 22
Multitasking For at flere processer kan køre samtidigt og deles om de samme ressourcer, såsom CPU, er der behov at multitaske. CPU’en kan kun give opmærksomhed til én proces ad gangen, d.v.s. at CPU’en aktivt udfører instruktioner for denne proces. Med multitaskingskemalægges hvilken proces der får opmærksomhed hvornår, og hvornår den næste proces for opmærksomhed Det kaldes context switchnår CPU’en skifter opmærksomhed fra en proces til en anden. Hvis context switchingsker hurtigt nok, virker det som om processerne kører i parallel Selv med computere med flere CPU’er (multiprocessor maskiner) hjælper multi-tasking med at køre flere processer end der er CPU’er 23
Multithreading Multitasking lader programmørerne udvikle programmer der kører i flere samtidige processer (eksempelvis en til at samle data, en til at behandle data, en til at skrive resultatet til disk). Det kræver at flere programinstanser kan tilgå en process samtidigt. En Thread er en mappe for information som er tilknyttet én programinstans i en proces, d.v.s. at der kan findes flere threads under en process, dette kaldes Multithreading 24
Hukommelsesstyring Når flere programmer kører på engang, så risikerer man at et dårligt skrevet (eller bevidst ødelæggende) kørende program overskriver et andet kørende programs hukommelsesallokering. OS sørger derfor at allokere hukommelse til et kørende program, og sikre at programmet ikke får lov til at tilgå hukommelse udenfor allokeringen. En måde for et OS at øge den tilgængelige memory er ved at benytte en swap fileller swap partition (virtual memory). 25
Filsystemer • Den sidste store ting, et OS hjælper med, er et filsystem. • Filsystemer • Hierarkisk • WIN: FAT, FAT32, NTFS • MAC: HFS, HFS+, NTFS (ro), FAT32 (ro), ZFS (10.5) • Linux/Unix: ext2, ext3, ReiserFS, Reiser4, UDF, UFS, UFS2, XFS, ZFS, FAT32, NTFS (ro) • Distribueret • AFS • NFS • SMB • Distribueret (fault-tolerant – delt over flere noder) • CODA • DFS • Record-orienteret • Mainframe: VSAM, ISAM m.fl. (en samling records) 26
Hvilket OS skal jeg vælge? • Afhænger af opgave og kompetence • Hvert OS har forskellige interfaces • Programmer skrives specifikt til OS • En applikation til et OS kører ikke på et andet • Trends • Cross-over som f.eks WINE, VMWare, Parallels, CodeWeavers 27
Virtuel maskine • Envirtuel maskine er • En kopi af hardware • Inkluderer kernel og user mode hardware emulering • Har I/O, Interrupts og alt hvad en rigtig maskine har • Typisk kan en virtuel maskine køre ethvert OS oven på sig. 28
Data beskyttelse - RAID • RAID søger at beskytte mod datatab pga. diskfejl • Afhængigt af RAID level vil RAID kunne recover data fra en fejlet disk • Nogle gange indeholder RAID hotswap andre gange er det software baseret 30
Storage Area Network (SAN) • Hvad er en SAN løsning? • Typisk et high speed network, med både LAN og Channel karakteristika, som etablerer en forbindelse mellem filsystemer (servere) og storage elementer • Tænk på det som en kæmpe lagringsbus, som er sat sammen af tilsvarende teknologier, som man bruger på LAN og WAN, altså: repeaters, hubs, bridges, switches, converters og extenders • SAN interfaces er typisk Fibre Channel… og ikke Ethernet eller ATM • Hvorfor SAN? • Reduktion af TCO • Bedre styring af ressourcer • Skalerbar storage • Nemt at bruge, ligner bare endnu en fysisk disk 31
NAS • Alle snakker om NAS. • NAS bruger typisk eksisterende IP netværk og ligner typisk bare en appliance • Giver typisk CIFS support • iSCSI er er meget brugt buzzword 32
Storage design Følgende er vigtige features: • Real-time konfiguration • Fokus på space management i modsætning til drive management • At man kan tilføje nye drev UDEN at tage storage sytem offline • Virtuelle drev trækkes fra alle spindler snarere end udvalgte Performance • OS uafhængighed • At topoligien kan udvides konstant, hvis man har behov for det (nye servere) • At virtuelle drev kan rekonfigureres (udvides, slettes osv.) online • Ændre databeskyttelsesskema online • At man kan mixe drevstørrelser og hastighed 33
Logiske volumer • Logisk lag over fysiske diske • Fordele • Sammensæt flere fysiske diske til logiske diske • Ændre på størrelse af logiske diske ”On the fly” 34
Cluster • Hvad er cluster og hvordan virker det? • Forskellige modes • Active/Passive • Passive/Passive • Flere servere • Workload fordeling(HP Workload Manager) • Eksempler • HP Serviceguard • Microsoft Datacenter m.fl • Oracle Real Application Clusters • Beowoulf • Fremtid • Grids 35
Load Balancing • Hvad er load balancing? • Forskellige teknologier • Hardware såvel som Software • Forskellige features • Asymmetrisk load • Prioriteret trafik / Content Aware Switching • SSL offload • Distributed Denial of Service beskyttelse • Eksempler • Microsoft Network Load Balancing • Barracuda Load Balancer • Cisco CSS 11500 Series • DNS Round Robin 36
DMZ • Typisk implementeres demilitariserede zoner – semibeskyttede netværk – mellem virksomhedens intranet og internettet • Web servere • E-mail servere • Proxy servere • Reverse-proxy servere 37
Directory Services • Grundlæggende er en directory service en netværksbaseret applikation der indeholder information om netværksbrugere, netværksressourcer og. lign. • En telefonbog er et meget godt eksempel. • Hvad er typisk forskellen på en directory og en database? • Er optimeret for mange læsninger og for avancerede søgninger • Er duplikeret og replikeret • Er en hierarkisk træ struktur • Der er grundlæggende tre typer directory services: • NOS directories (AD, Novell eDirectory) • Applikations directories (ePost, SAP, og. lign.) • Generelle directories (Almindelig opslag, de hvide sider) 38
LDAP • LDAP står for Lightweigth Directory Access Protocol og er en protokol til at snakke med directory services • LDAP er baseret på X.500. X.500 er Directory Model i OSI. DAP (Directory Access protocol) kører over OSI netværksprotokollen og er meget kompleks og tung. 39
LDAP • Der findes et hav af LDAP Directory implementeringer: • Microsoft Active Directory and ADAM • Computer Associates eTrust Directory 8 • IBM Tivoli Directory Server 5.x • Nexor Directory 5.1 • Novell eDirectory 8.7.x • Oracle Internet Directory v 10g • Sun Microsystems Sun ONE Directory Server 5.2 40
LDAP forespørgsel Sådan kunne en typisk LDAP forespørgsel se ud: # ldapsearch ”sn=Strand” cn telephoneNumber Svar: cn=Michael Strand, ou=managers, O=netcompany, c=dk telephoneNumber=45454545 41
Objekt træ • Data er repræsenteret i directory services som hierarki af objekter • Toppen af hierarkiet kaldes normalt for ”root” • Hvert objekt (kaldes også ”entry”) har en parent entry, og en eller flere child entries • Hver entry består af en ObjectClass • Hver ObjectClass består af nul eller flere attributer 42
Data Information Tree DIT • Alle objekter har et unikt navn, kaldet en DN (Distinguished Name) som er opbygget af relative navne kaldet RDNs (Relative Distinguished Names) som findes ved at ”vandre træet” 44
LDAP operationer • LDAP understøtter en række forskellige operationer • Binding og Unbinding • Search efter objekter der opfylder søge kriterier • Add objekt • Delete objekt • Modify objekt • Modify DN eller RDN • (Move) • Compare objekter 45
Active Directory • Microsoft Active Directory (AD) er et såkaldt NOS struktureret som et LDAP directory. • AD indeholder information om objekter og deres attributter; såsom brugere, ressourcer (objekter) og services. • AD bruges til at give netværksadgang, og tilladelser til ressourcer og -services, samt som generelt opslagsværk. • Har været tilgængeligt siden Windows 2000 server • Supporterer LDAP v2 og v3 standarderne 46
Typiske serverroller i en virksomhed • I stort set alle danske virksomheder vil I møde følgende serverroller: • DHCP • DHCP serveren uddeler IP adresser + andre ting efter behov • En pr. subnet • Alle miljøer 47
Typiske serverroller i en virksomhed • Fil og Print • Central fildeling • Central Printeropsætning • Alle miljøer • Intern og Ekstern DNS • Hvorfor begge dele? • Stort set alle miljøer • Mail server • Er en mail server en maskine? • Alle miljøer 48
Typiske serverroller i en virksomhed • Database server • Central server • Måske cluster • Oftest ”Don’t touch” • Oracle, MySQL eller SQLServer typisk • Stort set alle miljøer • ERP system • Lige så central • Helt sikkert også ”Don’t touch” • Concorde, Navision, PeopleSoft, Oracle, SAP • Stort set alle miljøer 49
Typiske serverroller i en virksomhed • RIS server (Remote Installation Server) • Bruges til unattended OS installation af klienter/servere typisk via PXE Boot • Kan være Altiris, IBM eller MS • Oftest i miljøer med +50 PC’er • Overvågningsserver • Overvågning af maskiner og services i miljøet • Typisk IBM Tivoli, HP OpenView, CA Unicenter eller MS MOM • Oftest i miljøer med +50 PC’er 50