リモート環境構築手順
ベース:http://libvirt.org/remote.html
※作業は認証局の設定、クライアント・サーバの秘密鍵/証明書発行まではひとつのマシンで行うこと。
発行後、クライアント・サーバの秘密鍵/証明書をクライアント/サーバのそれぞれのディレクトリに
配置すること。
○必要条件
gnutls-utilsパーッケージが入っていること。
@認証局設定
1.認証局の秘密鍵作成
# certtool --generate-privkey > cakey.pem
2."ca.info"というファイルを以下の内容で作成
cn = <組織名> 例:TFL
ca
cert_signing_key
3.認証局の証明書作成
# certtool --generate-self-signed --load-privkey cakey.pem --template ca.info --outfile cacert.pem
4.ここまでの手順で以下の2ファイルが作成されているはず
cakey.pem − 認証局の秘密鍵
cacert.pem − 認証局の証明書
5.cacert.pemをクライアントとサーバの/etc/pki/CA/配下に配置
Aサーバの秘密鍵/証明書発行
1.サーバの秘密鍵作成
# certtool --generate-privkey > serverkey.pem
2."server.info"というファイルを以下の内容で作成
organization = <組織名> 例:TFL
cn = <サーバのFQDN> 例:vancouver.sd.tfl.fujitsu.com
tls_www_server
encryption_key
signing_key
3.サーバの証明書作成(認証局の秘密鍵、証明書が必要)
# certtool --generate-certificate --load-privkey serverkey.pem --load-ca-certificate cacert.pem --load-ca-privkey cakey.pem --template server.info --outfile servercert.pem
4.ここまでの手順で以下の2ファイルが作成されているはず
serverkey.pem − サーバの秘密鍵
servercert.pem − サーバの証明書
Bクライアントの秘密鍵/証明書発行
1.クライアントの秘密鍵作成
# certtool --generate-privkey > clientkey.pem
2."client.info"というファイルを以下の内容で作成
country = <カントリーコード(二字)> 例:JP
state = <州/県> 例:Toyama
locality = <地域/地方> 例:Toyama
organization = <組織名> 例:TFL
cn = <クライアント名> 例:sanji.sd.tfl.fujitsu.com
tls_www_client
encryption_key
signing_key
3.クライアントの証明書作成(認証局の秘密鍵、証明書が必要)
# certtool --generate-certificate --load-privkey clientkey.pem --load-ca-certificate cacert.pem --load-ca-privkey cakey.pem --template client.info --outfile clientcert.pem
4.ここまでの手順で以下の2ファイルが作成されているはず
clientkey.pem − クライアントの秘密鍵
clientcert.pem − クライアントの証明書
Cそれぞれの秘密鍵/証明書をvirshを実行するクライアント/サーバに配置する。
また、サーバ側はlibvirtdの設定を行う。
(サーバ側)
1.A. 4で作成したファイルを以下に配置
serverkey.pem − /etc/pki/libvirt/private/配下
servercert.pem − /etc/pki/libvirt/配下
2.serverkey.pemのアクセス権限を600に設定(pki_check.sh)
# chmod 600 /etc/pki/libvirt/private/serverkey.pem
3.libvirtdの設定(/etc/sysconfig/)変更
#LIBVIRTD_ARGS="--listen" のコメントを外す
4.libvirtd再起動(restartだとなぜか6が有効にならないのでstop⇒start)
# /etc/init.d/libvirtd stop
# /etc/init.d/libvirtd start
(クライアント側)
1.B. 4で作成したファイルを以下に配置
clientkey.pem − /etc/pki/libvirt/private/配下
clientcert.pem − /etc/pki/libvirt/配下
※: windows版のlibvirtを試す場合は現在のところ、以下の場所に配置(2008/01/09追記)
clientkey.pem − C:\msys\1.0\local\etc\pki\libvirt\private\配下
clientcert.pem − C:\msys\1.0\local\etc\pki\libvirt\配下
cacert.pem − C:\msys\1.0\local\etc\pki\CA
その他:
1.http://libvirt.org/pki_check.sh に作成したファイルのチェックスクリプトがあるので
サーバ/クライアントの設定終了後に実行すると良い
2./etc/sysconfig/libvirtd の LIBVIRTD_ARGS を LIBVIRTD_ARGS="--listen --verbose"にすると
ログが出ると書いてあるが、どこにログがあるのかは不明(/var/log/messageかも)
3./etc/libvirt/libvirtd.conf でlibvirtdの設定を変更可能
⇒秘密鍵や証明書のパスを変更することも可能