virtualització

63
Virtualització Seguretat Informàtica UF4 Alta disponibilitat – Part 2 Xavier Sala Pujolar Institut Cendrassos

Upload: xavier-sala-pujolar

Post on 08-Jul-2015

773 views

Category:

Technology


0 download

DESCRIPTION

Introducció a la virtualització: tipus de virtualització disponible i exemples

TRANSCRIPT

Page 1: Virtualització

Virtualització

Seguretat InformàticaUF4 Alta disponibilitat – Part 2

Xavier Sala PujolarInstitut Cendrassos

Page 2: Virtualització

Administració de Sistemes Informàtics i Xarxes

Introducció● Des de fa molt de temps en Informàtica s'ha

intentat fer servir l'ordinador per simular sistemes diferents del que es té...

Page 3: Virtualització

Administració de Sistemes Informàtics i Xarxes

Tipus● Es fan servir diferents tècniques per simular els

sistemes:

Paravirtualització

Emulació Virtualització completa

Virtualització parcial

Virtualització a nivell de SO

Virtualització

Page 4: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Emuladors

Page 5: Virtualització

Administració de Sistemes Informàtics i Xarxes

Emuladors● Es basa en crear programes que emulen el

funcionament d'una o diverses plataformes de maquinari

– Normalment per aconseguir executar programes que només s'executen en aquestes plataformes

Page 6: Virtualització

Administració de Sistemes Informàtics i Xarxes

Emulació● És el tipus de virtualització més costosa i per

tant la menys eficient – Obliga a simular completament per software

qualsevol aspecte del maquinari a simular

– Com que s'ha de traduir tot el resultat és força lent

● Però també ofereix alguns avantatges:– Pot executar sistemes operatius dissenyats per

altres plataformes sense modificar-los

– Permet desenvolupar firmware per dispositius hardware sense tenir el maquinari real

Page 7: Virtualització

Administració de Sistemes Informàtics i Xarxes

Bochs● Emulador de PC de

codi lliure ● Funciona en

arquitectures x86 de 32 i 64 bits

● Pot executar la major part dels sistemes operatius emulant-los

http://bochs.sourceforge.net/

Page 8: Virtualització

Administració de Sistemes Informàtics i Xarxes

QEmu● QEMU és un emulador i

virtualitzador de codi obert

● Pot emular diferents plataformes com x86, x86-64, PowerPC, SPARC o MIPS.

● Amb Xen i KVM pot funcionar com virtualitzador

Page 9: Virtualització

Administració de Sistemes Informàtics i Xarxes

MAME● Un dels camps en

que els emuladors són més populars és en l'emulació de jocs

● El Multiple Arcade Machine Emulator (MAME) és un emulador de màquines recreatives

– Funciona a partir de volcats de les ROM originals

Page 10: Virtualització

Administració de Sistemes Informàtics i Xarxes

DOSBOX i DOSEmu● També ha tingut èxit

l'emulació d'antics sistemes operatius

● MS-DOS ha estat un dels més emulats (i per tant les primeres versions de Windows)

● Exemples poden ser:– DOSBox

– DOSEmu

Page 11: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Virtualització

Page 12: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització completa● La virtualització fa referència a l'abstracció dels

recursos d'un ordinador per crear-ne d'altres

Page 13: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització● La virtualització intercepta els intents d'accedir

al hardware de les màquines virtuals i n'emula el funcionament per programari

Escriure a disc

Això fa que els sistemes virtualitzats siguin més lents que els sistemes instal·lats en màquines

reals

Page 14: Virtualització

Administració de Sistemes Informàtics i Xarxes

Classificació● A grans trets es pot dividir la virtualització de

sistemes en dues grans categories:

Virtualització de sistemes operatius

sencers

Virtualització a nivell de procés

Page 15: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització per maquinari● Els processadors basats en l'arquitectura x86

han inclòs millores tècniques per millorar el rendiment de les VM

– Intel VT: Plataformes d'Intel

– AMD-V: Processadors d'AMD

● El maquinari gràcies a aquestes extensions ajuda a incrementar el rendiment de la virtualització

● En molta documentació això es coneix com HVM (Hardware Assisted Virtualization)

Page 16: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització per maquinari● Hi ha moltes eines que permeten comprovar si

un processador suporta virtualització per hardware

