As Good A Place As Any

Tim Thomas's Blog

Sunday Apr 27, 2008

OpenSolaris CIFS サーバーをドメインモードで構成

最近、「OpenSolaris CIFS サーバーをワークグループモードで構成」というブログを書きました。今回はこの手順を Active Directory 環境で行なってみました。

前回と同様、Sun Fire X4500 に Solaris Nevada build 86 をインストールして作業しています。

root@isv-x4500b # uname -a
SunOS isv-x4500b 5.11 snv_86 i86pc i386 i86pc

使用したコマンドやシステムのファイルはほぼそのまま記載しましたが、一部のフィールドはこの記事のために編集しています。

1. OpenSolaris サーバーを Active Directory ドメインサーバーの DNS クライアントとして構成する

このためには /etc/resolv.conf ファイルを作成または修正し、Active Directory ドメインコントローラに対して検索を行うようにします。

root@isv-x4500b # cat /etc/resolv.conf
domain sspg.central.sun.com
nameserver 192.168.2.1
search sspg.central.sun.com central.sun.com

次に /etc/nsswitch.conf ファイルを設定し、DNS 経由でホストが解決されるようにします。既存の /etc/nsswitch.conf ファイルを修正するか、単に /etc/nsswitch.dns /etc/nsswitch.conf にコピーします。

DNS が正常に動作していることを確認するために、既知のホストを nslookup で検索する簡単なテストを行うのもよいでしょう。

2. Kerberos を設定する

/etc/krb5/krb5.conf ファイルを編集し、使用している環境に合わせながら次のようにフィールドを設定します。次に記載してあるのは /etc/krb5/krb5.conf ファイルの一部だけです。マニュアルの 42 ~ 43 ページに手順が詳しく説明されています。

<-- 省略 -->
[libdefaults]
        default_realm = SSPG.CENTRAL.SUN.COM

[realms]
        SSPG.CENTRAL.SUN.COM = {
                kdc = domaincontroller.sspg.central.sun.com
                admin_server = domaincontroller.sspg.central.sun.com
                kpasswd_server = domaincontroller.sspg.central.sun.com
                kpasswd_protocol = SET_CHANGE
        }

[domain_realm]
        .sspg.central.sun.com = SSPG.CENTRAL.SUN.COM
<-- 省略 -->

3. 使用しているサーバーの時計をドメインコントローラと同期させる

これは見落としやすい手順です。あとで Kerberos の初期化で問題が発生し、ドメインに参加できない可能性があります。実際、筆者の身にも起こりました。

マニュアルの 43 ページでは時計を同期させる方法をいくつか説明していますが、筆者は次の方法で行いました。

root@isv-x4500b # ntpdate domaincontroller.sspg.central.sun.com

4. CIFS サービスを開始する

root@isv-x4500b # svcadm enable -r smb/server
svcadm:svc:/milestone/network depends on svc:/network/physical, which has multiple instances.

このメッセージは無視してかまいません。

5. ドメインに参加する

この手順を完了するには、ドメインで Administrator 権限を持つ Active Directory ユーザーの名前 (この場合 aduser) とパスワードを入手しておく必要があります。

この部分で筆者はしばらく立ち往生しました。マニュアルの 43 ページで sharectl を使用していますが、ここでは余分な手順が説明されているとみられ、うまくいきませんでした。結局、次の方法で解決しました。

root@isv-x4500b # smbadm join -u aduser sspg.central.sun.com
Enter domain password:
Joining 'sspg.central.sun.com' ... this may take a minute ...
Successfully joined domain 'sspg.central.sun.com'

もし失敗した場合、手順 3 を実行したか確認してください。サーバー間の時間差が大きすぎるときにドメインに参加しようとした場合、システムログに Kerberos のメッセージが残ります。これが原因ではなければ、Troubleshooting Guide を参照してください。

6. CIFS サーバーを停止および開始する

root@isv-x4500b # svcadm disable smb/server
root@isv-x4500b # svcadm enable -r smb/server
svcadm:svc:/milestone/network depends on svc:/network/physical, which has multiple instances.

7. ZFS ファイルシステムを作成する

筆者はすでに tank という ZFS ストレージ��ールを作成してあります。

root@isv-x4500b # zfs create -o casesensitivity=mixed tank/cifs1

8. SMB 経由で ZFS ファイルシステムを共有し、共有名をカスタマイズする

root@isv-x4500b # zfs sharesmb=on tank/cifs1

デフォルトの共有名は tank_cifs1 になります。次のようにすると、これを cifs1 に変更できます。

root@isv-x4500b # zfs sharesmb=name=cifs1 tank/cifs1

これは sharemgr を使用すると確認できます。

root@isv-x4500b # sharemgr show -vp
default nfs=()
zfs
    zfs/tank/cifs1 smb=()
          cifs1=/tank/cifs1

9. 共有ディレクトリにアクセス権を設定する

筆者は、2 台の Windows クライアントから Active Directory の登録ユーザーで共有にアクセスしようと考えていました。共有ディレクトリでアクセス権を設定し、アクセス上の問題が発生しないようにしました。

root@isv-x4500b # chmod 777 /tank/cifs1

この手順をもっと簡潔に行えるようにするには、Solaris CIFS Administrators Guide に記述されているように、ZFS ACL や ID マッピングについてさらに実験を重ねる必要があります。これについては今後考察してみます。

10. 共有にアクセスする

Microsoft Windows Server 2003 が稼働している 2 台のクライアント (client 1client 2) から共有にアクセスします。

2 台とも CIFS サーバーと同じ Active Directory ドメインのメンバーです。各サーバーに対し、別々の Active Directory 登録ユーザーとしてログインします。つまり、user1client1 にログインし、user2client2 にログインします。

共有を両方のクライアントに対してマップします。

共有をマップ

共有をマップしたとき、ワークグループのときのようにユーザー ID とパスワードを要求されることはありませんでした。しかしシステムログを見ると認証が行われており、共有に対する rw アクセス権限がユーザー [SSPG\user1][SSPG\user2] に付与されています。

Apr  8 05:49:30 isv-x4500b smbsrv:NOTICE: smbd[SSPG\user1]: cifs1 rw access granted
Apr  8 05:49:53 isv-x4500b smbsrv: NOTICE: smbd[SSPG\user2]: cifs1 rw access granted

両方のクライアントから問題なく同じ共有ディレクトリを参照したり、そこにファイルやフォルダを作成したりできました。

詳細情報

OpenSolaris Project: CIFS Server のホームページ

Open Solaris CIFS Documentation と、Solaris CIFS Administrators GuideTroubleshooting Information

また Open Solaris Storage Discuss Forum への参加もご検討ください

Comments:

Post a Comment:
Comments are closed for this entry.
A Day At The Seaside

Calendar

About Me

View Tim Thomas's profile on LinkedIn

Available in

English

简体中文

日本語

Feeds

Search

Links

Navigation