CentOS5 に sambaを使ってドメインコントローラー
足掛け2週間かけて、CentOSにOpenLDAP+Smbaを使ってドメインコントローラーを構築。なかなか、ドメインコントローラーへログインできずに手間取った。終ってみると、samba.confの記述が適切ではなかったのかな・・・
今後のためにも、手順を記載しておく。
環境はこちら。
手順はCentOS 5 で Samba を PDC にするを参考に、実践! Samba移行術 第2回:NT4.0→ Samba3.0への移行(1)以降の連載を見ながら。
以降は手順
LDAP インストール
# yum install openldap-servers
ldapのsamba用スキーマをコピー
# cp /usr/share/doc/samba-3.0.25b/LDAP/samba.schema /etc/openldap/schema/
LDAPサーバの設定ファイル /etc/openldap/slapd.conf を編集
# vi /etc/openldap/slapd.conf
追加
include /etc/openldap/schema/samba.schema
変更
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
↓
suffix "dc=example,dc=co,dc=jp"
rootdn "cn=Manager,dc=example,dc=co,dc=jp"
追加
rootpw xxx
追加
access to * by * read
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by self write
by users read
by anonymous auth
LDAPのサービス開始
# service ldap start # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # service ldap restart # chkconfig ldap on
認証の変更
# authconfig-tui
authconfig-tui - (c) 1999-2005 Red Hat, Inc.
┌───────┤ 認証の設定 ├───────────│
│ ユーザー情報 認証 │
│ [ ] キャッシュ情報 [*] MD5 パスワードを使用 │
│ [ ] Hesiod を使用 [*] シャドウパスワードを使用 │
│ [*] LDAP を使用 [*] LDAP 認証を使用 │
│ [ ] NIS を使用 [ ] Kerberos 5 を使用 │
│ [ ] Winbind を使用 [ ] SMB 認証を使用 │
│ [ ] Winbind 認証を使用 │
│ [*] ローカル認証は十分です │
│ │
│ ┌─────┐ ┌──┐ │
│ │ 取り消し │ │ 次 │ │
│ └─────┘ └──┘ │
│ │
└──────────────────────────┘
次の画面
authconfig-tui - (c) 1999-2005 Red Hat, Inc.
┌─────────┤ LDAP 設定 ├───────────│
│ [ ] TLS を使用 │
│ サーバー: ldap://127.0.0.1/_______________________ │
│ ベース DN: dc=example,dc=co,dc=jp________________ │
│ │
│ ┌───┐ ┌──┐ │
│ │ 戻る │ │ OK │ │
│ └───┘ └──┘ │
│ │
└───────────────────────────┘
/etc/samba/smb.conf を編集
smbldap-xxはこの後インストールします。
[global]
dos charset = CP932
display charset = UTF-8
workgroup = MYDOMAIN
passdb backend = ldapsam
guest account = Guest
add user script = /usr/sbin/smbldap-useradd -m '%u'
delete user script = /usr/sbin/smbldap-userdel -r '%u'
add group script = /usr/sbin/smbldap-groupadd -p '%g'
delete group script = /usr/sbin/smbldap-groupdel '%g'
add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
add machine script = /usr/sbin/smbldap-useradd -w '%u'
domain logons = Yes
os level = 64
preferred master = Yes
domain master = Yes
wins support = Yes
ldap admin dn = cn=Manager,dc=my-domain,dc=com
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap passwd sync = Yes
ldap suffix = dc=my-domain,dc=com
ldap user suffix = ou=Users
add share command = /usr/lib/samba/bin/addshare
change share command = /usr/lib/samba/bin/chgshare
delete share command = /usr/lib/samba/bin/delshare
admin users = Administrator
force unknown acl user = Yes
dos filetime resolution = Yes
load printers = no
disable spoolss = yes
; logon home =
; logon script = %u.bat
; logon path = \%L\Profiles\%u
; logon path =
logon drive = H:
[C$]
path = /
valid users = administrator
write list = administrator
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
write list = administrator
guest ok = Yes
[Profiles]
path = /var/lib/samba/profiles
create mask = 0600
directory mask = 0700
guest ok = Yes
profile acls = Yes
browseable = No
netlogonとprofilesのディレクトリ作成
# mkdir -p /var/lib/samba
# mkdir -p /var/lib/samba/{netlogon,profiles}
# chown root:root -R /var/lib/samba/
# chmod 0755 /var/lib/samba/netlogon
# chmod 1755 /var/lib/samba/profiles
LDAPの管理者(rootdn)のパスワード登録
# smbpasswd -w パスワード
smbldap-tool を設定
# cd /usr/share/doc/samba-3.0.25b/LDAP/smbldap-tools-0.9.2 # vi Makefile
prefix=/usr sbindir=$(prefix)/sbin sysconfdir=/etc
# make install # chmod 755 configure.pl # ./configure.pl
configure.plを使うと、対話形式で/etc/smbldap-tool のsmbldap.confとsmblda_bind.confを設定できます。
これらのファイルは/usr/sbin/smbldap-xxが参照する設定ファイルです。途中エラーもでますが、無視(^ ^;)して進めちゃいます。
LDAPサーバへの初期データ投入
# wget http://dag.wieers.com/rpm/packages/perl-Crypt-SmbHash/perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm # rpm -ivh perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm # cpan install Unicode::MapUTF8 # /usr/sbin/smbldap-populate -a Administrator -b Guest
sambaへ登録したドメイン管理者のパスワード設定
# smbldap-passwd Administrator
sambaサービスを再起動
# service smb start
/var/log/samba/smbd.log に下のエラーが手続けるのは、 ldapに管理者で接続できていない。のが原因
[2008/01/25 11:45:31, 1] lib/smbldap.c:another_ldap_try(1153)
Connection to LDAP server failed for the x try!
対応は
・「smbpasswd -w パスワード」を再実行
・/etc/samba/smb.conf の 「ldap admin dn」を確認
sambaへグループを登録
# smbldap-groupadd -a regularStaff
sambaへユーザを登録
# smbldap-useradd -a -m -P -g regularStaff ldapuser
Domain Usersにも含めたいときは -G “Domain Users”
samba(といかLDAP)に登録したユーザとシステム認証との関係を確認
authconfig-tuiとldapへの登録が行なえていると、
# getent passwd
でユーザの、
# getent group
でグループの一覧が見れます。/etc/passwd及び、/etc/groupとLDAPへ登録した内容が合わされて表示されます。LDAPに登録した分が表示されないのであれば、authconfig-tuiを見直してください。
