Windows(OpenLDAP+Samba)

2014.02.19

<< << << <<CentOS <<Scientific Linux

Samba+OpenLDAPにより、LinuxサーバーをNTドメインプライマリドメインコントローラとして構築し、Windowsファイルサーバーとしての機能の他に、LinuxのユーザとSambaのユーザの一元管理もできるようにする。
ここでは、Linux側でコマンドまたはUserminによりパスワードを変更した場合、Windows側でも新しいパスワードでログオンできるようにする。また、逆も同様にできるようにする。
なお、Sambaにアクセスしないユーザについては従来どおりのユーザ管理も行えるようにする。

SambaUserminが導入済であること


LDAP

[root@linux root]# yum -y install openldap-servers ← LDAPサーバーインストール
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: openldap-servers 2.1.29-1.i386]
Downloading Packages
Getting openldap-servers-2.1.29-1.i386.rpm
openldap-servers-2.1.29-1 100% |=========================| 3.6 MB    00:04
Running test transaction:
Test transaction complete, Success!
openldap-servers 100 % done 1/1
Installed:  openldap-servers 2.1.29-1.i386
Transaction(s) Complete

[root@linux root]# yum -y install openldap-clients ← LDAPクライアントインストール
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: openldap-clients 2.1.29-1.i386]
Downloading Packages
Getting openldap-clients-2.1.29-1.i386.rpm
openldap-clients-2.1.29-1 100% |=========================| 686 kB    00:00
Running test transaction:
Test transaction complete, Success!
openldap-clients 100 % done 1/1
Installed:  openldap-clients 2.1.29-1.i386
Transaction(s) Complete

[root@linux root]# yum clean packages ← ダウンロードしたファイルを削除
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Cleaning packages

LDAP

1)LDAPサーバー設定
[root@linux root]# slappasswd -s パスワード -h {MD5} ← LDAPサーバー管理者パスワード(MD5暗号化形式)取得
{MD5}************************ ← 下記で使用する

[root@linux root]# vi /etc/openldap/slapd.conf ← LDAPサーバー設定ファイル編集
#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database        ldbm
suffix          "dc=my-domain,dc=com"
↓
suffix          "dc=fedorasrv,dc=com" ← LDAPサーバードメイン名設定
rootdn          "cn=Manager,dc=my-domain,dc=com"
↓
rootdn          "cn=Manager,dc=fedorasrv,dc=com" ← LDAPサーバー管理者ドメイン名設定
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw                secret
# rootpw                {crypt}ijFYNcSNctBYg
rootpw          {MD5}************************ ← slappasswdコマンドで取得したパスワードを指定

以下を最終行へ追加
access to attrs=userPassword
        by self write
        by dn="cn=Manager,dc=fedorasrv,dc=com" write
        by anonymous auth
        by * none

access to *
        by dn="cn=Manager,dc=fedorasrv,dc=com" write
        by self write
        by * read

2)LDAPクライアント設定
LDAPサーバーは同時にLDAPクライアントとしても動作するため、LDAPクライアントとしての設定を施す。
[root@linux root]# vi /etc/openldap/ldap.conf ← LDAPクライアント設定ファイル編集
#BASE   dc=example, dc=com
↓
BASE dc=fedorasrv,dc=com ← LDAPサーバードメイン名設定

[root@linux root]# vi /etc/ldap.conf ← NSS_LDAPクライアント設定ファイル編集
# The distinguished name of the search base.
base dc=example,dc=com
↓
base dc=fedorasrv,dc=com ← LDAPサーバードメイン名設定

LDAP

[root@linux root]# /etc/rc.d/init.d/ldap start ← LDAPサーバー起動
slapd を起動中:                                            [OK]

LDAP

[root@linux root]# chkconfig ldap on ← LDAPサーバー自動起動設定

[root@linux root]# chkconfig --list ldap ← LDAPサーバー自動起動設定確認
ldap            0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ ← ランレベル25がオンであること

LDAP

1)LDAPサーバー初期情報登録
[root@linux root]# vi /usr/share/openldap/migration/migrate_common.ph ← ユーザ情報移行ツール設定ファイル編集
# Default base
$DEFAULT_BASE = "dc=padl,dc=com";
↓
$DEFAULT_BASE = "dc=fedorasrv,dc=com"; ← LDAPサーバードメイン名設定

