- PR -

[質問] Active DirectoryでLinuxユーザーを一元管理する方法

1
投稿者投稿内容
ぼの
会議室デビュー日: 2006/02/02
投稿数: 4
投稿日時: 2006-02-02 13:12
初めて書き込みさせていただきます。
現在Windows2003で研究室のネットワークを管理しようと考えております。
構成はAD、DNSサーバーをWindows2003 Enterprise ver、ファイルサーバーをCentOS4.2(Samba3.0.10-1.4E.2)、クライアントをCentOSです。
Kerberos認証で、ユーザー情報をWinbindで取得しようと考えております。

やりたい事
 1.ファイルサーバーのユーザー、パスをWindows2003で管理する。
 2.Linuxクライアントのユーザー、パスをWindows2003で管理する。

現在の状況
 1のファイルサーバーは問題なくADに参加でき、Windowsのホームフォルダにマウントさせることも出来ています。
問題は2のLinuxクライアントです。ADには参加でき、wbinfo -t,-u,-gで情報を読んでくることはできるのですが、いざログインしようとするとパスワードもしくはユーザー名が違いますといわれます。そこで、adduserでADに登録されているユーザー名を/etc/passwdにパスなしで登録すると、ログインすることができました。
しかし、各クライアントにユーザーを追加していくのは、大変手間がかかります。
Linuxにユーザーを追加することなくログインする方法があれば、ご教授をお願い致します。

参考書籍
 秀和システム Active DirectoryとLinuxによるシステム構築ガイド
 翔泳社    Sambaのすべて

---smb.conf---
[global]
dos charset = CP932
unix charset = EUCJP-MS
workgroup = TEST
password server = pythagoras.test.local
realm = TEST.LOCAL
security = ads
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
winbind use default domain = yes
winbind cache time = 15
winbind separator = @
encrypt passwords = 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.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]

