CentOS5 に sambaを使ってドメインコントローラー

足掛け2週間かけて、CentOSにOpenLDAP+Smbaを使ってドメインコントローラーを構築。なかなか、ドメインコントローラーへログインできずに手間取った。終ってみると、samba.confの記述が適切ではなかったのかな・・・
今後のためにも、手順を記載しておく。

環境はこちら。

OS
CentOS5.1。カーネルのバージョンは2.6.18-53.el5
OpenLDAP
yumでインストールした2.3.27-8
Samba
yumでインストールした3.0.25b-1.el5_1.4

手順は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を見直してください。

Trackback URL

Leave a comment

Your comment