[root@linux root]# vi base.ldif ← LDAPサーバー初期情報登録用ファイル新規作成
dn: dc=fedorasrv,dc=com
objectClass: dcObject
objectclass: organization
o: fedorasrv Organization
dc: fedorasrv

dn: cn=manager, dc=fedorasrv,dc=com
objectclass: organizationalRole
cn:manager

dn: ou=People,dc=fedorasrv,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=fedorasrv,dc=com
objectClass: organizationalUnit
ou: Group

[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f base.ldif ← LDAPサーバー初期情報登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答
adding new entry "dc=fedorasrv,dc=com"

adding new entry "cn=manager, dc=fedorasrv,dc=com"

adding new entry "ou=People,dc=fedorasrv,dc=com"

adding new entry "ou=Group,dc=fedorasrv,dc=com"

[root@linux root]# rm -f base.ldif ← 後始末

2)既存ユーザ情報をLDAPサーバーへ登録
[root@linux root]# grep ":5[0-9][0-9]" /etc/passwd > passwd ← 一般ユーザ情報抽出

[root@linux root]# /usr/share/openldap/migration/migrate_passwd.pl passwd > passwd.ldif
 ← 一般ユーザ情報LDAPサーバー登録用ファイル作成

[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f passwd.ldif
 ← 一般ユーザ情報をLDAPサーバーへ登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答
adding new entry "uid=ユーザ名,ou=People,dc=fedorasrv,dc=com"

・
・
・

adding new entry "uid=ユーザ名,ou=People,dc=fedorasrv,dc=com"

[root@linux root]# rm -f passwd ← 後始末

[root@linux root]# rm -f passwd.ldif ← 後始末

3)既存グループ情報をLDAPサーバーへ登録
[root@linux root]# grep ":5[0-9][0-9]" /etc/group > group ← 一般ユーザグループ情報抽出

[root@linux root]# /usr/share/openldap/migration/migrate_group.pl group > group.ldif
 ← 一般ユーザグループ情報LDAPサーバー登録用ファイル作成

[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f group.ldif
 ← 一般ユーザグループ情報をLDAPサーバーへ登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答
adding new entry "cn=グループ名,ou=Group,dc=fedorasrv,dc=com"

・
・
・

adding new entry "cn=グループ名,ou=Group,dc=fedorasrv,dc=com"

[root@linux root]# rm -f group ← 後始末

[root@linux root]# rm -f group.ldif ← 後始末

LDAP

[root@linux root]# authconfig ← 認証設定開始

┌─────────┤ 認証の設定 ├-─────────┐
│                                                     │
│  ユーザー情報         認証                          │
│  [ ] キャッシュ情報   [*] MD5 パスワードを使用      │
│  [ ] Hesiod を使用    [*] シャドウパスワードを使用  │
│  [*] LDAP を使用      [*] LDAP 認証を使用           │
│  [ ] NIS を使用       [ ] Kerberos 5 を使用         │
│  [ ] Winbind を使用   [ ] SMB 認証を使用            │
│                       [ ] Winbind 認証を使用        │
│                                                     │
│ ┌──────────┐      ┌────┐          │
│ │ 取り消し           │      │      │          │
│ └──────────┘      └────┘          │
│                                                     │
│                                                     │
└-──────────────────────────┘

┌──────────┤ LDAP 設定 ├─────────┐
│                                                     │
│            [ ] TLS を使用                           │
│  サーバー: 127.0.0.1_______________________________ │
│ ベース DN: dc=fedorasrv,dc=com_____________________ │
│                                                     │
│          ┌──────┐    ┌────┐           │
│          │ 戻る       │    │ OK     │           │
│          └──────┘    └────┘           │
│                                                     │
│                                                     │
└-──────────────────────────┘

※項目間の移動はTabキーで、項目の選択はスペースキーで、決定はリターンキーで行う
※ここまでで、Linuxでのユーザ認証は、従来のアカウントファイル(/etc/passwd)にユーザ情報があれば、従来どおりにアカウントファイルでユーザ認証が行われ、アカウントファイルになくてLDAPサーバーにユーザ情報があればLDAPサーバーでユーザ認証が行えるようになった

LDAP

LDAPサーバーでユーザ認証できることを確認するため、LDAPサーバー上のみに存在するユーザで、Linuxにログインできることを確認する。

1)従来の手順でユーザ作成
[root@linux root]# useradd fedora ← 従来の手順でユーザ登録

