タグ:Samba ( 6 ) タグの人気記事
VNXeのCIFS共有フォルダでフォルダ・ファイル操作ログを取る方法
EMCのエントリーストレージ VNXe3100 で、CIFS共有フォルダを使ってるんですが、ファイル操作ログを取る必要が出てきました。

Unishphereを見てもファイル操作ログを取るような設定がありません。
で、サポートの方に聞いてみたら、「CIFS共有フォルダでのEMC VNXeシステムの使用」ドキュメントの「Windows ツールによるVNXe CIFS共有フォルダストレージの管理」のページに説明があるとのことでした。


マニュアルは、VNXeサポートページにログインし、製品ごとのサポート→VNXe Series→ドキュメントからダウンロードできます。

マニュアルと見ると、Windowsの監査ログの機能を使って、ファイル操作ログが取れるようです。

通常のファイルアクセス監査ログを取る場合も、GPOかローカルグループポリシーエディタで監査機能を有効にする必要がありますが、VNXeも同様です。
今回は、GPOを使わずに設定することにしました。

その場合、Celerra DataMover セキュリティ設定スナップイン という拡張ソフト(拡張スナップイン)を入れる必要があるようです。

このソフトを探すのに苦労しました。
結局、ダウンロード→適当に製品選び→右側の 製品/サポート・ツール →検索窓に "cifs" で検索→ VNX File/CelerraCifsMgmt.exe をダウンロードできました。

32bit用なので、x86のWindowsにドメイン管理者権限で、インストールしてやる必要があります。


インストール後、mmc.exeを起動し、[ファイル]→[スナップインの追加と削除]→[追加]→[Data Mover Management]でスナップインを追加します。
コンソールルートに Data Mover Management が追加されているので、右クリック→[Connect to Data Mover...]で設定を行うVNXe上の共有フォルダサーバを指定します。


まずは、監査機能を有効にしてやる必要がるので、Data Mover Managementスナップインの、[Data Mover Security Setting]→[Audit Policy]を右クリックし、[Enabled auditing]にして、有効にします。(逆に無効にする場合は、[Disable auditing]にします)
後は、[Audit Policy]配下にあるどの監査を行うか設定します。
このあたりは、通常のグループポリシーで監査を行う場合と同じですね。英語なんでちょっとわかりにくいですが。。。
今回はファイルアクセス監査ログをとりたいので、[Audit object access]ポリシーで成功時、失敗時とも監査するようにしました。


後は、どのフォルダ・ファイルに対して監査するか設定します。
このあたりも通常のWindowsファイルサーバと同じで、フォルダのプロパティのセキュリティから、どのユーザで、どのアクションをした時にログに残すか設定します。
ただ、ファイル・フォルダ数が多いフォルダで、監査の設定をすると、反映するのに相当時間がかかりました。

監査ログは、コンピュータの管理スナップインを立ち上げ、VNXe上の共有フォルダサーバに接続し、セキュリティイベントログから確認できます。
イベントログのサイズ等も、通常のWindowsと同じようにセキュリティイベントログを選択し、プロパティから変更できます。

このイベントログの実体ファイル(security.evt)は、\\共有フォルダサーバ名\c$ 直下にあるようです。
実は,c$配下にはスナップショットデータもあったり,コンピュータの管理から、ログイン中のユーザや使用中のファイルがわかったりといろいろ面白い発見があります。

VNXeサービス情報を取得して中を見てると、Linuxを使っているようですが、このあたりのWindowsとの親和性が高いのも、安物のLinuxNASとは大違いですね。

参考:
ドメインコントローラでオブジェクトアクセス監査を有効にすると。。。
マイクロソフト サーバー製品の ログ監査ガイド 監査ログについてわかりやすく説明されています。
[PR]
by jehoshaphat | 2014-02-13 00:57 | サーバがらみ | Trackback | Comments(0)
(Linux)普通のsambaサーバ構築メモ
LinuxでSambaを使って、いわゆる一般的なスタンドアロン共有フォルダサーバ(ローカルパスワード認証)を構築するためのメモです。
CentOS6.3で、Sambaのバージョンは 3.5 です。


まず、smb.confを編集します。

# vi /etc/samba/smb.conf


