31
Training Day 2009 Technologické výhody Solarisu Martin Červený [email protected]

Czech Sun Training Day 2009 - Solaris

Embed Size (px)

DESCRIPTION

Presentation from training day for Sun Solaris customers to explain some important features of Solaris 10. Presentation covers following themes: - Solaris and virtualization (XEN, VirtualBox, LDom, zones) - Solaris and production (ZFS, DTrace) - Solaris and security (privileges, trusted extension)

Citation preview

Page 1: Czech Sun Training Day 2009 - Solaris

Training Day 2009

Technologické výhody Solarisu

Martin Červený[email protected]

Page 2: Czech Sun Training Day 2009 - Solaris

Obsah

Solaris pro virtualizaci virtualizace na míru pomocí logických domén, xVM

hypervizoru/xen, xVM VirtualBoxu a kontejnerů (zóny a řízení zdrojů)

Solaris pro provoz nelimitovaná data na souborovém systému ZFS a dokonalý

přehled o systému s DTrace

Solaris pro bezpečnost zabezpečený provoz systému s použitím privilegií procesů

a bezpečnostních rozšíření

Page 3: Czech Sun Training Day 2009 - Solaris

pro virtualizaci

Page 4: Czech Sun Training Day 2009 - Solaris

Virtualizace systémů

• důvody a požadavky virtualizace> rozdělení nebo vyhrazení zdrojů, přebytek výkonu > bezpečné oddělení a ochrana> redundance a vysoká dostupnost> spravovatelnost

• druhy virtualizace> hw rozdělení výkonných počítačů (DSD,partitions)> paravirtualizace (PVM, kooperativní) (xVM

hypervisor/xen, LDom)> plná virtualizace (HVM, emulace systému (zařízení),

výjimečně i procesoru) (xVM hypervisor/xen, xVM VirtualBox)

> rozdělení na úrovni operačního systému (zóny)

Page 5: Czech Sun Training Day 2009 - Solaris

APPAPP

G OS

APPIPC

HW

OS

APP APPIPC

RPC

OS

HW přímý přístup

APP

APPsyscall

přímý přístup

hypercallhypervisor (VMM)

APP

H OS

APPAPP

G OS

výjimkatrap

APPAPP

G OS

APPEMUL

H OS

APPAPP

G OS

hypervisor&trap

DSD

xen

/LD

om

VB/

xen

APPAPPAPP

syscall

přímý přístup

APP

OS

APPAPP

syscallemulátor

konte

jner

/zóna

HW

HW HW

Page 6: Czech Sun Training Day 2009 - Solaris

Plná virtualizace - xVM VirtualBox

• plná virtualizace architektury x86/x64> „desktopová“ virtualizace> dynamické nalezení kolizních instrukcí> procesory s rozšířením Intel VT-x, AMD-V> hostitel - Solaris, Linux, Windows, OS X

• speciality> uživatelsky příjemné GUI, ale i příkazová řádka> modul v jádře (nezavádí se hypervizor před startem OS)> 3D akcelerace hostů (některé typy)> uživatelsky orientované rozšíření „guest

additions“ (grafika, integrace myši, clipboard, USB, sdílený adresář, audio ...)

> vzdálený přístup ke grafice RDP

Page 7: Czech Sun Training Day 2009 - Solaris

Paravirtualizace a plná virtualizace - xVM hypervisor / xen• paravirtualizace architektury x86/x64> hostitel (Dom0) - Solaris, Linux, NetBSD> hostovaný (DomU) - Solaris, Linux, *BSD, Netware, Minix,

Plan9, Hurd• plná virtualizace pro hostované systémy> jen procesory s rozšířením Intel VT-x, AMD-V> emulace zařízení QEMU

• speciality> migrace za běhu> virtualizace na úrovni PCI> virtualizace CPU a paměti> hybridní práce IO se síťovými zařízeními> řízení spotřeby> vzdálený přístup ke grafice VNC

Page 8: Czech Sun Training Day 2009 - Solaris

Paravirtualizace - Logical Domains

• paravirtualizace architektury sun4v> hypervizor součástí OBP> paravirtualizované OS

– Solaris 10 ≥U4, Linux ≥2.6.23> speciality

– CPU přiřazení dynamické– hybridní IO práce se síťovými zařízeními

• role ve virtualizovaném systému> control domain - rozděluje zdroje systému> service domain - virtualizuje sítě, disky a konzole do

„Logical Domain Channels“> io domain - zpřístupňuje IO zařízení (PCI sběrnice)> guest domain - využívá přidělené CPU/MEM a

virtualizované zdroje

Page 9: Czech Sun Training Day 2009 - Solaris

hardware

app

app

app

app

jádro jádro jádro jádro

app app

hypervizor

free cpu/mem io bus io bus io bus

vsw

vdsk

vsw

vdsk

control+service+io guest guest+io guest+service+io

cmd