[root@linux root]# passwd fedora ← 従来の手順でパスワード設定
Changing password for user fedora.
New UNIX password: ← パスワード応答
Retype new UNIX password: ← パスワード応答(確認)
passwd: all authentication tokens updated successfully.

2)(1)で作成したユーザ情報をLDAPサーバーへ登録
[root@linux root]# grep ^fedora /etc/passwd > passwd |\
 /usr/share/openldap/migration/migrate_passwd.pl passwd > passwd.ldif
 ← 上記で作成したユーザ情報のLDAPサーバー登録用ファイル作成

[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f passwd.ldif
 ← 上記で作成したユーザ情報をLDAPサーバーへ登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答
adding new entry "uid=fedora,ou=People,dc=fedorasrv,dc=com"

[root@linux root]# grep ^fedora /etc/group > group |\
 /usr/share/openldap/migration/migrate_group.pl group > group.ldif
 ← 上記で作成したユーザグループ情報のLDAPサーバー登録用ファイル作成

[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f group.ldif
 ← 上記で作成したユーザグループ情報をLDAPサーバーへ登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答
adding new entry "cn=fedora,ou=Group,dc=fedorasrv,dc=com"

3)(1)で作成したユーザを従来の手順で削除
[root@linux root]# userdel fedora ← 従来の手順でユーザ削除
※ここまでで、LDAPサーバーのみにユーザ情報が残っている状態になった。

4)LDAPサーバーでのユーザ認証確認
[root@linux root]# su - fedora ← LDAPサーバーのみに登録されているユーザに切り替える

[fedora@linux fedora]$  ← LDAPサーバーのみに登録されているユーザになれた

[fedora@linux fedora]$ exit ← ログアウト

[root@linux root]# ldapdelete -h localhost -x -D 'cn=manager,dc=fedorasrv,dc=com' -W "uid=fedora,ou=people,dc=fedorasrv,dc=com"
 ← LDAPサーバーからユーザ情報削除
Enter LDAP Password:

[root@linux root]# ldapdelete -h localhost -x -D 'cn=manager,dc=fedorasrv,dc=com' -W "cn=fedora,ou=group,dc=fedorasrv,dc=com"
 ← LDAPサーバーからユーザグループ情報削除
Enter LDAP Password:

[root@linux root]# su - fedora ← LDAPサーバーから削除したユーザに切り替える
su: fedora というユーザは存在しません

5)LDAPサーバー確認後始末
[root@linux root]# rm -rf /home/fedora/ ← 削除したユーザのホームディレクトリを削除

[root@linux root]# rm -f passwd ← LDAPサーバーへの登録用ファイル作成でできた一時ファイルの削除

[root@linux root]# rm -f passwd.ldif ← 〃

[root@linux root]# rm -f group ← 〃

[root@linux root]# rm -f group.ldif ← 〃

SambaLDAP

1)LDAPサーバー設定
[root@linux root]# cp /usr/share/doc/samba-*/LDAP/samba.schema /etc/openldap/schema/
 ← Samba用LDAPスキーマを所定のディレクトリへコピー

[root@linux root]# vi /etc/openldap/slapd.conf ← LDAPサーバー設定ファイル編集
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/redhat/autofs.schema
include         /etc/openldap/schema/samba.schema ← Samba用LDAPスキーマを追加

[root@linux root]# /etc/rc.d/init.d/ldap restart ← LDAPサーバー再起動
slapdを停止中:                                             [OK]
slapd を起動中:                                            [OK]

