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

El Agente de Linux KVM se conecta de forma remota a cada hipervisor utilizando la herramienta virsh que gestiona las máquinas virtuales QEMU-KVM y recopila métricas. La API libvirt del entorno de agente utiliza varios protocolos de transporte remoto diferentes. Para obtener la lista de protocolos soportados, consulte la página de soporte remoto.

Configuración del protocolo SSH

Puede configurar el protocolo SSH para supervisar un host de forma remota.

Acerca de esta tarea

Asunción: el Agente de Linux KVM está instalado en el host A. Desea supervisar remotamente el hipervisor en el host B.

Procedimiento

  1. 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.
  2. 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.
  3. 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

  4. 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

  5. Copie de nuevo las claves autorizadas en el host B:

    $ scp ~/.ssh/claves_autorizadas_de_B Id de B@name o dirección IP de host B:~/.ssh/claves_autorizadas

    Recuerde: si está supervisando varios hosts, repita los pasos 3, 4 y 5 para cada host.
  6. Elimine las claves autorizadas que ha copiado en el host B:

    ~/.ssh/claves_autorizadas_de_B

  7. 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 (').
  8. Añada la identidad al host A y especifique la contraseña que ha utilizado al crear el ID:

    $ ssh-add ~/.ssh/id_rsa

  9. 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

  10. 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

  11. 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.
  12. 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

Asunción: el Agente de Linux KVM está instalado en el host A. Desea supervisar remotamente el hipervisor en el host B.

Procedimiento

  1. Para crear una clave de una entidad emisora de certificados (CA) y un certificado en el hipervisor, siga estos pasos:
    1. Inicie la sesión en host B.
    2. Cree un directorio temporal y cambie la vía de acceso a este directorio temporal:

      mkdir cert_files

      cd cert_files

    3. Cree una clave RSA de 2048 bits:

      openssl genrsa -out cakey.pem 2048

    4. 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"

    5. Compruebe el certificado de la CA:

      openssl x509 -noout -text -in cacert.pem

  2. Para crear las claves y certificados de cliente y servidor en el hipervisor, siga estos pasos:
    1. Cree las claves:

      openssl genrsa -out serverkey.pem 2048

      openssl genrsa -out clientkey.pem 2048

    2. 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"

    3. 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"

    4. 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.pem

      openssl x509 -req -days 365 -in serverkey.csr -CA cacert.pem \
      -CAkey cakey.pem -set_serial 94345 -out servercert.pem

    5. Compruebe las claves:

      openssl rsa -noout -text -in clientkey.pem

      openssl rsa -noout -text -in serverkey.pem

    6. Compruebe los certificados:

      openssl x509 -noout -text -in clientcert.pem

      openssl x509 -noout -text -in servercert.pem

  3. Para distribuir las claves y certificados al servidor de host, siga estos pasos:
    1. Copie el archivo cacert.pem del certificado de CA en este directorio: /etc/pki/CA

      cp cacert.pem /etc/pki/CA/cacert.pem

    2. 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á.
    3. 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á.
    4. 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á.
  4. Para distribuir las claves y certificados a los clientes o estaciones de gestión, siga estos pasos:
    1. Inicie la sesión en host A.
    2. 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/

    3. 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á.
    4. 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á.
    5. Verifique que los archivos se han colocado correctamente:

      ls -lR /etc/pki/libvirt

      ls -lR /etc/pki/libvirt/private

  5. Para editar la configuración del daemon libvirtd, realice los pasos siguientes:
    1. Inicie la sesión en host B.
    2. Haga una copia del archivo /etc/sysconfig/libvirtd y del archivo /etc/libvirt/libvirtd.conf.
    3. 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.
    4. 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.
    5. Reinicie el servicio de daemon libvirtd para que los cambios entren en vigor:

      /etc/init.d/libvirtd restart

  6. 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.
  7. 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

Asunción: el Agente de Linux KVM está instalado en el host A. Desea supervisar remotamente el hipervisor en el host B.

Procedimiento

  1. Inicie la sesión en host B.
  2. 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.
  3. 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.
  4. Reinicie el daemon libvirt en el host B en modalidad de escucha ejecutándolo con el indicador --listen o editando el archivo /etc/sysconfig/libvirtd y eliminando el comentario de la línea LIBVIRTD_ARGS="--listen".
  5. 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.

Qué hacer a continuación

Configure el agente siguiendo los pasos descritos en la sección Configuración de una conexión con el servidor RHEVH.