黑帽联盟

标题: 基于sasl认证配置libvirt [打印本页]

作者: admin    时间: 2023-10-26 17:13
标题: 基于sasl认证配置libvirt
前提:使用virsh管理kvm虚拟机的时候出现需要使用密码


一、修改libvirtd配置
1.1修改 /etc/libvirt/libvirtd.conf :
  1. listen_tls = 0   #来禁用该伪指令(因为没有配置任何 TLS 证书)。否则,libvirtd 守护程序启动会失败
  2. listen_tcp = 1  #来启用该伪指令
  3. tcp_port = "16509"  #默认端口
  4. auth_tcp = "sasl" #配置伪指令设置为 sasl,以启用通过 TCP 进行 SASL 认证

  5. #如果启用tls,配置如下
  6. auth_tls = "sasl"
复制代码
1.2 修改/etc/sysconfig/libvirtd
  1. #开启tcp端口
  2. LIBVIRTD_ARGS="--listen"
复制代码
二、添加sasl2配置
2.1 设置加密方式 /etc/sasl2/libvirt.conf
  1. mech_list:digest-md5
  2. sasldb_path: /etc/libvirt/passwd.db
复制代码
2.2 安装所需依赖包:
  1. #一般我会把所有包装上 yum install cyrus-sasl*
  2. yum install cyrus-sasl-md5-2.1.26-21.el7.x86_64 cyrus-sasl-devel-2.1.26-21.el7.x86_64
复制代码
三、重启libvirtd
  1. #如果调试或者没生效使用:libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf
  2. systemctl restart libvirtd
复制代码
四、添加用户
注意这里必须是libvirt,这是application的名字,只有输入libvirt,才会使用配置/etc/sasl2/libvirt.conf,结果才会写到/etc/libvirt/passwd.db
  1. # saslpasswd2 -a libvirt admin
  2. Password:
  3. Again (for verification):
复制代码
如果使用qemu+tcp://连接,则应该enable digest-md5,这样交互会被加密。
如果使用qemu+tls://连接,则应该disable digest-md5,这样交互就不会被md5加密一次,然后再被TLS加密一次
  1. # virsh -c qemu+tcp://localhost/system nodeinfo
  2. Please enter your authentication name:
  3. Please enter your password:
  4. CPU model:           x86_64
  5. CPU(s):              24
  6. CPU frequency:       1999 MHz
  7. CPU socket(s):       1
  8. Core(s) per socket:  6
  9. Thread(s) per core:  2
  10. NUMA cell(s):        2
  11. Memory size:         134171180 KiB
复制代码
注意:如果 KVM 主机正在运行防火墙,请确保该防火墙允许传入的流量通过 libvirtd 守护程序 TCP 侦听端口。在缺省情况下,该侦听端口为 16509


文章转载自:https://blog.51cto.com/foxhound/2051024







欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5