2)Samba設定
[root@linux root]# vi /etc/samba/smb.conf ← Samba設定ファイル編集
[global]
   unix charset = UTF-8
   dos charset = CP932
   display charset = UTF-8

   以下を追加(ここから)
   netbios name = LINUX ← Windowsネットワーク上のLDAPサーバーのコンピュータ名
   admin users = Administrator
   passdb backend = ldapsam:ldap://localhost
   ldap suffix = dc=fedorasrv,dc=com ← LDAPサーバードメイン名
   ldap admin dn = cn=Manager,dc=fedorasrv,dc=com ← LDAPサーバー管理者ドメイン名
   ldap user suffix = ou=People
   ldap group suffix = ou=Group
   ldap machine suffix = ou=Computers
   ldap passwd sync = yes
   add machine script = /usr/local/sbin/smbldap-useradd.pl -w %u
   以下を追加(ここまで)

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = DOMAIN ← 任意のNTドメイン名を指定

;  encrypt passwords = yes
↓
  encrypt passwords = yes ← コメント解除

;   os level = 33
↓
   os level = 33 ← コメント解除

;   domain master = yes
↓
   domain master = yes ← コメント解除

;   preferred master = yes
↓
   preferred master = yes ← コメント解除

;   domain logons = yes
↓
   domain logons = yes ← コメント解除

;   logon path = \\%L\Profiles\%U
  logon path = ← 追加(移動プロファイルは使用しない for NT系)
  logon home = ← 追加(移動プロファイルは使用しない for 9x系)

[root@linux root]# smbpasswd -w パスワード ← LDAPサーバー管理者パスワードをSambaへ登録
Setting stored password for "cn=manager,dc=fedorasrv,dc=com" in secrets.tdb

[root@linux root]# /etc/rc.d/init.d/smb restart ← Samba再起動
SMBサービスを停止中:                                       [OK]
NMBサービスを停止中:                                       [OK]
SMBサービスを起動中:                                       [OK]
NMBサービスを起動中:                                       [OK]

3)Samba用LDAPサーバー操作ツールセットアップ
[root@linux root]# cp /usr/share/doc/samba-*/LDAP/smbldap-tools/*.pl /usr/local/sbin/
 ← Samba用LDAPサーバー操作ツールを所定のディレクトリへコピー

[root@linux root]# cp /usr/share/doc/samba-*/LDAP/smbldap-tools/*.pm /usr/local/sbin/
 ← Samba用LDAPサーバー操作ツール設定ファイルを所定のディレクトリへコピー

[root@linux root]# chmod +x /usr/local/sbin/smbldap*.pl
 ← Samba用LDAPサーバー操作ツールに実行権限付加

[root@linux root]# chmod 600 /usr/local/sbin/smbldap*.pm
 ← Samba用LDAPサーバー操作ツール設定ファイルをrootのみ参照できるようにする

[root@linux root]# cd /usr/share/doc/samba-*/LDAP/smbldap-tools/mkntpwd/
 ← Samba用NTパスワード作成ツール格納ディレクトリへ移動

[root@linux mkntpwd]# make ← Samba用NTパスワード作成ツールをmake

[root@linux mkntpwd]# cp mkntpwd /usr/local/sbin/ ← Samba用NTパスワード作成ツールを所定のディレクトリへコピー

[root@linux root]# cd ← ホームディレクトリへ戻る

[root@linux root]# rpm -q perl-LDAP ← perl-LDAPインストール確認
perl-LDAP-0.31-5

[root@linux root]# yum -y install perl-LDAP ← perl-LDAPインストール(インストールされていない場合のみ)
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
..Dependencies resolved
I will do the following:
[install: perl-LDAP 0.31-4.noarch]
I will install/upgrade these to satisfy the dependencies:
[deps: perl-XML-NamespaceSupport 1.08-5.noarch]
[deps: perl-Convert-ASN1 0.18-2.noarch]
[deps: perl-XML-SAX 0.12-6.noarch]
Downloading Packages
Getting perl-LDAP-0.31-4.noarch.rpm
perl-LDAP-0.31-4.noarch.r 100% |=========================| 248 kB    00:00
Getting perl-XML-NamespaceSupport-1.08-5.noarch.rpm
perl-XML-NamespaceSupport 100% |=========================|  13 kB    00:00
Getting perl-Convert-ASN1-0.18-2.noarch.rpm
perl-Convert-ASN1-0.18-2. 100% |=========================|  34 kB    00:00
Getting perl-XML-SAX-0.12-6.noarch.rpm
perl-XML-SAX-0.12-6.noarc 100% |=========================|  73 kB    00:00
Running test transaction:
Test transaction complete, Success!
perl-Convert-ASN1 100 % done 1/4
perl-XML-NamespaceSupport 100 % done 2/4
perl-XML-SAX 100 % done 3/4
perl-LDAP 100 % done 4/4
Installed:  perl-LDAP 0.31-4.noarch
Dep Installed:  perl-XML-NamespaceSupport 1.08-5.noarch perl-Convert-ASN1 0.18-2.noarch perl-XML-SAX 0.12-6.noarch
Transaction(s) Complete

