- PR -

ActiveDirectoryとSambaの連携、Winbindがうまくいかない

投稿者投稿内容
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-19 16:08
こんにちは。

以前Windowsの方で質問させて頂いておりましたが、
内容がLinuxよりになったので、スレッドを変えて書き込みをさせて頂きます。
過去同じようなスレッドがあり、確認しましたが、解決には至りませんでした。

DCはWindows2003Serverで、
SambaサーバはCentOS4.3で、Sambaバージョンはsamba-3.0.10-1.4E.6になります。

クライアントPC(WinXP)より、ドメインに参加し、
Sambaサーバ上のホームをマイドキュメントへマウントしたいというのが
最終目標でして、以前の相談の際、KAZ様よりWinbindの使用を提案頂き
今回やってみたのですが、うまくいかないので、下記に詳細を記載致します。

PDC:
hostname=DC
domain=test.com

Samba:
hostname=samba

[smb.conf]※有効部分のみ
[global]
dos charset = CP932
unix charset = EUCJP-MS

workgroup = DC
realm = TEST.COM

server string = Samba Server
log file = /var/log/samba/%m.log
max log size = 50

security = ads
password server = *
encrypt passwords = yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

#============================ Share Definitions ==============================

idmap uid = 40000-50000
idmap gid = 40000-50000
template homedir = /home/%D/%U
template shell = /bin/bash
winbind use default domain = yes
winbind cache time = 15
winbind separator = @

[homes]
comment = Home Directories
browseable = no
writable = yes

[krb5.conf]

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = TEST.COM
dns_lookup_realm = true
dns_lookup_kdc = true

#[realms]
# EXAMPLE.COM = {
# kdc = kerberos.example.com:88
# admin_server = kerberos.example.com:749
# default_domain = example.com
# }

[domain_realm]
.test.com = TEST.COM
test.com = TEST.COM

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

[nsswitch.conf]

passwd: files winbind
shadow: files winbind
group: files winbind

hosts: files dns

bootparams: files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: files
publickey: files
automount: files
aliases: files

以上の設定になります。


まず、
# kinit administrator@TEST.COM で
TEST.COMのチケットをゲット。=問題なく通ります。

次に、
# net ads join で、
PDCのコンピュータオブジェクトにSambaサーバが登録されます。
=問題なく通ります。

次に、
# /etc/init.d/smb start
# /etc/init.d/winbind start で
二つのサービスを起動します。

※PDCには"user1"というユーザがアクティブディレクトリユーザに登録しています。

次に、クライアントからTEST.COMのドメインに"user1"で参加し、
Sambaサーバへは特にユーザを作成することなくSambaサーバのホームへ
アクセスできると、試みますが、
"アクセスできません。このネットワークリソースを使用するアクセス許可が
ない可能性があります。(省略)"というエラーになります。


http://www.miraclelinux.com/technet/document/samba/samba0015.html#part1
などを参考にし、winbindの動作確認を行いました。

# getent passwd
:省略
masuda:*:40007:40000:user1:/home/TEST/user:/bin/bash

というのができていますが、実際には存在していません。

また過去すれにもありましたが、実際Sambaサーバ上で、
アクティブディレクトリユーザで su - しようとしてもできませんでした。

補足ですが、
wbinfo -t,-u,-g ではエラーなく表示されています。

ご指摘、なにとぞお願い致します。
失礼致します。
 
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-07-19 18:44
引用:

drufyiさんの書き込み (2006-07-19 16:08) より:

次に、クライアントからTEST.COMのドメインに"user1"で参加し、
Sambaサーバへは特にユーザを作成することなくSambaサーバのホームへ
アクセスできると、試みますが、
"アクセスできません。このネットワークリソースを使用するアクセス許可が
ない可能性があります。(省略)"というエラーになります。


home directory が出来ていないだけでは?
PAM で home directory を作成できるように設定していますか?
※samba 側でも設定を追加する必要があると思います,
samba 単独では home directory の自動生成はしてくれません.
この辺は log を参照すれば確認できると思います.
引用:

# getent passwd
:省略
masuda:*:40007:40000:user1:/home/TEST/user:/bin/bash

というのができていますが、実際には存在していません。


実際にどこに「存在していません」か?
winbind で Active Directory と連携するなら /etc/passwd には書き込まれません.
記憶が定かではありませんが,/var/samba とかそんな感じの directory の中に,
winbindd_idmap.tdb という cache file が格納されます.
その cache file がなくなると大変なことになるので,
ちゃんと backup を採取しておくことをお奨めします.

ちなみに user account の管理方法としては,cache に蓄えるほかに
/etc/passwd に書き込んでしまう方法や back end に ldap を構成して
そこに逐次書き込んでいく方法などもあります.

基本的にはまず「log を見る」ことで概ね解決すると思います.

以上,ご参考までに.
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-19 21:48
kaz様 いつもありがとうございます。

「quote]
home directory が出来ていないだけでは?
PAM で home directory を作成できるように設定していますか?
※samba 側でも設定を追加する必要があると思います,
samba 単独では home directory の自動生成はしてくれません.
この辺は log を参照すれば確認できると思います.
[/quote]

