Virtualització Seguretat Informàtica UF4 Alta disponibilitat – Part 2 Xavier Sala Pujolar Institut Cendrassos
Jul 08, 2015
Virtualització
Seguretat InformàticaUF4 Alta disponibilitat – Part 2
Xavier Sala PujolarInstitut Cendrassos
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é...
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ó
Administració de Sistemes Informàtics i Xarxes
Virtualització
Emuladors
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
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
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/
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
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
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
Administració de Sistemes Informàtics i Xarxes
Virtualització
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
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
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
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)
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)
Administració de Sistemes Informàtics i Xarxes
Virtualització per maquinari● En alguns processadors no està activada però
normalment es pot activar en la BIOS
Administració de Sistemes Informàtics i Xarxes
Virtualització
Virtualització completa
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
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
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
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
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)
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
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
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
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
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
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
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
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
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ó
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
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, ...
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
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
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
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
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
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/
Administració de Sistemes Informàtics i Xarxes
Virtualització
Paravirtualització
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
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
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
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)
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
Administració de Sistemes Informàtics i Xarxes
Virtualització
Virtualització a nivell de sistema operatiu
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..)
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
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
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
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
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/
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
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,...)
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
Administració de Sistemes Informàtics i Xarxes
Virtualització
Virtualització parcial o de processos
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)
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”
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
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/
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/
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/