Configuración de protocolos
El agente utiliza protocolos distintos para conectarse al servidor RHEVH. Puede configurar cualquiera de estos protocolos: SSH, TLS o TCP.
Acerca de esta tarea
Configuración del protocolo SSH
Puede configurar el protocolo SSH para supervisar un host de forma remota.
Acerca de esta tarea
Procedimiento
-
Inicie la sesión en el host A con el mismo ID de usuario que ejecuta el proceso del Agente de Linux KVM, por ejemplo, el ID de
usuario
root.
Consejo: asegúrese de que conoce el ID en el host B que acepta la conexión SSH y el ID de usuario root en el host A.
-
Genere las claves id_rsa y id_rsa.pub en el host A mediante el programa de utilidad ssh-keygen.
Las claves se guardan en la ubicación siguiente: ~/.ssh: $ ssh-keygen -t rsa.
-
Copie las claves autorizadas del host B:
$ scp Id del host B@name o dirección IP de host B:~/.ssh/claves_autorizadas ~/.ssh/claves_autorizadas_de_B
-
Añada la clave pública para el host A al final de las claves autorizadas para el host B:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/claves_autorizadas_de_B
- Copie de nuevo las claves autorizadas en el host B:
-
Elimine las claves autorizadas que ha copiado en el host B:
~/.ssh/claves_autorizadas_de_B
-
Añada el mandato siguiente al perfil ~/.bash_ del ID actual en el host A:
$ eval `ssh-agent`
Recuerde: Asegúrese de que utiliza la comilla simple invertida (`), que se encuentra debajo de la tilde (~) en teclados de EE.UU., y no la comilla simple ('). -
Añada la identidad al host A y especifique la contraseña que ha utilizado al crear el ID:
$ ssh-add ~/.ssh/id_rsa
-
Ejecute el mandato siguiente si recibe el mensaje No se ha podido abrir una conexión al agente de autenticación:
exec ssh-agent bash
Consejo: Puede sustituir la bash por la shell que está utilizando y a continuación ejecutar de nuevo el mandato siguiente:$ ssh-add ~/.ssh/id_rsa
-
Pruebe el protocolo SSH para asegurarse de que se conecta desde el host A al host B sin necesidad de especificar la contraseña SSH:
Consejo: si está supervisando varios hosts, utilice el mandato siguiente para probar la conexión para cada host:
$ ssh Id en host B@name o dirección IP de host B
-
Para verificar la conexión, ejecute el mandato siguiente:
virsh -c qemu+ssh://Id on host B@name or IP address of host B:port/system
Si no ha cambiado el puerto SSH predeterminado, omita la sección :port del mandato.
Importante: si el mandato virsh es satisfactorio, el Agente de Linux KVM se conectará al hipervisor. -
Debe reiniciar el host A antes de reiniciar el Agente de Linux KVM en el host A. Para reiniciar, debe volver a ejecutar el
mandato ssh-add y especificar la contraseña cada vez.
Consejo: puede utilizar cadenas de clave SSH para evitar volver a especificar la contraseña.
Configuración del protocolo TLS
Puede configurar el protocolo TLS para supervisar un host de forma remota.
Acerca de esta tarea
Procedimiento
-
Para crear una clave de una entidad emisora de certificados (CA) y un certificado en el hipervisor, siga estos pasos:
- Inicie la sesión en host B.
-
Cree un directorio temporal y cambie la vía de acceso a este directorio temporal:
mkdir cert_files
cd cert_files
-
Cree una clave RSA de 2048 bits:
openssl genrsa -out cakey.pem 2048
-
Cree un certificado firmado automáticamente para la CA local:
openssl req -new -x509 -days 1095 -key cakey.pem -out \
cacert.pem -sha256 -subj "/C=US/L=Austin/O=IBM/CN=my CA" -
Compruebe el certificado de la CA:
openssl x509 -noout -text -in cacert.pem
-
Para crear las claves y certificados de cliente y servidor en el hipervisor, siga estos pasos:
-
Cree las claves:
openssl genrsa -out serverkey.pem 2048
openssl genrsa -out clientkey.pem 2048
-
Cree una solicitud de firma de certificado para el servidor:
Recuerde: cambie la dirección kvmhost.company.org, que se utiliza en la solicitud de certificado de servidor, por el nombre de dominio completo del host del hipervisor.
openssl req -new -key serverkey.pem -out serverkey.csr \
-subj "/C=US/O=IBM/CN=kvmhost.company.org" -
Cree una solicitud de firma de certificado para el cliente:
openssl req -new -key clientkey.pem -out clientkey.csr \
-subj "/C=US/O=IBM/OU=virtualization/CN=root" -
Cree los certificados de cliente y servidor:
openssl x509 -req -days 365 -in clientkey.csr -CA cacert.pem \
-CAkey cakey.pem -set_serial 1 -out clientcert.pemopenssl x509 -req -days 365 -in serverkey.csr -CA cacert.pem \
-CAkey cakey.pem -set_serial 94345 -out servercert.pem -
Compruebe las claves:
openssl rsa -noout -text -in clientkey.pem
openssl rsa -noout -text -in serverkey.pem
-
Compruebe los certificados:
openssl x509 -noout -text -in clientcert.pem
openssl x509 -noout -text -in servercert.pem
-
Cree las claves:
-
Para distribuir las claves y certificados al servidor de host, siga estos pasos:
-
Copie el archivo cacert.pem del certificado de CA en este directorio: /etc/pki/CA
cp cacert.pem /etc/pki/CA/cacert.pem
-
Cree el directorio /etc/pki/libvirt y copie el archivo de certificado del servidor servercert.pem en el directorio
/etc/pki/libvirt. Asegúrese de que sólo el usuario root pueda acceder a la clave privada.
mkdir /etc/pki/libvirt
cp servercert.pem /etc/pki/libvirt/.
chmod -R o-rwx /etc/pki/libvirt
Recuerde: si las claves o certificados se denominan incorrectamente o se copian en los directorios incorrectos, la autorización fallará. -
Cree el directorio /etc/pki/libvirt/private y copie el archivo de claves del servidor serverkey.pem en el directorio
/etc/pki/libvirt/private. Asegúrese de que sólo el usuario root pueda acceder a la clave privada.
mkdir /etc/pki/libvirt/private
cp serverkey.pem /etc/pki/libvirt/private/.
chmod -R o-rwx /etc/pki/libvirt/private
Recuerde: si las claves o certificados se denominan incorrectamente o se copian en los directorios incorrectos, la autorización fallará. -
Verifique que los archivos se han colocado correctamente:
find /etc/pki/CA/*|xargs ls -l
ls -lR /etc/pki/libvirt
ls -lR /etc/pki/libvirt/private
Recuerde: si las claves o certificados se denominan incorrectamente o se copian en los directorios incorrectos, la autorización fallará.
-
Copie el archivo cacert.pem del certificado de CA en este directorio: /etc/pki/CA
-
Para distribuir las claves y certificados a los clientes o estaciones de gestión, siga estos pasos:
- Inicie la sesión en host A.
-
Copie el archivo cacert.pem del certificado de CA del host en el directorio /etc/pki/CA del host A sin cambiar el nombre de archivo.
scp kvmhost.company.org:/tmp/cacert.pem /etc/pki/CA/
-
Copie el archivo clientcert.pem del certificado de cliente en el directorio /etc/pki/libvirt del host B. Utilice el
nombre de archivo
predeterminado y asegúrese de que sólo el usuario root pueda acceder a la clave privada.
mkdir /etc/pki/libvirt/
scp kvmhost.company.org:/tmp/clientcert.pem /etc/pki/libvirt/.
chmod -R o-rwx /etc/pki/libvirt
Recuerde: si las claves o certificados se denominan incorrectamente o se copian en los directorios incorrectos, la autorización fallará. -
Copie la clave de cliente clientkey.pem en el directorio /etc/pki/libvirt/private del host. Utilice los nombres de archivo predeterminados y
asegúrese de que sólo el usuario root pueda acceder a la clave privada.
mkdir /etc/pki/libvirt/private
scp kvmhost.company.org:/tmp/clientkey.pem /etc/pki/libvirt/private/.
chmod -R o-rwx /etc/pki/libvirt/private
Recuerde: si las claves o certificados se denominan incorrectamente o se copian en los directorios incorrectos, la autorización fallará. -
Verifique que los archivos se han colocado correctamente:
ls -lR /etc/pki/libvirt
ls -lR /etc/pki/libvirt/private
-
Para editar la configuración del daemon libvirtd, realice los pasos siguientes:
- Inicie la sesión en host B.
- Haga una copia del archivo /etc/sysconfig/libvirtd y del archivo /etc/libvirt/libvirtd.conf.
- Edite el archivo /etc/sysconfig/libvirtd y asegúrese de que el parámetro --listen se pasa al daemon libvirtd. Este paso garantiza que el daemon libvirtd está a la escucha de conexiones de red.
-
Edite el archivo /etc/libvirt/libvirtd.conf y configure un conjunto de sujetos permitidos con la directiva tls_allowed_dn_list en el archivo
libvirtd.conf.
Importante: los campos del sujeto deben estar en el mismo orden que ha utilizado para crear el certificado.
-
Reinicie el servicio de daemon libvirtd para que los cambios entren en vigor:
/etc/init.d/libvirtd restart
- Para cambiar la configuración del cortafuegos, acceda a la configuración de nivel de seguridad y añada el puerto TCP 16514 como puerto de confianza.
-
Para verificar que la gestión remota está funcionando, ejecute el mandato siguiente en el host A:
virsh -c qemu+tls://kvmhost.company.org/system list --all
Configuración del protocolo TCP
Utilice el protocolo TCP sólo para realizar pruebas.
Acerca de esta tarea
Procedimiento
- Inicie la sesión en host B.
- Edite el archivo /etc/libvirt/libvirtd.conf y asegúrese de que el parámetro listen_tcp está habilitado y de que el valor del parámetro tcp_port está establecido en el valor predeterminado 16509.
-
Edite el archivo /etc/libvirt/libvirtd.conf para establecer el parámetro auth_tcp en
none
. Este paso indica a TCP que no debe autenticar la conexión. -
Reinicie el daemon libvirt en el host B en modalidad de escucha ejecutándolo con el indicador --listen o editando
el archivo
/etc/sysconfig/libvirtdy eliminando el comentario de la líneaLIBVIRTD_ARGS="--listen". -
Para verificar la conexión, ejecute el mandato siguiente:
virsh -c qemu+tcp://kvmhost.company.org:port/system
Si no ha cambiado el puerto TCP predeterminado, omita la sección :port del mandato.
Importante: si el mandato virsh es satisfactorio, el Agente de Linux KVM se conectará al hipervisor.