まず、PAMに設定というのが、わかりません。。。
この当たり今まで設定したことがなくて。
すいません。。。

samba側にも同じく追加設定がいるのですね。。

引用:

実際にどこに「存在していません」か?


示されている/home配下には存在しませんでした。

引用:

記憶が定かではありませんが,/var/samba とかそんな感じの directory の中に,
winbindd_idmap.tdb という cache file が格納されます.


/var/chache/samba の下にありました。

もちろん引き続き頂いている指摘で調べて実際にやっていきたいと思います。

よろしければ、教示頂ければ幸いです。。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-07-20 00:03
引用:

drufyiさんの書き込み (2006-07-19 21:48) より:

まず、PAMに設定というのが、わかりません。。。
この当たり今まで設定したことがなくて。
すいません。。。

samba側にも同じく追加設定がいるのですね。。


pam_mkhomedir.so について調べてみてください.
samba 側では
obey pam restrictions
という設定内容が必要になると思います.
引用:

引用:

実際にどこに「存在していません」か?


示されている/home配下には存在しませんでした。


つまり home directory を自動生成する機能が無いからと思います.
log を確認してみましょう.
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-20 09:28
kaz様ありがとうございます!

引用:

pam_mkhomedir.so について調べてみてください.


ただいまより、調べてやってみたいと思います。

また書き込むかもしれませんが、ありがとうございましたm(_ _)m
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-20 13:02
kaz様に指摘頂き、現在も設定反映中です。

smb.confへ
obey pam restrictions = Yes という設定を追加しました。

もう一点の、pam_mkhomedir.so ですが、
調べていると、/etc/pam.d/ 配下の system-auth に、
session   required   /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022
と追加するとありました。これからと思い、昼あけからやってみようと思います。

しかし同サイトには、add user scriptを使用しないと
自動的にホームディレクトリを作成できません。といった記述があったので、
違うのかなという気持ちもあります。

相談させて頂く前は、add user scriptを使用して自動生成を行っていたのですが、
delet user scriptが思ったように動かず、winbindを使用すれば、
このあたりの解決になるのかなと思っています。

これ自体、間違った解釈かもしれませんが。

引き続き行います。

指摘あれば、して頂ければ幸いです。
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-20 13:16
引き続きですが、実施内容を書き込みます。

まず、参照したページ通り、
http://www.monyo.com/technical/unix/samba0304/#Graphic_23

/etc/pam.d/system-auth へ 

auth sufficient /lib/security/pam_winbind.soaccount sufficient /lib/security/pam_winbind.so
session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022

を足し込みました。
(ページでは他のサービス用となっていたので違うとは思いましたが)

ドメイン参加クライアントからは、Sambaサーバへ入る際にパスワードが
求められるようになってしまいました。

この設定を戻せば、サーバの中まではパスなしでログインできます。

次に、
/etc/pam.d/system-config-samba へ
session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022
の1分を記述し、同じくクライアントからテストを行いましたが、
ホームディレクトリは作成されず、相変わらず、ホームディレクトリがないとの
エラーが出て接続できません。

とりあえず、先ほどまでの内容を記述します。
drufyi
大ベテラン
会議室デビュー日: 2005/06/20
投稿数: 148
投稿日時: 2006-07-20 15:11
連続で申し訳ありません。

成功したといいますか、/homeの下にディレクトリが作成されたのですが、
どのタイミングとどの設定のおかげで作成されたのかがわかなくなりました。

#一度作成されたフォルダを削除して、もう一度ドメインに参加などを
#しのたのですが、フォルダが作成されなくなりました。
#またSambaサーバへのアクセスにパスワードを求められるようになりました。

整理して、設定した内容とコンフィグファイルを記載します。

*smb.conf*

[global]
dos charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS

workgroup = VM-WIN2K3
realm = ARDENCE-TEST.COM

server string = Samba Server
log file = /var/log/samba/%m.log
max log size = 50

utmp = yes
utmp directory = /var/log/samba/

security = ads
password server = *
encrypt passwords = yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

obey pam restrictions = yes

auth methods = winbind

# add user script = /var/samba/mkhomedir '%u'

#============================ Share Definitions ==============================

idmap uid = 40000-50000
idmap gid = 40000-50000
template homedir = /home/%D/%U
# template homedir = /home/%U
template shell = /bin/bash
winbind use default domain = yes
winbind cache time = 15
winbind separator = @

[homes]
comment = Home Directories
browseable = no
writable = yes

次に、PAMの設定を変更したところを記載します。


以前も書きましたが、/etc/pam.d/system-auth に追加しました。

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok

# この部分
auth sufficient /lib/security/pam_winbind.so

auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so

# この部分
account sifficient /lib/security/pam_winbind.so

account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account required /lib/security/$ISA/pam_permit.so

password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so

# この部分
session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022

ふと気づいたらログインしたクライアントからSambaサーバの
ホームにアクセスできていて、おかしいなと思って/homeのしたを
みると、smb.confで指定している、template homedir の指定のフォルダが
できていました。

引き続き再現に向けて検証したいと思います。

ご教示頂ければ幸いでございます。

スキルアップ/キャリアアップ(JOB@IT)