[root@linux root]# yum clean packages ← ダウンロードしたファイルを削除
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Cleaning packages

4)Samba用LDAPサーバー操作ツール設定
[root@linux root]# net getlocalsid ← LDAPサーバーのSID取得
SID for domain LINUX is: S-1-5-21-3434899864-2408962893-3659416944 ← 下記で使用する

[root@linux root]# vi /usr/local/sbin/smbldap_conf.pm ← Samba用LDAPサーバー操作ツール設定ファイル編集
# Put your own SID
# to obtain this number do: "net getlocalsid"
$SID='S-1-5-21-3516781642-1962875130-3438800523';
↓
$SID='S-1-5-21-3434899864-2408962893-3659416944'; ← netコマンドで取得したLDAPサーバーのSIDを指定

# LDAP Suffix
# Ex: $suffix = "dc=IDEALX,dc=ORG";
$suffix = "dc=IDEALX,dc=COM";
↓
$suffix = "dc=fedorasrv,dc=com"; ← LDAPサーバードメイン名を指定

# Where are stored Users
# Ex: $usersdn = "ou=Users,$suffix"; for ou=Users,dc=IDEALX,dc=ORG
$usersou = q(_USERS_);
↓
$usersou = q(People); ← 変更

# Where are stored Computers
# Ex: $computersdn = "ou=Computers,$suffix"; for ou=Computers,dc=IDEALX,dc=ORG
$computersou = q(_COMPUTERS_);
↓
$computersou = q(Computers); ← 変更

# Where are stored Groups
# Ex $groupsdn = "ou=Groups,$suffix"; for ou=Groups,dc=IDEALX,dc=ORG
$groupsou = q(_GROUPS_);
↓
$groupsou = q(Group); ← 変更

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA)
$hash_encrypt="SSHA";
↓
$hash_encrypt="MD5"; ← パスワードの暗号化形式をMD5形式に変更

# Bind DN passwd used
# Ex: $bindpasswd = 'secret'; for 'secret'
$bindpasswd = "secret";
↓
$bindpasswd = "パスワード"; ← LDAPサーバー管理者パスワードを指定

# Login defs
# Default Login Shell
# Ex: $_userLoginShell = q(/bin/bash);
$_userLoginShell = q(_LOGINSHELL_);
↓
$_userLoginShell = q(/bin/bash); ← ユーザのログインシェルを指定

# Home directory prefix (without username)
# Ex: $_userHomePrefix = q(/home/);
$_userHomePrefix = q(_HOMEPREFIX_);
↓
$_userHomePrefix = q(/home); ← ユーザのホームディレクトリを指定

$_defaultMaxPasswordAge = 45;
↓
#$_defaultMaxPasswordAge = 45; ← パスワード有効期限の無効化

$_userSmbHome = q(\\\\_PDCNAME_\\homes);
↓
$_userSmbHome = q(\\\\LINUX\\homes); ← SambaのNetBIOS名を指定

$_userProfile = q(\\\\_PDCNAME_\\profiles\\);
↓
$_userProfile = q(\\\\LINUX\\profiles\\); ← SambaのNetBIOS名を指定

$_userHomeDrive = q(_HOMEDRIVE_);
↓
$_userHomeDrive = q(Z:); ← ホームディレクトリをWindows上のZドライブとして割り当てる

[root@linux root]# vi /usr/local/sbin/smbldap-passwd.pl ← Samba+LDAP用パスワード変更コマンド編集
# change unix password
my $hash_password = `slappasswd -h {$hash_encrypt} -s '$pass'`;
↓
my $hash_password = `/usr/sbin/slappasswd -h {$hash_encrypt} -s '$pass'`;
 ← slappasswdコマンドをフルパスで指定(一般ユーザが自身のパスワードを変更できるようにする)

