Samba+OpenLDAP(目次)
| Table of Contents |
インストール環境
-
OS
- CentOS 5.4(kernel 2.6.18-164.6.1.el5)
-
パッケージ
- samba-3.0.33-3.15.el5_4
- samba-client-3.0.33-3.15.el5_4.1
- samba-swat-3.0.33-3.15.el5_4.1
- openldap-servers-2.3.43-3.el5
- openldap-clients-2.3.43-3.el5
- smbldap-tools.noarch 0:0.9.5-1.el5.rf
- rpmforge-release-0.3.6-1.el5.rf
- httpd-2.2.3-31.el5.centos.2
- php-5.1.6-24.el5_4.5
- php-ldap-5.1.6-24.el5_4.5
- php-mhash-5.1.6-15.el5.centos.1
OpenLDAP側の作業
インストール
-
samba.schemaが必要となるためsambaをインストール
# yum install samba# yum install perl* # yum install openldap-servers# yum install openldap-clients
設定
-
ldap管理者のパスワードを生成します。 今回は「ldapadmin」とします。
# slappasswdNew password: ldapadminRe-enter new password: ldapadmin{SSHA}za0pLkK+6MBkulRtycWUJeVFNsN8kqmb
-
DB_CONFIGのサンプルをコピーします。
# cp -rp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
-
sambaのスキーマをコピーします。
# cp -rp /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema
slapd.confの編集
-
下記設定を追加します。
# vi /etc/openldap/slapd.conf include /etc/openldap/schema/samba.schemasuffix "dc=oss,dc=dip,dc=jp"rootdn "cn=Manager,dc=oss,dc=dip,dc=jp"#先ほど生成したパスワードを入力しますrootpw {SSHA}za0pLkK+6MBkulRtycWUJeVFNsN8kqmbindexobjectClass,uid,sambaSID,uidNumber,gidNumber,cn,memberuid eq# ユーザが自分のパスワード変更できるようにアクセス権を設定するaccess to attrs=userPassword by self write by anonymous auth by * none# sambaaccess to attrs=SambaLMPassword,SambaNTPassword by self write by anonymous auth by * none#管理者のみ書き込み可能、その他のユーザは読み取り専用access to * by self write by * read
-
LDAPを起動します。
# /etc/init.d/ldap start
ユーザ情報、認証設定
-
LDAPに登録されたユーザをLinuxのユーザとして認識させるために、NSS(ネームサービス スイッチ)とPAM(プラガブル認証モジュール)の設定を行います
# authconfig-tui───────────────────┤ 認証の設定 ├────────────────────┐ユーザ情報[*] LDAPを使用認証[*] MD5 パスワードを使用[*] シャドウパスワードを使用[*] LDAP 認証を使用────────────────────┤ LDAP 設定 ├────────────────────┐サーバー: ldap://127.0.0.1/ベース DN: dc=oss-d,dc=net
これで以下の情報が変更されます。- ユーザ情報(/etc/nsswitc.conf)
- LDAP設定(/etc/openldap/ldap.conf)
- 認証設定(/etc/pam.d/system-auth)
-
LDAPサーバに接続できない場合、何度もリトライしないよう「/etc/ldap.conf」に以下を追加します。
# vi /etc/ldap.confbind_policy soft
自動起動の設定
-
chkconfigコマンドで自動起動をONにします
# chkconfig ldap on
-
chkconfigコマンドで自動起動の確認をします。LUNレベル3,4,5がonになっていれば問題ありません。
# chkconfig --list ldapldap 0:off 1:off 2:on 3:on 4:on 5:on 6:off
smbldap-toolsのインストール
インストール
-
smbldap-toolsは標準パッケージではないためrpmforgeのリポジトリをyumに加えて対応する
# wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm# rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
-
インストール
# yum install smbldap-tools
-
SIDを生成します。
# net getlocalsid SID for domain SERV200 is: S-1-5-21-1404179429-3428614465-2853648378
設定
smbldap.confの設定
- smbldap.confを設定します。
smbldap_bind.confの設定
-
smbldap_bind.confを編集します。
# vi /etc/smbldap-tools/smbldap_bind.conf#slavePw,masterPw は「slappasswd -s ldapadmin」の実行結果を設定slaveDN="cn=Manager,dc=oss-d,dc=net"slavePw="ldapadmin"masterDN="cn=Manager,dc=oss-d,dc=net"masterPw="ldapadmin"
LDAPデータベース初期化
-
初期データの登録時にオプションで管理者アカウント(Administrator)とゲストアカウント(Guest)を追加します。
# smbldap-populate -a Administrator -b GuestPopulating LDAP directory for domain DOMSMB (S-1-5-21-1404179429-3428614465-2853648378)(using builtin directory structure)adding new entry: dc=oss-d,dc=netadding new entry: ou=Users,dc=oss-d,dc=netadding new entry: ou=Groups,dc=oss-d,dc=netadding new entry: ou=Computers,dc=oss-d,dc=netadding new entry: ou=Idmap,dc=oss-d,dc=netadding new entry: uid=Administrator,ou=Users,dc=oss-d,dc=netadding new entry: uid=Guest,ou=Users,dc=oss-d,dc=netadding new entry: cn=Domain Admins,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Domain Users,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Domain Guests,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Domain Computers,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Administrators,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Account Operators,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Print Operators,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Backup Operators,ou=Groups,dc=oss-d,dc=netadding new entry: cn=Replicators,ou=Groups,dc=oss-d,dc=netadding new entry: sambaDomainName=DOMSMB,dc=oss-d,dc=netPlease provide a password for the domain Administrator:Changing UNIX and samba passwords for AdministratorNew password: ldapadminRetype new password: ldapadmin
samba側の作業
sambaの設定
smb.confの設定
-
Sambaの設定を変更します。
# vi /etc/samba/smb.conf#======================= Global Settings =====================================dos charset = UTF-8unix charset = UTF-8display charset = UTF-8# ----------------------- Network Related Options -------------------------workgroup = DOMSMBserver string = Samba Servernetbios name = MYSERVERsecurity = userpassdb backend = ldapsam:ldap://127.0.0.1admin users = Administratorguest account = Guest# ----------------------- Domain Members Options ------------------------domain master = Yesdomain logons = Yesldap suffix = dc=oss-d,dc=netldap machine suffix = ou=Computersldap user suffix = ou=Usersldap group suffix = ou=Groupsldap admin dn = cn=Manager,dc=oss-d,dc=netldap passwd sync = Yesldap ssl = Noadd user script = /usr/sbin/smbldap-useradd -m '%u'add machine script = /usr/sbin/smbldap-useradd -w '%u'add group script = /usr/sbin/smbldap-groupadd -p '%g'add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'delete user script = /usr/sbin/smbldap-userdel -r '%u'delete group script = /usr/sbin/smbldap-groupdel '%g'delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'# Browser Control Optionslocal master = yesos level = 64preferred master = yes#----------------------------- Name Resolution -------------------------------wins support = yes#============================ Share Definitions ============================== [homes] comment = Home Directories browseable = no writable = yes valid users = %S [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon browseable = no guest ok = yes writable = no share modes = no [Profiles] path = /var/lib/samba/profiles browseable = no guest ok = yes writable = yes profile acls = yes #移動ユーザプロファイルの設定 create mask = 0600 directory mask = 0700 [public] path = /var/www/public writable = yes
ディレクトリの作成
-
必要なディレクトリを作成します。
# mkdir -p /var/lib/samba/netlogon# chmod 755 /var/lib/samba/netlogon# mkdir -p /var/lib/samba/profiles# chmod 1777 /var/lib/samba/profiles# mkdir /var/www/public# chmod 1777 /var/www/public
ログオンスクリプトの作成
-
ログオン時に実行されるスクリプトを作成します。今回はログオン時に「\\myserver\共有」をZドライブとして設定するスクリプトを作成します。
# cd /var/lib/samba/netlogon# vi logon.batnet use z: \\myserver\public
-
改行コードをwindows用に変換します。
# nkf -w -Lu logon.bat > logon.bat2# mv logon.bat2 logon.bat
LDAP管理者パスワードの設定
-
sambaからLDAPにアクセスできるようにLDAP管理者のパスワードを登録します。
# smbpasswd -w ldapadminSetting stored password for "cn=Manager,dc=oss-d,dc=net" in secrets.tdb
これで/etc/samba/secrets.tdbにパスワードが保存されました。
自動起動の設定
-
chkconfigコマンドで自動起動をONにします
# chkconfig smb on
-
chkconfigコマンドで自動起動の確認をします。LUNレベル3,4,5がonになっていれば問題ありません。
# chkconfig --list smb smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
-
sambaを起動します。
# /etc/init.d/smb start
動作確認
ユーザ追加
-
テストユーザを追加します。
# smbldap-useradd -a -m -P testuserChanging UNIX and samba passwords for testuserNew password:Retype new password:
コンピュータのドメイン参加
-
下記手順に従いコンピュータをドメインに参加させます。
http://www.microsoft.com/japan/windowsxp/pro/using/itpro/networking/joindomain.mspx
参加の際に必要となる、ユーザ名、パスワードは以下を入力します。
ユーザ名 :Administrator
パスワード:ldapadmin
ログオン
- さきほど作成したtestuserでログオンして問題なければ完了です。
ldap-account-manager
ユーザ管理をCLIで行うのは大変なため、ユーザ管理ツール「ldap-account-manager」を導入します。
インストール
-
yumで必要なパッケージをインストールします。
# yum install httpd# yum install php# yum install php-ldap# yum install php-mhash
-
ldap-account-manager ダウンロードしてインストールします。
# wget "http://sourceforge.net/projects/lam/files/LAM/2.9.0/ldap-account-manager-2.9.0-0.fedora.1.noarch.rpm/download"# rpm -ivh ldap-account-manager-2.9.0-0.fedora.1.noarch.rpm
phpの設定
-
memory_limitが64M未満の場合はLDAP Account Managerでエラーになるため、64M以上に設定します。
# vi /etc/php.inimemory_limit = 64M
-
変更を反映させるためapacheを再起動します。
# /etc/init.d/httpd restart
LDAP Account Managerの設定
設定ファイルの作成
-
雛形を利用して設定ファイルを作成します。
# cd /var/www/html/lam/config# cp -rp config.cfg_sample config.cfg# cp -rp lam.conf_sample lam.conf
lam.confの編集
-
下記の設定を環境にあわせて変更します。
# vi /var/www/html/lam/config/lam.confserverURL: ldap://localhost:389admins: cn=Manager,dc=oss-d,dc=nettreesuffix: dc=oss-d,dc=netdefaultLanguage: ja_JP.utf8:UTF-8:日本語 (日本)types: suffix_user: ou=Users,dc=oss-d,dc=nettypes: suffix_group: ou=groups,dc=oss-d,dc=nettypes: suffix_host: ou=Computers,dc=oss-d,dc=nettypes: suffix_smbDomain: sambaDomainName=DOMSMB,dc=oss-d,dc=net
動作確認
-
ブラウザでアクセスして動作を確認して下さい。
http://192.168.11.200/lam/
コマンド
ユーザ追加
# smbldap-useradd -a -m -P -g groupname username
グループ追加
# smbldap-groupadd -a "groupname"