Upload
martin-cerveny
View
234
Download
4
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
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í
pro virtualizaci
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)
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
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
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
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
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
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)
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
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)
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
pro provoz
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í
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)
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
1 2
3 4
možnýsnapshot
mirror
AB
C
aktuálníuberblock
zfs
trans
akce
zfs
resi
lver
ing
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; … }
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
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
pro bezpečnost
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
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)
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)
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
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
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“
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
SYSTEM INSIDE OUTSIDE
SYSTEMOUTSIDE
SYSTEMINSIDE
SYSTEM
sw install
audit
web server application
DB
internet
trusted gw
Děkuji za pozornost
Martin Červený[email protected]