KVM之三:KVM集群远程控制方案

KVM集群远程控制方案

 

1、API角色上的操作(管理证书)

  创建临时目录,以将文件和更改保存到其中:

    mkdir /opt/cert_file
    cd /opt/cert_file

  使用 openssl 命令创建 2048 位 RSA 密钥:

   openssl genrsa -out cakey.pem 2048

  使用该密钥针对本地 CA 创建自签名证书:

这里参数: 按需修改:/C=CN/L=GDFS/O=EFLY/CN=KVM CA

  openssl req -new -x509 -days 1095 -key cakey.pem -out cacert.pem -sha256 \

-subj "/C=CN/L=GDFS/O=EFLY/CN=KVM CA"

  检查 CA 证书:

   openssl x509 -noout -text -in cacert.pem
创建客户端和KVM服务端的证书

  1、创建密钥:

 openssl genrsa -out serverkey.pem 2048

 openssl genrsa -out clientkey.pem 2048

  为服务器创建证书签名请求。

这里默认是用代理映射端口, 所以CN需要设置为集群名(IP也可以), 而不是KVM的hostname

 openssl req -new -key serverkey.pem -out serverkey.csr \

      -subj "/C=CN/O=EFLY/CN=${KVM}"

 exp: openssl req -new -key serverkey.pem -out serverkey.csr \

      -subj "/C=CN/O=EFLY/CN=KVM_PROXY"

  为客户机创建证书签名请求:

openssl req -new -key clientkey.pem -out clientkey.csr \

-subj "/C=CN/O=EFLY/OU=virtualization/CN=root"

  创建客户机和服务器证书

 openssl x509 -req -days 3650 -in clientkey.csr -CA cacert.pem -CAkey cakey.pem \

      -set_serial 1 -out clientcert.pem

 openssl x509 -req -days 3650 -in serverkey.csr -CA cacert.pem -CAkey cakey.pem \

      -set_serial 94345 -out servercert.pem

  检查密钥:

 openssl rsa -noout -text -in clientkey.pem

 openssl rsa -noout -text -in serverkey.pem

  检查证书:

 openssl x509 -noout -text -in clientcert.pem

 openssl x509 -noout -text -in servercert.pem

2、服务端

 
  1、将认证中心 (CA) 证书 cacert.pem 文件复制到 /etc/pki/CA/cacert.pem

scp [proxy_ip]:/path/cacert.pem /etc/pki/CA/cacert.pem

  2、创建 /etc/pki/libvirt 目录。将 servercert.pem 服务器证书文件复制到 /etc/pki/libvirt/servercert.pem。创建 /etc/pki/libvirt/private 目录。将 serverkey.pem 服务器密钥文件复制到 /etc/pki/libvirt/private/serverkey.pem 目录。确保只有 root 用户才能够访问专用密钥。

mkdir /etc/pki/libvirt

scp [proxy_ip]:/path/servercert.pem /etc/pki/libvirt/.

mkdir /etc/pki/libvirt/private

scp [proxy_ip]:/path/serverkey.pem /etc/pki/libvirt/private/.

chmod -R o-rwx /etc/pki/libvirt/private

  验证这些文件是否已正确放置:

