Capítulo 7. Seguridad para virtualización
Al implementar las tecnologías de virtualización en la infraestructura de su organización, debe asegurarse de que Domain0 no pueda estar comprometido. El host, en el hipervisor Xen, es un dominio privilegiado que maneja la administración del sistema y todas la máquinas virtuales. Si el host es inseguro, todos los demás dominios en el sistema serán vulnerables. Hay varias formas de mejorar la seguridad en sistemas que utilizan la virtualización. Usted o su organización deben crear un Plan de implementación que comprenda las especificaciones operativas y especifique los servicios necesarios en sus servidores de huéspedes y host virtualizados al igual que el soporte requerido para estos servicios. A continuación se presentan problemas de seguridad durante el desarrollo del plan de implementación:
7.1. SELinux y virtualización completas
La Seguridad Mejorada de Linux (SELinux, por las iniciales en inglés de Security Enhanced Linu), fue desarrollada por la NSA
con la ayuda de la comunidad de Linux para proporcionar una mayor seguridad. SELinux limita las herramientas de los atacantes y sirve para evitar muchos ataques a la seguridad tales como ataques de desbordamiento de buffer, o escalada de privilegios. Es debido a estos beneficios que Fedora recomienda que todos los sistemas Linux deberían ejecutarse con SELinux activado en modo impositivo.
SELinux impide la carga de imágenes de huésped, si SELinux está habilitado y las imágenes no están en el directorio correcto. SELinux requiere que todas las imágenes sean almacenadas en /var/lib/libvirt/images
.
La siguiente sección es un ejemplo de la adición de un volumen lógico a un huésped virtualizado con SELinux habilitado. Estas instrucciones también se aplican a particiones de disco duro.
Procedimiento 7.1. Creación y montaje de un volumen lógico en un huésped virtualizado con SELinux habilitado.
Creación de un volumen lógico. Este ejemplo crea un volumen lógico de 5 GB denominado NewVolumeName
en el grupo de volumen denominado volumegroup
.
# lvcreate -n NewVolumeName
-L 5G
volumegroup
De formato al volumen lógico NewVolumeName
con un sistema de archivos que soporta atributos, tales como ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
Cree un nuevo directorio para montar el nuevo volumen lógico. Este directorio puede estar en cualquier parte de su sistema de archivos. Se recomienda ponerlo en directorios de sistema importantes (/etc
, /var
, /sys
) o en directorios principales (/home
o /root
). Este ejemplo utiliza un directorio llamado /virtstorage
# mkdir /virtstorage
Monte el volumen lógico.
# mount /dev/volumegroup/NewVolumeName
/virtstorage
Establezca el tipo apropiado de SELinux para la carpeta de Xen.
semanage fcontext -a -t xen_image_t "/virtualization(/.*)?"
Otra posibilidad es establecer el tipo de SELinux apropiado para una carpeta de KVM.
semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
Si se utiliza la política objetivo (la objetivo es la predeterminada por defecto) el comando añadirá una línea al archivo /etc/selinux/targeted/contexts/files/file_contexts.local
, el cual hace el cambio persistente. La línea añadida puede ser similar a ésta:
/virtstorage(/.*)? system_u:object_r:xen_image_t:s0
Ejecute el comando para cambiar el tipo de punto de montaje (/virtstorage
) y todos los archivos bajo él para xen_image_t
(restorecon
y setfiles
leen los archivos en /etc/selinux/targeted/contexts/files/
).
# restorecon -R -v /virtualization