VCAP – Sección 7– seguridad para hosts ESX/ESXi

Que tal gente, después de algunas semanas difíciles, trabajo, problemas personales, etc. estoy de regreso para continuar con los temas del examen VCAP-DCA . En esta ocasión nos toca hablar sobre seguridad específicamente en el caso de nuestros hosts ESX/ESXi.

Identificar características de seguridad a nivel de switch virtual

Bueno aquí básicamente debemos conocer que políticas de seguridad tenemos disponibles:

  • Promiscuous mode- Con esta política definimos si el switch o portgroup que estemos modificando permitirá que las vms conectadas al mismo puedan capturar paquetes que no estén específicamente destinados para ellas, útil cuando necesitamos hacer sniffing de red.
  • MAC Address Changes – Con esta política definimos si permitirá la modificación de mac address desde el sistema operativo de dicha VM.
  • Forged Transmits – Con esta política definimos si se permite o no al sistema operativo de la vm crear paquetes con una mac address distinta a la suya.

Agregar/editar y remover usuarios/grupos en un host ESX

Tenemos 2 maneras de crear, remover y editar usuarios, desde la linea de comando o desde la interfaz gráfica:

  • vicfg-user – utilizando vSphere CLI / vMA podemos crear usuarios remotamente en nuestros hosts, aquí les dejo unos ejemplos:

vicfg-user –server esxi01.hispavirt.test.com –entity user –operation add –login soporte –password password

–entity user/group

–operation add/delete/list/modify

–login nombre de usuario


vicfg-user –server esxi01.hispavirt.test.com –entity user –operation delete –login soporte

Para agregar usuarios directamente desde la interfaz gráfica ingresamos con nuestro vSphere client y vamos al tab de “Local Users & Groups”, click derecho y “add”:

Si nosotros estamos utilizando ESX/ESXi 4.1 +, con nuestros servidores agregados a un dominio windows si quisiéramos agregar permisos a usuarios windows vamos a el tab de “permissions” y hacemos click derecho> Add Permission..

Personalizar la configuración de SSH para una mejor seguridad

Aquí básicamente es recordar que para utilizar ssh la mejor practica es siempre accesar con un usuario que no sea root y en el caso de requerir privilegios podemos realizar un SU.

Para habilitar el acceso de root en ESX:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=8375637

Habilitar o deshabilitar la verificación de certificados SSL

Existe un kb de VMware de como realizar esto, muy sencillo aquí les dejo el link:  KB Article: 4646606

Generar certificados de Hosts ESX/ESXi

En el momento de la instalación tanto ESX como ESXi generan sus propios certificados SSL, los cuales los podemos encontrar en  /etc/vmware/ssl, para regenerar estos certificados en el caso de haberlos borrado o haber cambiado el hostname seguimos los siguientes pasos:

  • ESXi: En la consola directa o DCUI, seleccionamos “reset system configuration”, con esto todos los parámetros modificados serán regresados a su estado default, reiniciamos el servidor y se crearan nuevos certificados ssl.

  • ESX: navegamos a la ruta donde se encuentran nuestros actuales certificados de ssl, y podemos ya sea borrar los certificados, o renombrarlos:

mv rui.crt orig.rui.crt

mv rui.key orig.rui.key

reiniciamos  el servicio de hostd:

service mgmt-vmware restart

y tendremos listos nuevos certificados.

Habilitar Lockdown mode para nuestros hosts ESXi

El modo “lockdown” previene que nos podamos loggear con el usuario root a través del vSphere client, PowerCLI, vMA, y demás.

Para habilitarlo tenemos la capacidad de realizarlo directamente en la consola o DCUI,  a través del vSphere client o vim-cmd:

  • DCUI:

  • vSphere client – seleccionamos nuestro host, hacemos click en configuration>security profile:

  • vim-cmd – vim-cmd -U dcui vimsvc/auth/lockdown_mode_enter

Remplazar certificados default por certificados de una autoridad de CA

