黑帽联盟

 找回密码
 会员注册
查看: 1640|回复: 0

[资源教程] 基于sasl认证配置libvirt

[复制链接]

302

主题

18

听众

1016

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 16:35
  • 签到天数: 413 天

    [LV.9]以坛为家II

    前提:使用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


    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部