TEST.LOCAL = {
kdc = pythagoras.test.local:88
admin_server = pythagoras.test.local:749
kdc = pythagoras.test.local
}
[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: db files ldap nis dns
hosts: files dns

# Example - obey only what ldap tells us...
#services: ldap [NOTFOUND=return] files
#networks: ldap [NOTFOUND=return] files
#protocols: ldap [NOTFOUND=return] files
#rpc: ldap [NOTFOUND=return] files
#ethers: ldap [NOTFOUND=return] files

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


[ メッセージ編集済み 編集者: ぼの 編集日時 2006-02-03 18:59 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-02-02 18:18
こんばんわ.
引用:

ぼのさんの書き込み (2006-02-02 13:12) より:

問題は2のLinuxクライアントです。ADには参加でき、wbinfo -t,-u,-gで情報を読んでくることはできるのですが、いざログインしようとするとパスワードもしくはユーザー名が違いますといわれます。


その際,syslog にはなんと記録されていますか?
引用:

そこで、adduserでADに登録されているユーザー名を/etc/passwdにパスなしで登録すると、ログインすることができました。
しかし、各クライアントにユーザーを追加していくのは、大変手間がかかります。
Linuxにユーザーを追加することなくログインする方法があれば、ご教授をお願い致します。


ちゃんと設定されていればその必要は無いです.

ちなみに File server では,
Active Directory の user account で login できるのですか?
できないとしたら,HomeDirectory はどのように生成していますか?
smb.conf が[global]しか書かれていないのと,
pam の設定が見当たらないのでちょっとこの内容ではわからないと思います.
ぼの
会議室デビュー日: 2006/02/02
投稿数: 4
投稿日時: 2006-02-03 18:58
返信ありがとうございます。

syslogの内容は次のとおりです。
[root@VM-Linux1 log]# dmesg | grep winbind
audit(1138870874.657:3): avc: denied { write } for pid=2522 comm="winbindd" name="secrets.tdb" dev=dm-0 ino=427823 scontext=user_u:system_r:winbind_t tcontext=root:object_r:samba_etc_t tclass=file

引用:


ちゃんと設定されていればその必要は無いです.

ちなみに File server では,
Active Directory の user account で login できるのですか?
できないとしたら,HomeDirectory はどのように生成していますか?
smb.conf が[global]しか書かれていないのと,
pam の設定が見当たらないのでちょっとこの内容ではわからないと思います.



File serverでも、クライアントLinuxと同じような現象です。

Home Directoryは、1度WindowsXPの方でプロファイルにファイルサーバーの各ユーザーのHomeDirectoryをマウントしたユーザーでログインして、初めて生成されています。

smb.confですが、これはクライアント側のものなのでglobal以外は設定しておりません。何か設定しなければならないのでしょうか?

---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/$ISA/pam_krb5.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account required /lib/security/$ISA/pam_unix.so broken_shadow
account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_krb5.so
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 sufficient /lib/security/$ISA/pam_krb5.so use_authtok
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 optional /lib/security/$ISA/pam_krb5.so

よろしくお願いします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-02-03 23:16
こんばんわ.
引用:

ぼのさんの書き込み (2006-02-03 18:58) より:

Home Directoryは、1度WindowsXPの方でプロファイルにファイルサーバーの各ユーザーのHomeDirectoryをマウントしたユーザーでログインして、初めて生成されています。


よく意味がわかりません.
接続したら自動的に Home Directory が生成される機能がありますが,
そういった機能を用いずに使っているという認識ですか?
「Sambaのすべて」に普通に書かれてますけど.
それとも,NFS か何かで File server に mount しているのですか?

それと,dmesg ではなく syslog ですけど,違いわかりませんか?
ぼの
会議室デビュー日: 2006/02/02
投稿数: 4
投稿日時: 2006-02-09 14:17
返信がおそくなり、申し訳ございませんでした。

Home Directoryですが、説明が不適切でした。
現状ではWindows2003のADユーザーでLinuxのクライアントにログインできないので、以下のような手順で生成しています。
1.Windows2003のADユーザーを作り、プロファイル設定のホームフォルダを「\\\\sambaサーバー\\homes\\ADユーザー名」と設定する。
2.WindowsXPのクライアントPCで1で作成したADユーザーでログインする。
3.1でホームフォルダの設定をしているので、マイコンピュータを開くとZ:としてマウントされている。
 Z:にアクセスする。(Sambaサーバーの認証の必要なくアクセスできた)
4.Sambaサーバーのhomeを以下に1で作った、ADユーザーのDirectoryが生成されている。

syslogですが、/var/log/samba/winbindd.logの内容でしょうか?

よろしくお願いいたします。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-02-09 14:39
引用:

ぼのさんの書き込み (2006-02-09 14:17) より:

現状ではWindows2003のADユーザーでLinuxのクライアントにログインできないので、以下のような手順で生成しています。

2.WindowsXPのクライアントPCで1で作成したADユーザーでログインする。


「ADユーザー」という言葉の意味は理解されていますか?
それが Active Directory の user account ではなく,
Samba が実装された Linux Client の local account ですが,
そこは理解したうえでやってますか?
つまり,Active Directory に登録されている user account と
同じ ID/password で WindowsXP に登録して,
「Active Directory に logon する」のと
「Active Directory に登録されているの
同じ ID/password の local account で logon する」のと,
それぞれの user account は全く別の account であることを理解しているか?
という意味ですが.

引用:

(Sambaサーバーの認証の必要なくアクセスできた)


その辺,Windows でも同じことが起きますよ.
引用:

syslogですが、/var/log/samba/winbindd.logの内容でしょうか?


そうです.
ぼの
会議室デビュー日: 2006/02/02
投稿数: 4
投稿日時: 2006-02-09 19:02
素早い返信ありがとうございます。

引用:

「ADユーザー」という言葉の意味は理解されていますか?
それが Active Directory の user account ではなく,
Samba が実装された Linux Client の local account ですが,
そこは理解したうえでやってますか?
つまり,Active Directory に登録されている user account と
同じ ID/password で WindowsXP に登録して,
「Active Directory に logon する」のと
「Active Directory に登録されているの
同じ ID/password の local account で logon する」のと,
それぞれの user account は全く別の account であることを理解しているか?
という意味ですが.



「ADユーザー」の意味を勘違いしておりました。
つまり、Active Directoryのuser accountで1〜4の手順を行いました。
WindowsXPではユーザー登録は何もしておりません。

---winbindd.log---
[2006/02/09 16:40:23, 0] lib/util_sock.c:read_socket_with_timeout(321)
read_socket_with_timeout: timeout read. read error = 接続相手からリセットされました.
[2006/02/09 16:40:24, 1] nsswitch/winbindd_group.c:winbindd_getgroups(1032)
user 'root' does not exist
[2006/02/09 16:40:24, 0] lib/util_sock.c:read_socket_with_timeout(321)
read_socket_with_timeout: timeout read. read error = 接続相手からリセットされました.
[2006/02/09 16:40:24, 0] rpc_client/cli_pipe.c:rpc_api_pipe(435)
cli_pipe: return critical error. Error was Read error: 接続相手からリセットされました.
[2006/02/09 16:40:24, 1] nsswitch/winbindd_group.c:winbindd_getgroups(1032)
user 'root' does not exist
[2006/02/09 16:40:24, 1] nsswitch/winbindd_group.c:winbindd_getgroups(1032)
user 'root' does not exist
[2006/02/09 16:40:24, 1] nsswitch/winbindd_group.c:winbindd_getgroups(1032)
user 'root' does not exist

よろしくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-02-09 23:50
こんばんわ.
引用:

ぼのさんの書き込み (2006-02-02 13:12) より:

---nsswitch.conf---
passwd: files winbind
shadow: files winbind
group: files winbind

#hosts: db files ldap nis dns
hosts: files dns

# Example - obey only what ldap tells us...
#services: ldap [NOTFOUND=return] files
#networks: ldap [NOTFOUND=return] files
#protocols: ldap [NOTFOUND=return] files
#rpc: ldap [NOTFOUND=return] files
#ethers: ldap [NOTFOUND=return] files

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


見逃してました.
passwd/shadow/group 以外に winbind の entry が書かれているのは何故ですか?
error にある "user 'root' does not exist" は無視して良いと思います.
※Active Directory に root を見に行って「いないジャン」ということです.

繰り返しになりますが,
然るべく設定されていれば,
Linux 側には user account など登録する必要はありません.

netfilter で filtering してたりしますか?
1

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