vsan ldc vlan ldc

Page 10: Czech Sun Training Day 2009 - Solaris

Kontejner Solarisu

• rozdělení na úrovni operačního systému (zóny)> nezávislý běh instance operačního systému od procesu

init (sdílené jádro Solarisu) > izolace softwarových chyb aplikací> bezpečnostní oddělení (méně privilegií)> možnost připojení citlivých části souborového systému

jen pro čtení> žádné změny v API aplikací> branding - emulace chování jiného jádra operačního

systému (linux na x86, solaris 8/9 na sparc)

Page 11: Czech Sun Training Day 2009 - Solaris

hardware systému

jádro Solarisu

app

app

konfigurace

globálnízóna

app

app

Solariszóna

RPC

IPCapp

app

brandzzónalx

sol8, sol9

syscall emulátorsyscall

Page 12: Czech Sun Training Day 2009 - Solaris

Kontejner Solarisu

• řízení zdrojů > podle procesorů (dynamic resource pools, processor

sets)> přiřazení poměrného výkonu procesorů

(resource/workload manager, FSS plánovač procesů(cpu-shares), projects)

> limit přiřazení fyzické paměti> podle toků na IP úrovni (IP QoS)

Page 13: Czech Sun Training Day 2009 - Solaris

system 8 cpupool1 2-4 cpu pool2 2 cpu

zone3 1 share

zone2 10 shares

zone4 2 shares

zone5 1 share

zone1 20 shares

project13 shares

project22 share

project31 share

task2

proc4

proc3task1

proc2

proc1

4 ∗20

1020∗

2123

=89

Page 14: Czech Sun Training Day 2009 - Solaris

pro provoz

Page 15: Czech Sun Training Day 2009 - Solaris

Robustnost při provozu

• diskový subsystém> UFS/SVM, SAMfs/QFS, ZFS> MPxIO, FC, iscsi, IB> projekt COMSTAR

• řízení zdrojů> DRP, FSS, projekty

• dohledovatelnost> na úrovni systému a aplikací - statistiky, dtrace> na úrovni hardware - FMA> posmrtná analýza systému a aplikací

Page 16: Czech Sun Training Day 2009 - Solaris

Zettabyte File System

• vysoká integrita dat> end-to-end kontrolní součty> transakce

• „storage pool“> RAID-0, RAID-1, RAID-Z, RAID-Z2

• kapacita (128bit)• jednoduchá „online“ administrace• řízení přístupu NFSv4/NT ACL• snapshot, clone• vzdálená replikace• komprimace• nezávislé na platformě (x86-SPARC)

Page 17: Czech Sun Training Day 2009 - Solaris

volumemanager

filesystem

dmu

storagepool allocator

nezávislý blokový přístupochrana pomocí

žurnálu

synchroní zápisúplná

resychronizace po výpadku

transakcevše-nebo-nic

ve všech bodech

zfs

klas

ický

mod

e fs

-vm

zfs

Page 18: Czech Sun Training Day 2009 - Solaris

1 2

3 4

možnýsnapshot

mirror

AB

C

aktuálníuberblock

zfs

trans

akce

zfs

resi

lver

ing

Page 19: Czech Sun Training Day 2009 - Solaris

Dtrace

• sondy> dynamické vložení přerušení do kódu> nulové náklady, pokud není sonda aktivní> pro jádro Solarisu, uživatelské programy a interpretry

java, javascript, python, PHP, ruby …> „provider“ pro sondy

– ~ 80000 sond generických (funkce kernelu)– ~ 2500 sond specifických

• úplný popis sondy a akceprovider:module:function:name /logický výraz podmínky akce/{ příkazy akce; … }

Page 20: Czech Sun Training Day 2009 - Solaris

Dtrace

syscall - sondy na vstupu/výstupu systémových volánídtrace – vnitřní sondy DTrace lockstat - sondy pro zámky a zamykáníprofile - pravidelně spouštěné sondy (časovač)fbt - sondy na vstupu/výstupu všech funkcí kernelusdt - “staticky definované sondy” explicitně zakopilované v kódusysinfo - sondy statistik kernelu pro mpstat a sysinfovminfo - sondy statistik kernelu pro virtuální paměť proc - sondy vytváření a zánik procesů/LWPsched - sondy plánovače CPUio - sondy pro sledování diskových IOmib - SNMP MIB sondy systémového managementupid - sondy sledování funkcí a instrukcí v procesech...

„provider“ pro sondy

Page 21: Czech Sun Training Day 2009 - Solaris

libdtrace(3lib)

lockstat(1m)

dtrace(1m) intrstat(1m)

plockstat(1m)

sondy&akce (DOF) výsledky (DIF)

fbt(7d)

sdt(7d)

syscall(7d)

vmstat(7d)

dtrace(7d), logika a D-interpret

text/code

trap

USRSYS

Page 22: Czech Sun Training Day 2009 - Solaris