find /etc/pki/CA/*|xargs ls -l

ls -lR /etc/pki/libvirt

  3、配置libvirt

  生成 /etc/default/libvirtd 文件和 /etc/libvirt/libvirtd.conf 文件的副本。

  编辑 /etc/default/libvirtd 文件

# Start libvirtd to handle qemu/kvm:

start_libvirtd="yes"

# options passed to libvirtd, add "-l" to listen on tcp

-  libvirtd_opts=""

+  libvirtd_opts="-l"

ps:- 是修改前内容, + 是修改后内容

  4、 编辑 /etc/libvirt/libvirtd.conf 文件,并在 libvirtd.conf 文件中使用 tls_allowed_dn_list 伪指令配置一组允许的主题。以下示例显示原始文件中的更改。它将可接受的客户机证书限制为具有 O=IBM,OU=virtualization 值的证书,而系统可能会对国家或地区 (C) 和公共名 (CN) 分配任何值。主题中字段的顺序必须与您创建证书时使用的顺序相同。

- #tls_allowed_dn_list = ["DN1", "DN2"]

+tls_allowed_dn_list =     ["C=*,O=EFLY,OU=virtualization,CN=*"]

- listen_tcp = 0

+ listen_tls = 1

+ tls_port = "16514"

  重新启动 libvirtd 守护程序服务,以使更改生效:

$ /etc/init.d/libvirtd restart

Stopping libvirtd daemon:                                  [  OK  ]

Starting libvirtd daemon:                                  [  OK  ]

3、客户端操作

  1、 将认证中心 (CA) 证书 cacert.pem 从 PowerKVM 主机复制到管理站 /etc/pki/CA/ 目录。请勿变更文件名。

  scp [proxy_ip]:/path/cacert.pem /etc/pki/CA/

  2、将客户机证书 clientcert.pem 复制到 /etc/pki/libvirt/ 目录,并将客户机密钥 clientkey.pem 从 PowerKVM 主机复制到 /etc/pki/libvirt/private/ 目录。使用缺省文件名称,并确保只有 root 用户才能够访问专用密钥。

mkdir -p /etc/pki/libvirt/

scp [proxy_ip]:/path/clientcert.pem /etc/pki/libvirt/.

mkdir /etc/pki/libvirt/private

scp [proxy_ip]:/path/clientkey.pem /etc/pki/libvirt/private/.

chmod -R o-rwx /etc/pki/libvirt/private

  3、验证这些文件是否已正确放置:

ls -lR /etc/pki/libvirt/

 4、设置hosts

这里主要是libvirt tls远程需要域名解析,与上面证书的CN值有关

vim /etc/hosts

10.10.250.35 KVM_PROXY

4、设置代理

可以使用nginx 或者 haproxy等工具,如haproxy

apt-get install haproxy

vim /etc/haproxy/haproxy.cfg


  listen kvm-proxy-35

  bind 0.0.0.0:16515

  mode tcp

  use_backend kvm-tls-35

backend kvm-tls-35

  mode tcp

  server kvm-tls-35 10.10.250.35:16514

  启动haproxy

service haproxy restart

  验证连通

root@KvmApiServer:~# virsh -c qemu+tls://KVM_PROXY:16515/system hostname

ubuntu-kvm35

返回正常, 则完成远程

 

5、Sasl认证

 (1)libvirt sasl配置在/etc/sasl2/libvirt.conf,Tls是tcp的加密传输协议,所以mech_list:需要设置成digest-md5。

vim /etc/sasl2/libvirt.conf

- #sasldb_path: /etc/libvirt/passwd.db

+ sasldb_path: /etc/libvirt/passwd.db

- mech_list: gssapi

# mech_list: gssapi

mech_list: digest-md5   # mandatory for TCP connections

 (2)创建用户

root@ubuntu-kvm35:/etc/libvirt# saslpasswd2 -a libvirt efly

Password:

Again (for verification):

 (3)指定密码库

root@ubuntu-kvm35:/etc/sasl2# sasldblistusers2 -f /etc/libvirt/passwd.db

efly@ubuntu-kvm35: userPassword

 (4)重启libvirtd

systemctl restart  libvirtd

 (5)测试连接

root@KvmApiServer:~# virsh -c qemu+tls://KVM_PROXY:16515/system hostname

Please enter your authentication name: efly

Please enter your password:

ubuntu-kvm35
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容

  • CA和证书安全协议(SSL/TLS)OpenSSH 一、CA和证书 (一) PKI(Public Key Infr...
    哈喽别样阅读 1,385评论 0 0
  • 什么是我们所向往的生活?是大城市的华灯璀璨,还是小城镇的朴实无华。每个人心中都有自己的答案,因为每个人都有自己的心...
    安夏如默阅读 340评论 0 1
  • 今天是三月最后的一天,中午教授来给我们培训了要资源的方法,听的很投入,也满怀激情,但出门的时候过程却不禁人意,一开...
    安迪jon阅读 208评论 2 3
  • 很长一段时间忘记了自己,每天做着同样的事情,甚至吃着同样的午餐。不想说话不想动。我看着镜子里的我,陌生得不像话...
    D061张琴阅读 109评论 0 0
  • 和之前四集《辉煌中国》里展现的这十年来建成的宏大工程相比,这第五集展示给我的东西是和我们每一个人的生活息息相关的。...
    行时走光阅读 5,356评论 0 2