LinuxサーバがActiveDirectoryのユーザ情報を利用して認証が利用できるよう、設定を行う。
Winbindを利用して、ActiveDirectoryにLinuxサーバをぶら下げ、認証を行う。この作業はrootで行う。
- Winbindのインストール:WinbindはSambaプログラム群の1つとして提供されているため、Winbindに必要なSambaパッケージをインストールする。
# yum -y install samba-common
なお、Windows2008のActiveDirectoryにぶら下げるには、Samba 3.2以降じゃないと駄目らしい。CentOS4系のSambaは3.0系なので、Windows2008にぶら下げたいなら、ここ(ftp://ftp.sernet.de/pub/samba/experimental/rhel/4/i386/)から「libwbclient」「samba3-client」「samba3-winbind」をダウンロードして、次のようにインストールする。
# yum -y install samba-client# rpm -ivh libwbclient0-3.2.1-37.i386.rpm
# rpm -ivh samba3-client-3.2.0-36.i386.rpm
# rpm -ivh samba3-winbind-3.2.0-36.i386.rpm- smb.confの設定1:viで/etc/samba/smb.confを開き、以下の文をコメントアウト(先頭に#を付ける)する。
workgroup = MYGROUP
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes- smb.confの設定2:次に、Winbind認証に必要なパラメータを追加する。smb.confの最終行に以下の文を追加し、保存する。
workgroup = ANDOKOMUTEN
realm = ANDOKOMUTEN.JP
security = ADS
idmap uid = 10000-50000
idmap gid = 10000-50000
winbind cache time = 15
winbind separator = +
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/false
password server = ad.andokomuten.jp
encrypt passwords = yes
obey pam restrictions = yes- アカウント取得方法の変更:LinuxシステムがWinbindを経由してActiveDirectoryからアカウント情報を取得するよう、設定を変更する。viで/etc/nsswitch.confを開き、次のように修正して保存する。
passwd: files winbind
shadow: files winbind
group: files winbind- Kerberos設定ファイルの修正:ActiveDirectoryのコンピュータとして接続できるよう、Kerberos設定ファイルを編集する。viで/etc/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 = ANDOKOMUTEN.JP
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
ANDOKOMUTEN.JP = {
kdc = ad.andokomuten.jp
admin_server = ad.andokomuten.jp
default_domain = andokomuten.jp
}
[domain_realm]
.andokomuten.jp = ANDOKOMUTEN.JP
andokomuten.jp = ANDOKOMUTEN.JP
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}- ActiveDirectoryに参加する:以下のコマンドを実行し、このサーバをActiveDirectoryに登録する。
# net ads join -U administrator
実行後、ドメインコントローラのサーバーでActiveDirectoryとDNSを確認し、SMTPサーバが登録されているかを確認する。
Enter administrator's password: ドメインのadministratorユーザのパスワードを入力
Using short domain name -- ANDOKOMUTEN
Joined 'SMTP' to realm 'ANDOKOMUTEN.JP'
なお、ドメインコントローラとメールサーバの時刻が大きくずれていると、以下のメッセージが表示される。Using short domain name -- ANDOKOMUTEN
ドメインコントローラのサーバーでActiveDirectoryとDNSを見ると、ドメインへの登録は成功しているが、DNSへの登録が失敗していることが分かる。ドメインに登録されたSMTPを削除し、以下のコマンドを実行してドメインコントローラと時刻を合わせ、再度、登録を行う。
Joined 'SMTP' to realm 'ANDOKOMUTEN.JP'
[****/**/** **:**:**, 0] libads/kerberos.c:ads_kinit_password(356)
kerberos_kinit_password SMTP$@ANDOKOMUTEN.JP failed: Clock skew too great
DNS update failed!# ntpdate ad.andokomuten.jp
** *** **:**:** ntpdate[****]: step time server 192.168.10.2 offset ***.******* sec
# clock -w- Winbindの起動:Winbindを利用するため、起動する。また、サービスに登録する。
# chkconfig winbind on
# /etc/rc.d/init.d/winbind start
Winbind サービスを起動中: [ OK ]
# /etc/rc.d/init.d/winbind status
winbindd (pid 1639 1638) を実行中...
LinuxサーバがActiveDirectoryに登録されたかどうか、Windows側から確認する。
Linuxサーバが、ActiveDirectoryに登録されたことは確認できた。次は、Linux側からWinbindやKerberosが正常に動作するかどうか、確認する。
- 確認1:参加したドメインの情報を参照する。
# net ads info
LDAP server: 192.168.10.2
LDAP server name: ad
Realm: ANDOKOMUTEN.JP
Bind Path: dc=ANDOKOMUTEN,dc=JP
LDAP port: 389
Server time: Wed, 14 Dec 2005 19:04:50 GMT
KDC server: 192.168.10.2
Server time offset: 7- 確認2:ドメインに参加した後に、そのドメインへの参加が有効かどうか確認する。
# net ads testjoin
Join is OK- 確認3:ActiveDirectoryに登録されているユーザを取得できるかどうか確認する。
# wbinfo -u
administrator
guest
support_388945a0
ad$
krbtgt
0001
smtp$- 確認4:ActiveDirectoryに登録されているグループを取得できるかどうか確認する。
# wbinfo -g
BUILTIN@system operators
BUILTIN@replicators
BUILTIN@guests
BUILTIN@power users
BUILTIN@print operators
BUILTIN@administrators
BUILTIN@account operators
BUILTIN@backup operators
BUILTIN@users
domain computers
domain controllers
schema admins
enterprise admins
domain admins
domain users
domain guests
group policy creator owners
dnsupdateproxy
yakusyoku- 確認5:ドメインに参加し、Winbindの役割を正常に機能しているかを確認する。
# wbinfo -t
checking the trust secret via RPC calls succeeded- 確認6:Winbindによるユーザ認証を確認する。
# wbinfo -a 0001%パスワード
plaintext password authentication succeeded
challenge/response password authentication succeeded- 確認7:ユーザが所属しているグループを確認する。
# id 0001
uid=10000(0001) gid=10000(domain users) 所属グループ=10000(domain users),10001(yakusyoku)