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:
↑

コンピュータのドメイン参加

↑

ログオン

  • さきほど作成した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
↑

動作確認

↑

コマンド

↑

ユーザ追加

# smbldap-useradd -a -m -P -g groupname username 
↑

グループ追加

# smbldap-groupadd -a "groupname"
このエントリーをはてなブックマークに追加
Last-modified: 2010-06-05 (土) 12:30:45   最終更新のRSS