Aquí les voy a dar un ejemplo de como crear certificados con OpenSSL y un CA de Windows 2003, vamos a seguir los siguientes pasos:

  • Paso 1-. navegamos a nuestra carpeta bin de OpenSSL
  • Paso 2-. creamos nuevos certificados

openssl req -new -nodes -out micert.csr -config openssl.cfg

En el paso donde les pregunta el “common name” aquí debemos ingresar el FQDN de nuestro vCenter o host ESX/ESXi para el cual sea este certificado.

En este punto ya tendremos creados 2 archivos en la carpeta bin de OpenSSL, micert.csr y privkey.pem.

  • Paso 3-. Abrimos un navegador y apuntamos a nuestro servidor CA, Https://myservidor/certsrv, seleccionamos “request a certificate” > “advanced certificate request” > “submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file”

Aquí  necesitamos abrir el archivo “micert.csr” que creamos anteriormente y se encuentra en la carpeta bin de OpenSSL, copiamos todo su contenido para después pegarlo en el campo de saved request:

Pegamos el contenido, y cambiamos el template a “web server” y hacemos click en “submit”

Una vez hecho esto, descargamos el certificado “base 64 encoded”

  • Paso 4-. Ya tenemos nuestro nuevo certificado, solo es cuestión de abrir nuevamente nuestra linea de comando, navegar a openssl\bin, y vamos a ejecutar el siguiente comando sobre nuestro nuevo certificado:

openssl x509 -in certnew.cer -out micert.cer

Con este ultimo paso ya tenemos listo nuestro certificado, en este caso creamos uno para el host vcenter.hispavirt.test.com, solo es cuestión de cambiar el “common name ” al host que se requiera. Para sustituir los certificados:

  • vCenter: navegamos a “C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL”, y copiamos los archivos “micert.cer” y “privkey.pem”, realizamos un backup de nuestros certificados actuales (rui.crt y rui.key). Paramos los servicios del vCenter, y renombramos los archivos recién copiados a:

micert.cer > rui.crt

privkey.pem > rui.key

  • ESXi – renombramos de igual manera los archivos micert.cer y privkey.pem, solo que esta vez vamos a utilizar vSphere Cli para copiar los archivos a nuestros hosts:

vifs –server <hostname> –username <username> –put rui.crt /host/ssl_cert
vifs –server <hostname> –username <username> –put rui.key /host/ssl_key


Configurar timeout de SSL

Tanto en ESX/ESXi, necesitamos editar el archivo llamado “config.xml” que encontramos en la ruta “/etc/vmware/hostd/” y modificamos el valor que requerimos, tenemos 2 tipos:

  • read timeout: es el valor en milisegundos para aquellas conexiones que ya completaron el handshake de SSL
  • handshake timeout: es el valor en milisegundos para aquellas conexiones que todavía no completan el handshake de SSL.

Para modificarlos, editamos el archivo “config.xml” e ingresamos las siguientes lineas:

  • read timeout – <readTimeoutMs>tiempoenms</readTimeoutMs>
  • handshake timeout – <handshakeTimeoutMs>tiempoenms</handshakeTimeoutMs>

Seguridad de Proxy web en hosts ESX/ESXi

Aquí vamos a necesitar modificar un archivo llamado proxy.xml que encontramos en la ruta /etc/vmware/hostd, en el cual podemos definir que puerto se estará utilizando, si se aceptan conexiones http, https, etc. les recomiendo leer la guia de configuración de esxi/esx para poder llevar a cabo esta tarea.

Politicas de passwords complejas

Les recomiendo leer los siguientes links para realizarlo:

En el caso de ESX, podemos utilizar esxcfg-auth , para definir días de validez de las passwords:

esxcfg-auth –maxpassdays=90 –minpassdays=30 –passwarnage=75

-maxpassdays – validez de hasta 90 días

-passwarnage – se nos mandará un warning de password a los 75 días

-minpassdays – la password deberá ser utilizada al menos 30 días

Identificar metodos para la seguridad a nivel de VM

Les recomiendo leer el draft del whitepaper “Security Hardening Guide” para vSphere 4.1:

http://communities.vmware.com/docs/DOC-14548

Leave a Reply