pro bezpečnost

Page 23: Czech Sun Training Day 2009 - Solaris

Bezpečnostní rámec Solarisu

• otevřené standardy> POSIX, XPG, SUS, SVID, ANSI ...

• otevřená platforma• otevřený kód• ověřený kód> certifikace Common Criteria (ISO 15408)

• AAA> Authentication – autentizace vstupu

– nsswitch, pam> Authorization – autorizace přístupu

– RBAC, privilegia jádra, Trusted Extension, ACL, IP filter, TCP wrapper, IP sec, IP qos

> Audit – účtování provozu– audit událostí v jádru Solarisu, accounting, BART, SST

Page 24: Czech Sun Training Day 2009 - Solaris

Role Based Acces Control

• cíl> umožnit delegaci administrace systému> definice programových autorizací> snížit počet „setuid“ programů> princip minimálních oprávnění

• komponenty RBAC> administrativní role (administrative roles)

– nelze se přímo přihlásit, jen pomocí „su“ z autorizovaných kont> programové autorizace (authorizations)> profily (profiles, rights), profily pro spuštění programů

včetně bezpečnostních privilegií jádra (exec attributes, privileges)

Page 25: Czech Sun Training Day 2009 - Solaris

Privilegia

• bezpečnostní oprávnění pro jádro Solarisu, která nahrazují privilegovaný test „euid==0“• 68 privilegií> například:

"file_dac_read" Override file's read perms"file_dac_search" Override dir's search perms"net_privaddr" Bind to privilege port (<1023+extras)"proc_exec" Allow use of execve()"proc_fork" Allow use of fork*() calls"proc_info" Examine /proc of other processes

• součástí informací jádra o procesu• nastavení privilegií> RBAC> privilegované programy (setuid)> v rámci startovací sekvence (SMF)

Page 26: Czech Sun Training Day 2009 - Solaris

Privilegia

• informace v jádru o procesu > Effektive set (E) – aktuální oprávnění, dají se přidávat a

odebírat shora omezené podle (P)> Permitted set (P) – horní omezení pro oprávnění (E) a (I),

dají se pouze odebírat> Inheritable set (I) – nastavení výchozích oprávnění (nové E a

P) pro synovský proces> Limited set (L) – horní omezení pro dědičná oprávnění (I) a

nemůže nikdy růst> příznak PRIV_AWARE

• pro spouštění setuid se použije pro E a P obsah L

Interpretace v jádru Solarisu

Page 27: Czech Sun Training Day 2009 - Solaris

Trusted extension

• autorizace> Discretionary Access Control (DAC)

(certifikace CA PP & RBAC PP na EAL4+)– subjekt (uživatel a jeho procesy, ověřená identita uživatele)

– UID, GID– objekt (soubory, sdílená paměť, jiné procesy, síť ...)

– rwx bity– POSIX ACL, ZFS/NFSv4 ACL

> Mandatory Access Control (MAC)(certifikace LS PP na EAL4+)– subjekt

– DAC + clearance label, accreditation label range, account label range, session label range

– objekt– DAC + sensitivity label

Page 28: Czech Sun Training Day 2009 - Solaris

Trusted extension

• označení> klasifikace (classification, level)

– vertikální hierarchická úroveň bezpečnosti– příklad: „public“ < „company conf.“ < „secret“ < „top secret“

> oddělení (compartments, categories)– horizontální příslušnost do žádného, jednoho i více oddělení

bezpečnosti– příklad: „education“, „marketing“, „management“, „accounting“

> vyhodnocení– dominance subjektu nad objektem

– subjekt má stejnou nebo vyšší klasifikaci než objekt– subjekt obsahuje všechna oddělení objektu

– write-up + read-down– Compartmented Mode Workstations (CMWs)

Definice „label“

Page 29: Czech Sun Training Day 2009 - Solaris

Trusted extension

• firemní rozložení> klasifikace: „public“ < „company confidental“ < „secret“ > oddělení: „education“, „management“, „accounting“ …

• NISPOM rozložení> klasifikace: „confidental“ < „secret“ < „top secret“

• NATO rozložení> klasifikace: „nato resticted“ < „nato confidental“ < „nato

secred“ < „cosmic top secred“> oddělení: „atomal“

• demo rozložení> klasifikace: „unclassified (U)“ < „confidental (C)“ < „secred

(S)“ < „top secred (TS)“> oddělení: „A“, „B“

• firewall> klasifikace: „system“> oddělení: „inside“, „outside“

Příklady konfigurace

Page 30: Czech Sun Training Day 2009 - Solaris

SYSTEM INSIDE OUTSIDE

SYSTEMOUTSIDE

SYSTEMINSIDE

SYSTEM

sw install

audit

web server application

DB

internet

trusted gw

Page 31: Czech Sun Training Day 2009 - Solaris

Děkuji za pozornost

Martin Červený[email protected]