http://blogs.vmware.com/vmtn/2016/02/vexpert-2016-award-announcement.html
# 本ブログをご覧頂きました皆様へ #
この場をお借りしましてお礼申し上げます。また、少しでも皆さんのHorizonライフにお役立て出来ているようであれば尚幸いです。今後ともどうぞよろしくお願い致します。
さて、今回の投稿はこれまで推しに推してきたRDSHではなく、Horizon for Linuxです。(笑
Horizon 6.2.1より、Linuxの仮想デスクトップでもシングルサインオンがサポートされたことをご存知でしょうか? # 逆にサポートされていなかったことを知らない方が多いかもしれませんが。。
Horizon 6.2.1のリリースノートはこちら(今日現在の最新バージョンは6.2.2です。)
https://pubs.vmware.com/Release_Notes/jp/horizon-6-view/horizon-621-view-release-notes.html
シングルサインオンはWindowsの仮想デスクトップでは当たり前ですし、ドメイン参加するくらいで特段何も設定しなくても実現可能ですが、Linuxとなるとそう簡単にはいきません。。
まず、現在シングルサインオンがサポートされるディストリビューションは以下となります。
RHEL 6.6 Workstation x64
CentOS 6.6 x64
次にActive Directoryと統合するための方法としては、以下がサポートされているようです。
OpenLDAPパススルー認証
Winbind
以下、公式ドキュメントへのリンクですが、詳細な手順については触れられておらず、統合方法についても「動作することが分かっています。」という表現に留まっています。
さあ、皆さんの力の見せ所です。(笑
Linux と Active Directory の統合
http://pubs.vmware.com/horizon-62-view/index.jsp#com.vmware.horizon-view.linuxdesktops.doc/GUID-D8E3A4AA-83E9-46A4-8BBA-824027146E93.html
ただ、Winbindを使って統合する場合、Linuxデスクトップをクローンから複数台展開する場合にドメイン参加に失敗するようで、OpenLDAPによる統合が推奨されるとのことです。。
統合方法についても「お任せ」ということなので、、今回は「SSSD」を使ってみました。
検証した結果としては・・・
問題なくシングルサインオンでLinux仮想デスクトップにログイン出来ました!
せっかくですので、細かい設定方法などをご紹介したいと思います。
例によって長文となりますので、、ご興味のある方は続きをどうぞ。
今回は、CentOS6.6(x64) でLinux仮想デスクトップを構成しました。
1. CentOSのセットアップ
vSphere Web Clientより、仮想マシン(今回は1vCPU/2GBRAM/20GBHDD)を作成します。
CentOSは"Desktop"でインストールしました。
Active Directoryとの統合に欠かせないのがDNS周りの設定となります。
まず、DNSサーバーにLinuxVMのAレコード、PTRレコードを登録しました。
"hostname --fqdn"できちんと名前解決出来る必要があるようなので、「/etc/hosts」、
「/etc/sysconfig/network」にもFQDNを登録します。
/etc/hosts
127.0.0.1 ssocentos.test.local ssocentos
192.168.34.40 ssocentos.test.local ssocentos
192.168.34.40 ssocentos.test.local ssocentos
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ssocentos.test.local
HOSTNAME=ssocentos.test.local
3. パッケージのインストール
以下のコマンドを実行し、必要なパッケージをインストールします。
# yum install ntp ntpdate sssd krb5-workstation oddjob-mkhomedir
パッケージ名 | 用途 |
ntp/ntpdate | 時刻同期用のパッケージモジュール |
sssd | sssdのベースパッケージ |
sssd-ad | sssdをADに対応させるためのパッケージ |
krb5-workstation | Kerberos認証用のパッケージ |
oddjob-mkhomedir | ホームディレクトリ自動作成用パッケージ |
4. 時刻同期
Kerberos認証は時刻のズレが大きいと認証が失敗してしまうため、ntpdateコマンドで時刻を同期します。
# ntpdate ntp.test.local
今回は検証のため現時点での時刻を合わせただけですが、実際にはきちんとNTPを立てて時刻同期を構成されることをオススメします。
5. Kerberosの設定
Kerberos認証を行うための設定を行います。
/etc/krb5.conf
[libdefaults]
default_realm = TEST.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = TEST.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
6. Sambaの設定
ドメイン参加を行うため、Sambaの設定を行います。
/etc/samba/smb.conf
[global]
workgroup = TEST
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
log file = /var/log/samba/%m.log
password server = dc00.TEST.LOCAL
realm = TEST.LOCAL
security = ads
7. ドメイン参加
以下のコマンドを実行し、ドメインに参加します。
# kinit Administrator
# net ads join -k -U Administrator
# klist -k
# net ads join -k -U Administrator
# klist -k
8. SSSDの設定
いよいよSSSDの設定を行います。
/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
domains = TEST.LOCAL
services = nss, pam, pac
[domain/TEST.LOCAL]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
cache_credentials = false
ldap_id_mapping = true
override_homedir = /home/%d/%u
default_shell = /bin/bash
case_sensitive = false
config_file_version = 2
domains = TEST.LOCAL
services = nss, pam, pac
[domain/TEST.LOCAL]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
cache_credentials = false
ldap_id_mapping = true
override_homedir = /home/%d/%u
default_shell = /bin/bash
case_sensitive = false
SSSDを起動する際にパーミッションがチェックされますので、以下のコマンドで変更します。
# chown roo:root /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.conf
以下のコマンドを実行し、SSSDを起動します。
# service sssd start
以下のコマンドを実行し、SSSDによる認証を有効化します。
# authconfig --update --enablesssd --enablesssdauth --enablemkhomedir
9. VMware tools インストール
vSphere Web Clientより、[ゲストOS]-[VMware Toolsのインストール]を選択します。
以下の画面が表示されますので、[マウント]ボタンをクリックします。
マウントされた"VMware Tools"をダブルクリックで開きます。
"VMwareTools-9.10.0-2476743.tar.gz"を選択し、右クリックメニューより"展開"を実行します。
展開先としてデスクトップを指定し、[展開(E)]ボタンをクリックします。
# cd /root/デスクトップ/vmware-tools-distrib
# sudo ./vmware-install.pl -d
# sudo ./vmware-install.pl -d
View用のテンポラリ領域をクーロンの対象ディレクトリに追加します。
/etc/cron.daily/tmpwatch
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' -X '/tmp/view*' 10d /tmp
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' -X '/tmp/view*' 10d /tmp
一時的なネットワーク停止からリカバリ出来るよう、nsswith.confのhosts項を修正します。
/etc/nsswitch.conf
hosts: cache db files dns
10. View Agent インストール
ここまできたら、後はView用の仮想デスクトップとして構成するだけです。
My VMwareよりView Agentをダウンロードし、右クリックメニューより展開を実行します。
展開先としてデスクトップを指定し、[展開(E)]ボタンをクリックします。
以下のコマンドを実行し、View Agentをインストールします。
# cd /root/デスクトップ/vmware-tools-distrib
# sudo ./install_viewagent.sh -b Connection Server FQDN -d Domain -u View Administrator Usename -p Password -A yes
# sudo ./install_viewagent.sh -b Connection Server FQDN -d Domain -u View Administrator Usename -p Password -A yes
以上でLinux仮想デスクトップ側の設定は完了です。
11. 再起動
View Agentを有効化するため、再起動します。
# reboot
12. デスクトッププールの作成
View Administratorにログインし、[View構成]-[登録済みのマシン]の"その他"タブにLinux仮想デスクトップが表示され、ステータスが"使用可能"となっていればセットアップは完了です。
動作確認用のデスクトッププールを作成します。
[カタログ]-[デスクトッププール]の順にクリックし、[追加]ボタンをクリックします。
タイプは"手動デスクトッププール"を選択し、[次へ]ボタンをクリックします。
マシンソースは"その他のソース"を選択し、[次へ]ボタンをクリックします。
デスクトッププールIDを入力し、[次へ]ボタンをクリックします。
デスクトッププールの設定を行い、[次へ]ボタンをクリックします。
プールに追加するマシン(Linux仮想デスクトップ)を選択し、[次へ]ボタンをクリックします。
設定内容を確認し、"このウィザード~"にチェックを入れ、[終了]ボタンをクリックします。
プールに資格情報を追加する画面が表示されますので、[追加]ボタンより、動作確認を行うユーザーもしくはグループを追加し、[閉じる]ボタンをクリックします。
以上で設定はすべて完了です。
Horizon Clientからシングルサインオンでログオン可能かどうかを見てみたいと思います。
Horizon Clientを起動し、接続先のConnection Serverをダブルクリックします。
ユーザー名/パスワードを入力します。
先ほど作成したLinuxデスクトッププールにアクセスします。
通常だと認証画面で止まってしまいますが、、一気にデスクトップまでログオン出来ました!!
Linuxもようやくシングルサインオンに対応したということで、何よりですね。
コスト面からLinuxの仮想デスクトップを選択されるお客様がにわかに増えてきている気がしますし、昨今流行り(?)のインターネット(ブラウザ)を分離するにはLinuxでも十分だと思います。
残る課題は、大規模展開時のスクリプト開発ですかね。。(Composer非対応のため。)
こちらはまたの機会にご紹介出来ればと思いますが、、機能追加、待ってます!!
こちらはまたの機会にご紹介出来ればと思いますが、、機能追加、待ってます!!
0 件のコメント:
コメントを投稿