[root@linux root]# vi /usr/local/sbin/smbldap-usermod.pl ← smbldap-usermod.pl編集
smbldap-usermod.plコマンドで移動プロファイルを無効化できるようにする
if (defined($tmp = $Options{'F'})) {
  if ($samba == 1) {
    #$tmp =~ s/\\/\\\\/g;
    #push(@mods, 'sambaProfilePath' => $tmp); ← コメントアウト
    以下を追加(ここから)
    if ($tmp eq "") {
        push(@mods, 'sambaProfilePath' => []);
    } else {
        push(@mods, 'sambaProfilePath' => $tmp);
    }
    以下を追加(ここまで)
  } else {
        print "User $user is not a samba user\n";
  }
}

5)Samba用LDAPサーバー初期情報登録
[root@linux root]# smbldap-populate.pl ← LDAPサーバーSamba用初期化
Using builtin directory structure
adding new entry: dc=fedorasrv,dc=com
failed to add entry: Already exists at /usr/local/sbin/smbldap-populate.pl line 323,  line 2.
adding new entry: ou=People,dc=fedorasrv,dc=com
failed to add entry: Already exists at /usr/local/sbin/smbldap-populate.pl line 323,  line 3.
adding new entry: ou=Group,dc=fedorasrv,dc=com
failed to add entry: Already exists at /usr/local/sbin/smbldap-populate.pl line 323,  line 4.
adding new entry: ou=Computers,dc=fedorasrv,dc=com
adding new entry: uid=Administrator,ou=People,dc=fedorasrv,dc=com
adding new entry: uid=nobody,ou=People,dc=fedorasrv,dc=com
adding new entry: cn=Domain Admins,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Domain Users,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Domain Guests,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Administrators,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Users,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Guests,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Power Users,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Account Operators,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Server Operators,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Print Operators,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Backup Operators,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Replicator,ou=Group,dc=fedorasrv,dc=com
adding new entry: cn=Domain Computers,ou=Group,dc=fedorasrv,dc=com

[root@linux root]# smbldap-passwd.pl Administrator ← Administrator(NTドメイン管理者)パスワード設定
Changing password for Administrator
New password : ← パスワード応答
Retype new password : ← パスワード応答(確認)

[root@linux root]# pdbedit -i smbpasswd:/etc/samba/smbpasswd -e ldapsam:ldap://localhost
 ← 既存のSambaアカウントをLDAPへ移行

NT

Samba+OpenLDAPで作成したNTドメインにログオンできることを確認する。
※なお、使用するWindowsクライアントマシンのOSはWindowsXP Professionalを使用する(WindowsXP Home Editionにはドメインログオン機能がない)

1)WindowsクライアントマシンをNTドメインに登録

・Windowsクライアントマシンで、「マイコンピュータ」右クリック⇒「プロパティ」「コンピュータ名」タブ⇒「変更」ボタン押下⇒「ドメイン」DOMAIN※を入力してOKボタン押下
※DOMAINは当サイトの例で、/etc/samba/smb.confのworkgroupパラメータに設定した値を指定する

「ユーザー名」Administrator「パスワード」Administratorのパスワードを入力してOKボタン押下

「DOMAINドメインへようこそ」のメッセージが表示されればOK

・Windowsクライアントマシンを再起動

2NTドメインにログオンするユーザの新規作成
ここでは、例としてユーザ名をfedoraとする
[root@linux root]# smbldap-useradd.pl -a -m fedora ← ユーザ作成

[root@linux root]# smbldap-passwd.pl fedora ← パスワード設定
Changing password for fedora
New password : ← パスワード応答
Retype new password : ← パスワード応答(確認)

[root@linux root]# smbldap-usermod.pl -F "" fedora ← 移動プロファイルの無効化

3NTドメインにログオンする
NTドメインに登録したWindowsクライアントマシンで、作成したユーザー名パスワードを入力して、ログオン先DOMAINを選択してログオンできることを確認

・マイコンピュータを開き、ホームディレクトリがZドライブとして接続されていることを確認

4)ユーザの削除
[root@linux root]# smbldap-userdel.pl -r fedora ← ユーザ削除

Usermin