[global]
workgroup = WORKGROUP
server string = 任意の文字列

#↓sambaサーバ名
netbios name = natsumikan

#↓アクセスを許可するネットワークアドレスを指定
hosts allow = 127. 192.168.77.

log file = /var/log/samba/log.%m
#↓ログサイズ(KB)
max log size = 1024

#認証設定
security = user

(※認証方式には以下がある。
share:共有を一種類の固定ユーザを使ってアクセス。パスワードだけでアクセス制御。
user:共有を個別のアカウント(またはゲストユーザ)を使ってアクセス。一般的なスタンドアロンの共有フォルダ。今回はこれを使用。
ads:共有を個別のアカウントを使ってアクセスするが、認証はActiveDirectoryドメインで行う。
domain:共有を個別のアカウントを使ってアクセスするが、認証はWindowsドメインで行う。
server:共有を個別のアカウントを使ってアクセスするが、WindowsNT,Smabaで認証を行う。

#↓プリンタは使わないので
load printers = no



あとはsmb.confの続きのところに共有の設定を書いていきます。
(今回は smb.conf に共有の設定を書きましたが、本来は別ファイルに定義した方がよいです。詳しくは、smb.confを編集して共有の作成をするべからずを参考に...)


(smb.conf続き)
[hoge]
comment = test_sahre
browseble = yes
path = /var/samba/share_dir/hoge
writable = yes
#↓読み書き可能なユーザ、またはグループを指定する
write list = @group1 , user1
#↓読み込みのみ可能なユーザ、またはグループを指定する
read list = user2
#↓アクセス可能なユーザ、またはグループを指定する
valid users = @group1 , user1 , user2
#↓明示的にアクセス拒否するユーザ、またはグループを指定する
invalid users
#↓ファイル作成時のマスクを8進数で設定。規定値は744
create mask = 777
#↓ディレクトリ作成時のマスクを8進数で設定。規定値は755
directory mask = 777
#↓大文字、小文字が混在する場合、全て小文字とみなす
default case = lower
#↓大文字、小文字が異なっていても区別せず同一ファイルとしてみなす
case sensitive = no
#↓Windows側が大文字、小文字を区別した場合、それに従う
preserve case = yes
(※グループを指定する時はグループ名の先頭に「@」が必要。)


security = user (ローカル認証)の場合は、共有フォルダにアクセスするためのUnixユーザを作成しておく必要があります。
共有フォルダアクセスだけが目的のユーザあれば、ホームディレクトリ必要ない+シェルログインさせる必要ないユーザを作成すればセキュリティ的にもいいでしょう。
以下のようにして、ホームディレクトリ必要ない+シェルログインさせる必要ないユーザを作成できます。

↓Unixユーザを作成
# useradd -d /dev/null -s /sbin/nologin username
↓Unixユーザのパスワード作成
# passwd username
↓sambaのアカウントを作成し、パスワードを設定
# smbpasswd -a username
New SMB password: (パスワード入力)
Retype new SMB password:(パスワード入力)

任意のユーザのパスワード変更する時は以下のコマンドにします。
# smbpasswd ユーザ名


sambaユーザ一覧を表示するには以下コマンドを使います。
# pdbedit -L



共有フォルダへのアクセスをグループ単位で制御するためには、グループを追加し、グループにユーザを所属する必要があります。

# groupadd gp_piyo  ←グループ作成
# usermod -G gp_piyo user_a  ←グループにユーザ追加


余談ですが、現在Samba接続しているセッション一覧を表示するにはsmbstatusコマンドでわかるようです。

# smbstatus
Unknown parameter encountered: "browseble"
Ignoring unknown parameter "browseble"

Samba version 3.5.10-125.el6
PID Username Group Machine
-------------------------------------------------------------------
3063 user_a user_a test-machine (::ffff:192.168.77.99)

Service pid machine Connected at
-------------------------------------------------------
hoge 3063 test-machine Fri Oct 5 00:23:45 2012

Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
3063 502 DENY_NONE 0x100081 RDONLY NONE /var/samba/share_dir/hoge . Fri Oct 5 00:23:45 2012



慣れれば簡単に構築できます。

参考:
Sambaサーバの設定
ASCII.jp:ファイルサーバの文字化けの解消方法は?|サーバトラブル解決のセオリー
利用ユーザの作成・削除
ユーザ・グループの管理 - Technical Tips -
[PR]
by Jehoshaphat | 2012-10-30 21:21 | Linux | Trackback | Comments(0)
(Linux)ActiveDirectoryと連携時に自動的にログインユーザ権限でWindows共有フォルダをマウントする
(Linux)ログイン時にActiveDirectoryのユーザ名・パスワードで認証できるようにするで、Linux認証をドメインユーザでできるようにしました。

今回は、この状態に加え、ログインしたドメインユーザのアクセス権で、Windowsのファイルサーバをマウントするための方法です。

通常のWindows共有フォルダのマウントなら下記のようにmountコマンドでできます。

mount -t cifs -o username=ドメインユーザ名,password=パスワード,domain=ドメイン名,iocharset=utf8 //サーバ名/共有フォルダ名 /マウント先

また、OS起動時にマウントするようにするには下記のように、/etc/fstab ファイルに追記します。

//サーバ名/共有フォルダ名 /マウント先 cifs username=ドメインユーザ名,passwordパスワード,domain=ドメイン名,iocharset=utf8,rw,file_mode=0555,dir_mode=0555 0 0

fstabファイルを使うようにすると、共有フォルダにアクセスするユーザが必ず固定になってしまいます。
ログイン後に、mount コマンドでパスワードを手入力さす方法もありますが(passwordオプションを指定しないと手入力になる)、ユーザからすると不便です。

Windowsのように、OSログイン時の権限で自動的に共有フォルダをマウントするようにしたいのが目的です。


いろいろ調査した結果、pam-mountを使うと可能なことが分かりました。

評価したLinuxは Ubuntu 系の軽量の EcoLinux 10.04 です。

既にSamba + Winbind で ActiveDirectoryと連携できていることを前提とします。

まずパッケージをインストールします。

# apt-get install libpam-mount
# apt-get install smbfs

今回入れたパッケージのバージョンは下記のとおりでした。
smbfs 2:3.4.7~dfsg-1ubuntu3.2
ibpam-mount 1.32-2


次に、pam_mountの設定ファイルにマウントの設定を記述します。
# vi /etc/security/pam_mount.conf.xml

<!-- Volume definitions --> の下に下記のようにマウントの定義を書きます。

<volume fstype="cifs"
server="dfssv01" path="nas" mountpoint="/mnt/dfs"
options="iocharset=utf8,dir_mode=0700,file_mode=0600">
<not>
<or>
<user>root</user>
<user>information</user>
</or>
</not>
</volume>


後は下記のpam設定ファイルに、pam_mountを使うよう設定を追記します。

# vi /etc/pam.d/common-auth
auth optional pam_mount.so try_first_pass
↑追記

# vi /etc/pam.d/common-session
session optional pam_mount.so
↑追記


これで再起動して、ドメインユーザでログインすると見事にそのユーザ権限でマウントされています。

今回はDFSをマウントしたんですが、Windowsサーバ側でDFSを使っているとDFSルートをマウントするだけでいいので楽ですね。


参考:
(3)ユーザーホームをマウントするように設定する(2010/9/10) 今回はなかなか情報が少なかったので、このサイトは非常に助かりました。
pam_mountを使ったログイン時における暗号化ファイルシステムの自動マウント - SourceForge.JP Magazine : オープンソースの話題満載
[PR]
by jehoshaphat | 2011-06-06 21:34 | Linux | Trackback | Comments(0)
(Linux)ActiveDirectory連携したSambaサーバでWinクライアントからSamba共有フォルダにシングルサインオン
(Linux)SambaでActiveDirectoryと連携する で、Linux(CentOS5.5)でSambaサーバを建てたときにパスワードの認証だけActiveDirectoryを使うということをしました。
しかし、この方法だと、WindowsクライアントからSambaサーバを使うユーザを、Linuxにいちいち登録しないといけません。
登録したとしても、Windows端末からSambaにアクセスすると、認証ダイアログボックスが表示されます。

Winbindを使うと、ユーザ情報もADを使えるので毎回Linuxに登録する必要がなくなり、Windows端末からのアクセス時にも、現在ログインしているユーザで認証を自動的に行うので認証ダイアログボックスが表示されません。(ActiveDirectoryの持ち味であるシングルサインオンとなるわけです。)

設定としては、/etc/samba/smb.conf にwinbindの設定を下記のように、追加します。

# vi /etc/samba/smb.conf

[global]
dos charset = CP932
display charset = UTF-8
workgroup = HOGEDOMAIN ←ドメインのNetBIOS名を大文字で指定
server string = Samba Server Version %v
passdb backend = tdbsam
load printers = No
disable spoolss = Yes
hosts allow =
cups options = raw
netbios name = SAMBASV ←sambaサーバ名
security = ads ←Active Directoryドメインで認証を行う
realm = HOGEDOMAIN.JP ←ActiveDirectoryのFQDNを大文字で指定

#-----↓ここからWinbindの設定を追加-------
idmap uid = 10000-50000 ←ADに登録されているユーザ数より多い範囲を指定。ドメインユーザはこの範囲でuidが振られる
idmap gid = 10000-50000 ←ADに登録されているグループ数より多い範囲を指定。グループはこの範囲でuidが振られる
winbind cache time = 15
winbind separator = + ←ドメイン名とユーザ名の区切り文字。\は問題があるらしいので+にしておく
winbind use default domain = yes ←Noにした場合は "ドメイン名(大文字)\ユーザー名" でログインすることが必要(区切り文字は"winbind separator"で指定した値)
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U ←ユーザのホームディレクトリをどこにするか。
template shell = /bin/false ←ユーザのデフォルトシェル。telnetやsshを使わさせないのでこの値とする。
password server = domainsv01.hogedomain.jp ←ドメインコントローラ
encrypt passwords = yes ←暗号化パスワードを使用する。必ずYES。
obey pam restrictions = yes

#-----↓共有フォルダの設定-------
[share01]
comment = テスト
path = /share
valid users = HOGEDOMAIN+user01 @hogedomain+group01 ←アクセス許可するグループとユーザ指定
read only = No
browseable = yes
writable = yes
available = yes



/etc/nsswitch.confも修正します。これにより、認証時にpasswdファイルだけでなく、winbindが使えるようになります。

# vi /etc/nsswitch.conf

passwd: files winbind ←winbind追加
shadow: files winbind ←winbind追加
group: files winbind ←winbind追加


これで、samba、winbindを起動、自動起動に設定します。

# service smb restart
# service winbind start
# chkconfig smb on
# chkconfig winbind on


下記コマンドでwinbindが動いているか確認します。

# wbinfo -t
checking the trust secret via RPC calls succeeded
↑"succeeded" と出ていれば成功。

# wbinfo -u ←アカウントの一覧を列挙する
HOGEDOMAIN\administrator
HOGEDOMAIN\guest
......

# id 'HOGEDOMAIN+user01' ←指定したアカウントのuidとgidを参照
uid=10000(HOGEDOMAIN+user01) gid=10022(HOGEDOMAIN+domain users)

# getent passwd 'HOGEDOMAIN+user01' ←指定したアカウントのpasswd情報を参照
HOGEDOMAIN\user01:*:10000:10022:sannryuu pg:/home/user01:/bin/false


これで、Windowsクライアントからからドメインユーザでログインし、共有フォルダにシームレスにアクセスできればOKです。

ちなみに、これらの設定は、(Linux)ログイン時にActiveDirectoryのユーザ名・パスワードで認証できるようにするの 8. のPAM認証以外の部分となります。



参考:
Active DirectoryとLinuxの認証を統合しよう:第5回 SambaのWinbind機構による認証統合[1]|gihyo.jp … 技術評論社
Samba が動作する Linux マシンを Windows ドメインに参加させる方法 ― MIRACLE LINUX V2.1 における Samba Winbind 利用方法 ―:ミラクル・リナックス
[PR]
by jehoshaphat | 2011-06-01 00:16 | Linux | Trackback | Comments(0)
(Linux)PuppyでWindows共有フォルダをマウントする
PuppyLinux4.31(kernel2.6.30.5)で、SambaClientを使ってWindowsマシンの共有フォルダにアクセスする方法です。

基本的には、(Linux)CentOSからWindows共有をマウントする方法 で書いたように mount を使えばOKです。

ただ、今回は接続するWindowsファイルサーバがWindowsドメインに属しているので、ActiveDirectory上のアカウントでログインします。

とりあえずまずIPアドレス指定でのアクセスです。

# mount -t cifs -o username=ユーザ名,password=パスワード,domain=ドメイン名,codepage=utf8,iocharset=utf8 //192.168.0.100/testdir /mnt/test

これでマウントできました。
codepage , iocharset は utf8 を指定しないと文字化けしてしまいました。
domain にファイルサーバが属しているドメイン名を指定すれば、ドメイン認証ができました。

共有フォルダ名が日本語の場合でもOKでした。
上記の例ではIPアドレス指定ですが、FQDNでもOKです。
ホスト名だけでアクセスするには、(Linux)LinuxでDNSサフィックスを設定する にあるように、/ete/resolv.conf にドメイン名設定するとOKです。
下記のような感じです。

FQDN名でのマウント
# mount -t cifs -o username=user001,password=1234,domain=hogehoge,iocharset=utf8 //filesv.hogehoge.jp/事務共有 /mnt/test

ホスト名でのマウント(/ete/resolv.conf 設定済み)
# mount -t cifs -o username=user001,password=1234,domain=hogehoge,iocharset=utf8 //filesv/事務共有 /mnt/test

mount.cifs を使ってもマウントできますが、その場合、書式が若干違います。

# mount.cifs //192.168.0.100/testdir /mnt/test -o username=user001,password=1234,domain=hogehoge,codepage=utf8,iocharset=utf8


参考:
mount.cifs
mount.cifsでの文字化け防止 - 間違いだらけの備忘録
mountコマンドでCIFSをファイル共有 - profaim.jp


で、今回の肝心の要件DFSアクセスを試してみました。
DFSはドメインベースで WindowsServer 2003 R2 上で構築しています。
もし、DFSがOKなら、あちこちに散らばっている共有フォルダ毎にマウントの設定をする必要なく、DFSルートだけマウントすればOKなので、非常に運用がしやすくなります。

というこことでPuppy4.31で試したんですが、DFSルートのマウントはできます。
しかし、ターゲットフォルダにリンクしているディレクトリを開くと、本来はターゲットフォルダ先のファイル・フォルダ一覧が見えないといけないのですが、空の状態になっています。


Fedora13だと何もしなくてもOKでした。
Ubuntu10.04は、CIFSマウントのパッケージを別途入れる必要がありました。apt-get install smbfs で、cifsにアクセスするためのパッケージが入ります。
(Ubuntu10.10だと別途入れるパッケージは cifs-utils にかわってました。)


Puppy5.1がUbuntu10.04のベース的な感じで書いてあったんで、Puppy5.1でも試してみました。

Puppy5.1でSambaアクセスに関係ありそうな以下のdebパッケージを入れました。

debconf_1.5.28ubuntu4
debconf-i18n-1.5.28ubuntu4
libocale-gettext-perl_1.05-6
libtext-charwidth-perl_0.04-6
libtext-iconv-perl_1.7-2
libtext-wrapi18n-perl_0.06-7
netbase_4.35ubuntu3
samba-common-3.4.7~dfsg
ucf_3.0025
util-linux_2.17.2
mount_2.17.2
keyutils_1.2-12
libsmbclient_3.4.7~dfsg
smbclient_3.4.7~dfsg
samba-common-bin_3.4.7~dfsg
smbfs_3.4.7~dfsg


下記はDFS成功したFedora13,Ubuntu10.04,Ubuntu10.10と、DFSがNGだったPuppyLinux5.1との各モジュールの比較です。

┌────────────────┬─────┬──────┬──────┬──────┬───────────┐
│ │Puppy5.1 │Ubuntu10.04 │Ubuntu10.10 │Fedora13 │バージョン確認コマンド│
│カーネル │2.6.33.2 │2.6.32-21 │2.6.35-22 │2.6.33.3-85 │uname -a │
│cifs.ko │1.62 │1.61 │1.64 │1.62 │modinfo cifs │
│mount.cifs │1.12-3.4.7│1.12-3.4.7 │4.5 │4.3.1 │mount.cifs -V │
│パッケージlibsmbclient │3.4.7 │3.4.7 │3.5.4 │3.5.2-60 │ │
│パッケージsmbclient │3.4.7 │3.4.7 │3.5.4 │3.5.2-60 │ │
│パッケージsmbfs │3.4.7 │3.4.7 │ │ │ │
│パッケージsamba-common │3.4.7 │3.4.7 │3.5.4 │3.5.2-60 │ │
│パッケージsamba-common-bin │3.4.7 │3.4.7 │3.5.4 │ │ │
│パッケージsamba-winbind-clients │ │ │ │3.5.2-60 │ │
│パッケージcifs-utils │ │ │4.5-2 │4.4-3 │ │
└────────────────┴─────┴──────┴──────┴──────┴───────────┘



Puppyの場合、他と比べても古いモジュールやパッケージを使ってるわけではないのでDFSアクセスできると思うのですが。。。

Samba-3.4.7-Lucid.petも入れてみましたが、ダメでした。
[PR]
by jehoshaphat | 2011-05-14 23:15 | Linux | Trackback | Comments(0)
(Linux)SambaでActiveDirectoryと連携する
CentOS5 上の Samba 3.0.33 ですが、Windows の ActiveDirectory と連携する方法です。
(SambaサーバをActiveDirecotryのメンバサーバとします)

なお、ドメインの情報は下記のとおりとします。
ドメイン名: hogedomain.jp
ドメインコントローラ1:hogedomaindc01.hogedomain.jp
ドメインコントローラ2:hogedomaindc02.hogedomain.jp
DNSサーバはドメインコントローラ上に構築。(ActiveDirectory統合)

まず /etc/krb5.conf を触ってActiveDirectory 認証のための Kerberos クライアントを設定します。


# vi /etc/krb5.conf

[libdefaults]
default_realm = HOGEDOMAIN.JP ←大文字にします。

[realms]
HOGEDOMAIN.JP ={ ←大文字にします。
kdc = hogedomaindc01.hogedomain.jp ←ドメインコントローラを指定します。
kdc = hogedomaindc02.hogedomain.jp ←ドメコンが複数台ある場合はこのように指定。
admin_server = hogedomaindc01.hogedomain.jp
default_domain = hogedomain.jp
}

[domain_realm]
.hogedomain.jp = HOGEDOMAIN.JP ←大文字にします。
hogedomain.jp = HOGEDOMAIN.JP ←大文字にします。

また、/etc/hosts ファイルに Samba サーバー自身のエントリを追加します。

# vi /etc/hosts
10.0.0.50 sambasv.hogedomain.jp sambasv


/etc/resolv.conf ファイルにDNSサーバと、ドメイン名を指定します。

#vi /etc/resolv.conf
nameserver 10.0.0.10
nameserver 10.0.0.11
search hogedomain.jp


また、下記のように smb.conf を設定します。

# vi /etc/samba/smb.conf

[global]
dos charset = CP932
display charset = UTF-8
workgroup = HOGEDOMAIN ←ドメインのNetBIOS名を大文字で指定
server string = Samba Server Version %v
passdb backend = tdbsam
load printers = No
disable spoolss = Yes
hosts allow =
cups options = raw
netbios name = SAMBASV ←sambaサーバ名
security = ads ←Active Directoryドメインで認証を行う
realm = HOGEDOMAIN.JP ←ActiveDirectoryのFQDNを大文字で指定

[homes]
comment = Home Directories
path = %H/samba
read only = No
browseable = No
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = no
recycle:versions = yes
recycle:touch = no
recycle:maxsize = 0
recycle:exclude = *.tmp ~$*



次に kinit コマンドで、管理者としてActiveDirectoryにアクセスしKerberos認証を行います。

# kinit administrator@HOGEDOMAIN.JP ←大文字にします。
Password for administrator@HOGEDOMAIN.JP: ←Windowsドメインのパスワードを入力します。


認証に失敗すると、下記のように表示されりします。

kinit(v5): Clock skew too great while getting initial credentials

その場合はLinuxの時刻がドメインコントローラとずれてないか確認しましょう。
ケルベロス認証は時刻をキーにしているので、ズレていると認証がうまくいきません。
下記ntpdateコマンドでドメインコントローラに同期すると便利です。

# ntpdate ドメインコントローラIP
19 Apr 17:00:20 ntpdate[14179]: step time server 10.10.0.11 offset -579.279315 sec



うまく認証できればプロンプトに戻ります。取得した Kerberos チケットは、下記のように klist コマンドで確認できます。

[root@sambasv ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@HOGEDOMAIN.JP

Valid starting Expires Service principal
09/16/10 13:50:44 09/16/10 23:50:48 krbtgt/HOGEDOMAIN.JP@HOGEDOMAIN.JP
renew until 09/17/10 13:50:44
09/16/10 13:51:20 09/16/10 23:50:48 hogedomaindc02$@HOGEDOMAIN.JP
renew until 09/17/10 13:50:44
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached


そして、net ads join でActiveDirectoryドメインに参加します。

[root@sambasv ~]# net ads join -U Administrator ←ドメイン参加権限を持ったユーザを指定します
Administrator's password: ←上記のユーザのパスワードを指定します。
Using short domain name -- HOGEDOMAIN
Joined 'SAMBASV' to realm 'HOGEDOMAIN.JP'

これで、ドメインコントローラ上で「Active Directory ユーザーとコンピュータ」から確認すると、SAMBASV がコンピュータの所に追加されているはずです。

SMBサービスを再起動します。

# service smb restart



後は、sambaサーバ上にWindows側からアクセスを行うユーザーを登録します。
(※認証を行うのをADにしているだけなので、Unixユーザは必要となります。ただし、Winbindを使うとユーザ情報を直接ADから取得するのでこの作業は不要になります。windindを使ってユーザ情報もADから取得する方法については、(Linux)ActiveDirectory連携したSambaサーバでWinクライアントからSamba共有フォルダにシングルサインオンを参照。
)

# useradd -m hogeuser01

これでドメイン参加してるWindows端末で、上記で登録したユーザ名(hogeuser01)でログインし、SambaサーバにExplorerにアクセスする共有フォルダが見えるはずです。
(ドメインの別ユーザでログインすると認証ダイアログが出てきます。その時はユーザ名に、hogedmain\hogeuser01 と、ドメイン名を明示しないといけないのが注意点です。)

余談ですが、設定中にどうもsambaが落ちてるような感じでした。
restart させると失敗します。

[root@sambasv ~]# service smb restart
SMB サービスを停止中: [失敗]
NMB サービスを停止中: [ OK ]
SMB サービスを起動中: [ OK ]
NMB サービスを起動中: [ OK ]

sambaのログを見てみると、下記のようになっていました。

# /var/log/samba/smbd.log

[2010/09/16 15:44:13, 0] lib/util.c:log_stack_trace(1759)
BACKTRACE: 7 stack frames:
#0 smbd(log_stack_trace+0x2d) [0x4a9bbd]
#1 smbd(smb_panic+0x5d) [0x4a9ced]
#2 smbd [0x45ac10]
#3 smbd(initialize_password_db+0xe) [0x45ac5e]
#4 smbd(main+0x655) [0x587135]
#5 /lib/libc.so.6(__libc_start_main+0xdc) [0x887e9c]
#6 smbd [0x2ad871]
[2010/09/16 15:44:13, 0] lib/fault.c:dump_core(181)
dumping core in /var/log/samba/cores/smbd

原因は、/etc/samba/smb.conf の passdb backend の値が正しいもので無かったからのようです。
解明するのに結構時間かかりましたよ。。


結構設定に時間かかりました。
sambaはマイナーバージョンでも結構設定変わったりするらしいので大変です。

参考:
Samba で Active Directory を使った認証を実現するには
@IT:Samba 3.0の全貌 改訂版[後編]
Active DirectoryとLinuxの認証を統合しよう:第5回 SambaのWinbind機構による認証統合[1]|gihyo.jp
Windowsドメインのパスワードで Linuxにもログインできるようにする
SambaとActiveDirectory - あるシステム管理者の日常
[samba-jp:20065] Re: samba-3.0.28でwinbindが起動できない。
Turbolinux 11 Server: ユーザーガイド Active Directory への参加
smb.conf
Samba サーバのタイプと smb.conf ファイル
[PR]
by jehoshaphat | 2011-02-10 23:11 | Linux | Trackback(1) | Comments(1)