– Securable (http://www.grc.com/securable.htm)

Page 17: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització per maquinari● En alguns processadors no està activada però

normalment es pot activar en la BIOS

Page 18: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Virtualització completa

Virtualització:

Page 19: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització de sistemes● És la més coneguda● Permet que es puguin executar diferents

sistemes operatius alhora

Page 20: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització completa● Són solucions que permeten executar sistemes

operatius sense haver-los de modificar– Però ha de ser un sistema compatible amb la

plataforma usada

32 bits

64 bits

32 bits

NO

SI32 bits

64 bits

32 bits

NO

SIIntel x8632 bits

Page 21: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització completa● La virtualització

completa sovint no vol dir simular tot el maquinari de l'equip sinó els components principals

– Els altres perifèrics (targetes de vídeo, xarxa, etc..) no es virtualitzen

– Es fan servir dispositius genèrics

Page 22: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització completa● El resultat és un sistema amb un rendiment

molt superior a l'emulació● Tot i fer servir l'ajuda que ofereix el maquinari el

rendiment és inferior a l'execució nativa

12 3

Emulació

Virtualització

ExecucióNativa

Page 23: Virtualització

Administració de Sistemes Informàtics i Xarxes

Capa d'abstracció● L'abstracció dels recursos es fa a través d'un

hipervisor o un monitor de màquines virtuals (VMM)

Page 24: Virtualització

Administració de Sistemes Informàtics i Xarxes

Hipervisors● Els hipervisors es poden classificar en dos

grans grups:

Tipus 1: Hipervisor nadiu Tipus 2: Hipervisor hoste

Page 25: Virtualització

Administració de Sistemes Informàtics i Xarxes

Hipervisor hoste● S'executa sobre el sistema

operatiu convencional● La virtualització es fa més

lluny del maquinari i el rendiment és inferior

● Exemples:– Oracle Virtualbox

– VMWare Workstation

– VMWare Server

– Microsoft Virtual PC

– KVM

Page 26: Virtualització

Administració de Sistemes Informàtics i Xarxes

VMWare Workstation/Player /Server● Per plataformes x86● Permet executar

múltiples instàncies de sistemes operatius

● A través de drivers específics aconsegueix una integració

● La versió Player i Server són gratuïtes

Page 27: Virtualització

Administració de Sistemes Informàtics i Xarxes

Oracle VirtualBox● Per arquitectures x86● A través de drivers

específics aconsegueix una integració

● Té una versió GPL i una comercial

Page 28: Virtualització

Administració de Sistemes Informàtics i Xarxes

Windows Virtual PC● Per plataformes x86● Només funciona en

Windows 7 i posteriors

● Permet simular sistemes Windows des de Windows XP

● Gratuït per versions professional i Enterprise

Page 29: Virtualització

Administració de Sistemes Informàtics i Xarxes

Mode XP● En els Windows 7 es

pot instal·lar el “XP Mode”

● Permet executar aplicacions simulant un XP SP3

● Els programes apareixen el menú i s'executen en l'escriptori

● Necessita Windows Virtual PC

Page 30: Virtualització

Administració de Sistemes Informàtics i Xarxes

Hipervisor nadiu● S'executa directament

sobre el maquinari real● Controla el maquinari i en

monitoritzar els sistemes virtualitzats.

● Exemples:– VMware vSphere

– VMWare ESX

– XEN

– Citrix XenServer

– Microsoft Hyper-V Server

Page 31: Virtualització

Administració de Sistemes Informàtics i Xarxes

VMWare ESXi● VMware ESXi i ESX

són hipervisors nadius

● Específicament pensats per executar servidors

● El client només funciona en sistemes Windows

Page 32: Virtualització

Administració de Sistemes Informàtics i Xarxes

XEN● Xen pot funcionar

com a hipervisor nadiu

● La capa d'hipervisor sol ser Linux però pot ser Solaris, BSD, ...

● Pot usar-se per:– Virtualització

completa si es té acceleració de maquinari

– Paravirtualització

Page 33: Virtualització

Administració de Sistemes Informàtics i Xarxes

XEN● Xen està format per una màquina virtual que

anomena Dom0 i una sèrie de clients (DomU)– Dom0 controla el maquinari real i els clients

– Pot donar exclusivitat a una màquina (PCI passthrough)

Dom0

DomU

Page 34: Virtualització

Administració de Sistemes Informàtics i Xarxes

XEN● Una part dels

sistemes en el núvol es basen en XEN:– Amazon, Cloud.com,

Rackspace, GoGrid...

– Gràcies al suport de “migració en viu”

● O solucions de virtualització: – Citrix Xenserver,

Oracle VM, ...

Page 35: Virtualització

Administració de Sistemes Informàtics i Xarxes

Citrix XenServer● XenServer és un

hipervisor nadiu● Està basat en el

funcionament de Xen● El client, XenCenter,

només funciona en Windows però hi ha gestors lliures

Page 36: Virtualització

Administració de Sistemes Informàtics i Xarxes

Xen Cloud Platform (XCF)● Solució de codi obert

basada en XenServer● Agafa com a base

CentOS Linux ● Fa funcions

d'hipervisor i de gestió de núvols

● Suporta virtualització per maquinari i paravirtualització

● Sense GUI

XCF

Page 37: Virtualització

Administració de Sistemes Informàtics i Xarxes

Hyper-V● És un hipervisor per

sistemes de 64 bits – Amb suport de

maquinari

● Està integrat en Windows 2008 Server

– Té una versió gratuïta limitada

● Es controla amb el System Center Virtual Machine Manager

Page 38: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització a nivell de nucli● En alguns casos

l'hipervisor és el nucli d'un sistema operatiu

● Un nucli especialment modificat per gestionar i controlar diverses màquines virtuals

Nucli

Page 39: Virtualització

Administració de Sistemes Informàtics i Xarxes

Linux KVM● És un mòdul del nucli

de Linux que permet virtualitzar en sistemes x86 amb virtualització per maquinari

● En el nucli de Linux des de la versió 2.6.20

● De codi obert

Page 40: Virtualització

Administració de Sistemes Informàtics i Xarxes

User Mode Linux (UML)● User-mode Linux (UML)

és una modificació del nucli perquè suporti la seva interfície de crides

● Permet virtualitzar dispositius– La màquina virtual pot tenir

hardware diferent del real

● La màquina virtual s'emmagatzema en un sol arxiu

http://user-mode-linux.sourceforge.net/

Page 41: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Paravirtualització

Virtualització:

Page 42: Virtualització

Administració de Sistemes Informàtics i Xarxes

Paravirtualització● Va sorgir com una forma de millorar l'eficiència

de les màquines virtuals i acostar-la més al rendiment nadiu.

12 3

Virtualització

Paravirtualització

ExecucióNativa

Page 43: Virtualització

Administració de Sistemes Informàtics i Xarxes

Paravirtualització● Per poder fer servir la paravirtualització cal que

el sistema virtualitzat estigui preparat per ser executat dins de l'hipervisor

– Normalment oferint una interfície en forma de driver que l'hipervisor podrà fer servir

Driver

Hipervisor

Driver

Page 44: Virtualització

Administració de Sistemes Informàtics i Xarxes

Paravirtualització● Es basa en la idea de que el sistema “sap” que

està sent virtualitzat

● D'aquesta forma la màquina virtual pot col·laborar amb l'hoste

– No li caldrà controlar totes les instruccions

– Podrà executar les seves instruccions directament en el processador sense haver de traduir-les

Page 45: Virtualització

Administració de Sistemes Informàtics i Xarxes

XEN● Xen provablement és

el més conegut dels sistemes paravirtualitzadors

● El nucli de Linux, des de les versions 3.0, pot ser tant Dom0 com DomU

● També pot ser usat per paravirtualitzar Windows (DomU)

Page 46: Virtualització

Administració de Sistemes Informàtics i Xarxes

Hyper-V● Suporta

paravirtualització d'alguns sistemes– La API està disponible

● Divideix els sistemes operatius en enlightened (funcionen sobre Hyper-V directament) i unenlightened

Page 47: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Virtualització a nivell de sistema operatiu

Virtualització:

Page 48: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització a nivell de SO● Aquest tipus de virtualització és típica dels

sistemes Unix– FreeBSD Jails, Solaris Containers, ...

● S'aprofita de la possibilitat de canviar dinàmicament l'arrel del sistema operatiu (el típic chroot)

● Simplificant un sistema operatiu és:– El nucli

– El sistema de fitxers arrel que té tot el necessari per poder ser executat (llibreries, dispositius, etc..)

Page 49: Virtualització

Administració de Sistemes Informàtics i Xarxes

VPS● La idea és fer que un nucli d'un sistema

operatiu executi diverses instàncies aïllades de si mateix

En aquest sistema de

virtualització és el nucli el que fa

d'hipervisor

Page 50: Virtualització

Administració de Sistemes Informàtics i Xarxes

VPS● Si cada execució té el seu propi sistema de

fitxers podem fer veure que tenim sistemes diferents: Servidors privats Virtuals

Page 51: Virtualització

Administració de Sistemes Informàtics i Xarxes

VPS● Les limitacions estan en que:

– Es comparteix el nucli del sistema operatiu i per tant ha de ser modificat per poder funcionar d'aquesta forma.

– Serà el nucli el que farà que cada sistema només vegi les seves característiques

● Però per contra:– Són molt més eficients que els hipervisors (només

gasten els cicles de CPU que calen als programes per funcionar!)

– Fàcils de gestionar des del host

Page 52: Virtualització

Administració de Sistemes Informàtics i Xarxes

VPS● El rendiment dels VPS és gairebé nadiu

– En realitat és l'execució d'un programa nadiu

● S'estant fent molt populars en:– Virtualització de servidors

– Desenvolupament d'aplicacions del nucli

– Fer experiments

– Executar programari en Sandbox

● Un problema és que un error en el kernel original deixar tots els servidors caiguts

Page 53: Virtualització

Administració de Sistemes Informàtics i Xarxes

LinuX Containers (LXC)● És virtualització a

nivell de sistema operatiu per executar màquines aïllades en un host

– No cal modificar el nucli

● No són màquines virtuals sinó entorns virtuals

● Similar a chroot però més aïllat

http://lxc.sourceforge.net/

Page 54: Virtualització

Administració de Sistemes Informàtics i Xarxes

Linux VServer● Permet virtualitzar

sistemes Linux– Nuclis modificats

● Ho fa aïllant el nucli perquè pugui executar múltiples instàncies virtuals d'ell mateix alhora

● Molt útil per oferir serveis de hosting a diferents clients

http://linux-vserver.org

Page 55: Virtualització

Administració de Sistemes Informàtics i Xarxes

OpenVZ● OpenVZ permet

virtualització VPS per Linux

● Basat en plantilles i en la modificació del nucli

● Permet assignar dinàmicament els recursos (memòria, processador,...)

Page 56: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtuozzo● Virtuozzo és una solució

VPS basada en capes. ● Permet fer migracions en

calent, comunicació entre les màquines virtuals instal·lades

● Es pot instal·lar en Linux i Windows (32/64 bits)

● Es fa servir sobretot per virtualització de servidors web i de correu

Page 57: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització

Virtualització parcial o de processos

Page 58: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització de processos● La idea és executar un programa aïllant-lo del

sistema – Perquè no és compatible amb l'actual o perquè

és d'un altre sistema operatiu

– Per fer-li creure que té accés a zones amb privilegis que no té

– Perquè es vol saber què fa sense que afecti al sistema (Sandbox)

Page 59: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització de processos● Windows pot

virtualitzar processos – Fa creure als

programes que tenen accés al registre o a zones del disc protegides

– Incrementa la compatibilitat amb d'aplicacions antigues

● També ho pot fer amb “XP Mode”

Page 60: Virtualització

Administració de Sistemes Informàtics i Xarxes

Virtualització parcial● Es basen en intentar millorar el rendiment de la

virtualització no emulant tot el sistema operatiu. ● La idea és virtualitzar des del punt de vista de

l'aplicació. – No cal virtualitzar-ho tot sinó només el que cal per

enganyar al programa perquè ho cregui

Page 61: Virtualització

Administració de Sistemes Informàtics i Xarxes

WINE● Wine es basa en la

reescriptura de les llibreries de l'API de Windows

● Permet executar programes Windows des d'altres sistemes

● No emula el sistema operatiu sinó que simula algunes llibreries http://www.winehq.org/

Page 62: Virtualització

Administració de Sistemes Informàtics i Xarxes

Cooperative Linux● Modificació del nucli

de Linux per ser executat en espai d'usuari de Windows

● Només funciona en versions de 32 bits

● Desenvolupen una versió de Debian

– Però és fàcil trobar enllaços a altres distribucions

http://www.colinux.org/

Page 63: Virtualització

Administració de Sistemes Informàtics i Xarxes

andLinux● Versió Ubuntu que es

pot executar en sistemes Windows de 32 bits

● Té el nucli de CoLinux

● Permet executar aplicacions Linux sense cap modificació

http://andlinux.org/