UserminでLDAPサーバー上のパスワードを変更できるようにする。
[root@linux root]# mv /etc/pam.d/usermin /etc/pam.d/usermin.org ← 既存Usermin認証設定ファイルリネーム

[root@linux root]# vi /etc/pam.d/usermin ← Usermin認証設定ファイル新規作成
#%PAM-1.0
auth     required      pam_stack.so service=system-auth
account  required      pam_stack.so service=system-auth
password required      pam_stack.so service=system-auth
session  required      pam_stack.so service=system-auth

[root@linux root]# vi /etc/usermin/changepass/config ← Userminパスワード変更機能設定ファイル編集
passwd_cmd=file
↓
passwd_cmd= ← パスワード変更方式をPAM認証方式に変更

[root@linux ~]# vi /usr/libexec/usermin/changepass/changepass.cgi ← changepass.cgi編集(2005.04.15追加)
        #$ans = $remote_user if ($code == PAM_PROMPT_ECHO_ON()); ← 行頭に#を追加してコメントアウト
        #$ans = $in{'new1'} if ($code == PAM_PROMPT_ECHO_OFF()); ← 行頭に#を追加してコメントアウト

 以下を追加(ここから)
        if ( $code == PAM_PROMPT_ECHO_OFF() ) {
            if ( $msg =~ /login/ ) {
                $ans = $in{'old'};
            } else {
                $ans = $in{'new1'};
            }
        }
 以下を追加(ここまで)

・コマンドでパスワード変更後、新しいパスワードでNTドメインにログオンできること

・コマンドでパスワード変更後、新しいパスワードでUserminにログインできること

・Windowsでパスワード変更後、新しいパスワードでLinuxにtelnet等でログインできること

・Windowsでパスワード変更後、新しいパスワードでUserminにログインできること

・Userminでパスワード変更後、新しいパスワードでLinuxにtelnet等でログインできること

・Userminでパスワード変更後、新しいパスワードでNTドメインにログオンできること

1)コマンドでのパスワード変更方法
rootユーザが変更する場合
[root@linux root]# smbldap-passwd.pl fedora ← パスワード変更
New password : ← 新パスワード応答
Retype new password : ← 新パスワード応答(確認)

ユーザ自身が変更する場合
[fedora@linux fedora]$ /usr/local/sbin/smbldap-passwd.pl ← パスワード変更
Changing password for fedora
(current) UNIX password: ← 旧パスワード応答
New password : ← 新パスワード応答
Retype new password : ← 新パスワード応答(確認)

2)Windowsでのパスワード変更方法
・Windowsクライアントマシンにログオンした状態でCTRL+ALT+DELETEキーを押下して「パスワードの変更」で行う。

3)Userminでのパスワード変更方法
Usermin導入(Usermin)参照

LDAP

LDAPサーバーでは、データのインポート/エクスポートが簡単に行える。旧LDAPサーバーから新LDAPサーバーへユーザ情報を移行したいときは、旧LDAPサーバー側でエクスポートしたデータを新LDAPサーバー側へインポートすれば、簡単にユーザ情報を移行することができる。
移行元LDAPサーバー側作業
[root@linux root]# slapcat -l ldap-backup.ldif ← LDAPデータをldap-backup.ldifというファイルへ出力

移行先LDAPサーバー側作業
[root@linux root]# ldapadd -h localhost -x -D "cn=manager,dc=fedorasrv,dc=com" -W -f ldap-backup.ldif
 ← ldap-backup.ldifをLDAPサーバーへ登録
Enter LDAP Password: ← LDAPサーバー管理者パスワード応答

SMTP-AuthLDAP

smbldap-useradd.plコマンドで作成したユーザでSMTP-Authが行えるようにする。メールサーバーを導入している場合のみ
[root@linux root]# vi /etc/sysconfig/saslauthd ← SASL認証設定ファイル編集
MECH=shadow
↓
MECH=pam ← SASL認証方式をPAM認証方式に変更
※SMTP-Auth認証経路をSASL⇒shadowから、SASL⇒PAM⇒LDAPに変更する

[root@linux root]# /etc/rc.d/init.d/saslauthd restart ← saslauthd再起動
saslauthd を停止中:                                        [OK]
saslauthd を起動中:                                        [OK]