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)
2. 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í
4. 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)
5. APPAPP
G OS
APP
IPC
HW
OS
APP APP
IPC
RPC
OS
HW přímý přístup
APP
APP
syscall
přímý přístup
hypercall
hypervisor (VMM)
APP
H OS
APPAPP
G OS
výjimka
trap
APPAPP
G OS
APPEMUL
H OS
APPAPP
G OS
hypervisor&trap
DSDxen/LDom
VB/xen
APPAPPAPP
syscall
přímý přístup
APP
OS
APPAPP
syscall
emulátor
kontejner/zóna
HW
HW HW
6. 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
7. 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
8. 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
10. 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)
12. 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)
15. 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í
16. 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)
19. 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 akce
provider:module:function:name
/logický výraz podmínky akce/
{ příkazy akce; … }
20. 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í kernelu
sdt - “staticky definované sondy” explicitně zakopilované v kódu
sysinfo - sondy statistik kernelu pro mpstat a sysinfo
vminfo - sondy statistik kernelu pro virtuální paměť
proc - sondy vytváření a zánik procesů/LWP
sched - sondy plánovače CPU
io - sondy pro sledování diskových IO
mib - SNMP MIB sondy systémového managementu
pid - sondy sledování funkcí a instrukcí v procesech
...
„provider“ pro sondy
23. 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
24. 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)
25. 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)
26. 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
27. 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
28. 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“