CentOS 5.4 x64でSambaとOpenLDAPを使ってPDCサーバを設定

タックス

※ AD DCを構築できるCentOS 5.x/6.x対応のSamba4のrpmをそれぞれwingリポジトリで公開しました。こちらをご使用になられた方が構築も楽です。(2013/3/14)
CentOS 6.3 x86_64でSamba4 4.0.3を設定(2台のサーバでレプリケーション) - にわかSEの独り言

※ 下記もご覧下さい。新しいSambaとOpenLDAPの設定です。(2010/1/5)
CentOS 5.4 x64のSamba 3.4.2とOpenLDAP 2.4.19でPDCサーバ設定 - にわかSEの独り言

CentOS 5.4でSambaとOpenLDAPを使って、PDCサーバ(Windows2000のドメインコントローラ相当)を設定する方法をご紹介します。
Sambaのバージョンは、基本はCentOSの標準である3.0.33ですが、このブログでも紹介している3.3.x、3.4.xでも設定方法は変わりません。

    前提条件は以下のとおりです。

    ドメイン:hoge.com
    ドメインコントローラー名:WINGDOMAIN
    NetBIOS名:WING-CENTOS
    一般ユーザ:wing

  • SambaとOpenLDAPのインストール

  • あらかじめインストールされているか確認。
    # rpm -q samba
    # rpm -q openldap-servers
    # rpm -q openldap-clients

    インストールされていなければ、以下を実施。
    # yum -y install samba samba-client openldap-servers openldap-clients

  • Samba用LDAPサーバー操作ツールセットアップ

  • # yum -y install perl-LDAP

    必要なPerlモジュールをダウンロードしインストール。
    # wget http://packages.sw.be/perl-Crypt-SmbHash/perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm
    # wget http://packages.sw.be/perl-Digest-SHA1/perl-Digest-SHA1-2.12-2.el5.rf.x86_64.rpm
    # wget http://packages.sw.be/perl-Jcode/perl-Jcode-2.07-1.el5.rf.noarch.rpm
    # wget http://packages.sw.be/perl-Unicode-Map/perl-Unicode-Map-0.112-1.el5.rf.x86_64.rpm
    # wget http://packages.sw.be/perl-Unicode-Map8/perl-Unicode-Map8-0.12-1.el5.rf.x86_64.rpm
    # wget http://packages.sw.be/perl-Unicode-String/perl-Unicode-String-2.09-1.2.el5.rf.x86_64.rpm
    # wget http://packages.sw.be/perl-Unicode-MapUTF8/perl-Unicode-MapUTF8-1.11-1.2.el5.rf.noarch.rpm
    # wget http://packages.sw.be/smbldap-tools/smbldap-tools-0.9.5-1.el5.rf.noarch.rpm

    # rpm -ivh perl*
    # rpm -ivh smbldap-tools-0.9.5-1.el5.rf.noarch.rpm

  • 管理者用パスワード取得

  • # slappasswd -s パスワード -h {MD5}
    ※表示された結果は、メモすること。

  • /etc/openldap/slapd.conf編集

  • # cp /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema/
    # 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=hoge,dc=com"
    rootdn "cn=Manager,dc=hoge,dc=com"

    # 追加
    rootpw ※メモした管理者用パスワード

    # 追加
    access to attrs=userPassword
    by self write
    by dn="cn=Manager,dc=hoge,dc=com" write
    by anonymous auth
    by * none

    # 追加
    access to *
    by dn="cn=Manager,dc=hoge,dc=com" write
    by self write
    by * read

  • /etc/openldap/ldap.conf編集

  • # vi /etc/openldap/ldap.conf
    BASE    dc=hoge, dc=com

  • DB_CONFIG.exampleのコピー

  • # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

  • LDAPの起動

  • # service ldap start

  • LDAPサーバーの初期情報登録

  • # vi /usr/share/openldap/migration/migrate_common.ph
    $DEFAULT_MAIL_DOMAIN = "padl.com";

    $DEFAULT_MAIL_DOMAIN = "hoge.com";

    $DEFAULT_BASE = "dc=padl,dc=com";

    $DEFAULT_BASE = "dc=hoge,dc=com";

    # vi base.ldif
    dn: dc=hoge,dc=com
    objectClass: dcObject
    objectclass: organization
    o: hoge Organization
    dc: hoge

    dn: cn=Manager,dc=hoge,dc=com
    objectClass: organizationalRole
    cn: Manager

    dn: ou=Users,dc=hoge,dc=com
    objectClass: organizationalUnit
    ou: Users

    dn: ou=Groups,dc=hoge,dc=com
    objectClass: organizationalUnit
    ou: Groups

    # ldapadd -h localhost -x -D "cn=Manager,dc=hoge,dc=com" -W -f base.ldif
    Enter LDAP Password: パスワード
    adding new entry "dc=hoge,dc=com"

    adding new entry "cn=Manager,dc=hoge,dc=com"

    adding new entry "ou=Users,dc=hoge,dc=com"

    adding new entry "ou=Groups,dc=hoge,dc=com"

    # rm -rf base.ldif

  • 既存ユーザー情報をLDAPサーバーへ登録

  • # useradd wing
    # passwd wing
    # grep ":5[0-9][0-9]" /etc/passwd > passwd
    # /usr/share/openldap/migration/migrate_passwd.pl passwd > passwd.ldif
    # vi passwd.ldif
    dn: uid=wing,ou=Users,dc=hoge,dc=com
    uid: wing
    cn: wing
    objectClass: account
    objectClass: posixAccount
    objectClass: top
    objectClass: shadowAccount
    userPassword: {crypt}~
    shadowLastChange: 14348
    shadowMax: 99999
    shadowWarning: 7
    loginShell: /bin/bash
    uidNumber: 500
    gidNumber: 500
    homeDirectory: /home/wing

    # ldapadd -h localhost -x -D "cn=Manager,dc=hoge,dc=com" -W -f passwd.ldif
    Enter LDAP Password: パスワード
    adding new entry "uid=wing,ou=Users,dc=hoge,dc=com"

    # rm -rf passwd
    # rm -rf passwd.ldif

  • 既存グループ情報をLDAPサーバーへ登録

  • # grep ":5[0-9][0-9]" /etc/group > group
    # /usr/share/openldap/migration/migrate_group.pl group > group.ldif
    # vi group.ldif
    dn: cn=wing,ou=Groups,dc=hoge,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: wing
    userPassword: {crypt}x
    gidNumber: 500

    # ldapadd -h localhost -x -D "cn=Manager,dc=hoge,dc=com" -W -f group.ldif
    Enter LDAP Password: パスワード
    adding new entry "cn=wing,ou=Groups,dc=hoge,dc=com"

    # rm -rf group
    # rm -rf group.ldif

  • ユーザー認証方式にLDAP認証を追加

  • # authconfig-tui

    [*] LDAP を使用
    [*] LDAP 認証を使用

    「次へ」

    サーバー: ldap://127.0.0.1/
    ベース DN: dc=hoge,dc=com

    「次へ」

  • Sambaとユーザー認証方式をLDAPサーバーに切り替える設定

  • # vi /etc/samba/smb.conf
    [global]
    unix charset = UTF-8
    dos charset = CP932
    display charset = UTF-8
    workgroup = WINGDOMAIN
    server string = Samba Server Version %v
    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
    passdb backend = ldapsam:ldap://localhost
    ldap suffix = dc=hoge,dc=com
    ldap admin dn = cn=Manager,dc=hoge,dc=com
    ldap user suffix = ou=Users
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers
    ldap passwd sync = yes
    ldap ssl = No ※Samba 3.3.xの場合はDefaultがYesになっているので設定
    admin users = Administrator
    dos filetime resolution = yes

    netbios name = WING-CENTOS
    security = user
    load printers = yes
    cups options = raw
    encrypt passwords = yes

    logon path = \\%L\profiles\%U
    logon home =
    logon drive = H:

    [homes]
    comment = Home Directories
    browseable = no
    writable = yes

    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes

    [netlogon]
    comment = Network Logon Service
    path = /var/lib/samba/netlogon
    write list = administrator wing
    guest ok = yes

    [Profiles]
    profile acls = yes
    path = /var/lib/samba/profiles
    read only = no
    writeable = yes
    create mask = 0600
    directory mask = 0700
    guest ok = yes
    browseable = no

    # mkdir -p /var/lib/samba
    # mkdir -p /var/lib/samba/netlogon
    # mkdir -p /var/lib/samba/profiles
    # chown -R root:root /var/lib/samba/
    # chmod 0777 /var/lib/samba/netlogon
    # chmod 1777 /var/lib/samba/profiles

  • Sambaの起動

  • # service smb start

  • Samba、LDAPの自動起動設定

  • # chkconfig smb on
    # chkconfig ldap on

  • Sambaの管理用パスワードの設定

  • # smbpasswd -w パスワード

  • Samba用LDAPサーバー操作ツール設定

  • # net getlocalsid WINGDOMAIN
    ※ 表示されたSIDをメモする。

    # vi /etc/smbldap-tools/smbldap.conf
    SID="S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX"

    SID="メモしたSID"

    sambaDomain="DOMSMB"

    sambaDomain="WINGDOMAIN"

    slaveLDAP="ldap.iallanis.info"

    slaveLDAP="127.0.0.1"

    masterLDAP="ldap.iallanis.info"

    masterLDAP="127.0.0.1"

    ldapTLS="1"

    ldapTLS="0"

    suffix="dc=iallanis,dc=info"

    suffix="dc=hoge,dc=com"

    hash_encrypt="SSHA"

    hash_encrypt="MD5"

    defaultMaxPasswordAge="45"

    # defaultMaxPasswordAge="45"

    userSmbHome="\\PDC-SRV\%U"

    userSmbHome="\\WING-CENTOS\%U"

    userProfile="\\PDC-SRV\profiles\%U"

    userProfile="\\WING-CENTOS\profiles\%U"

    # vi /etc/smbldap-tools/smbldap_bind.conf
    slaveDN="cn=Manager,dc=iallanis,dc=info"
    slavePw="secret"

    slaveDN="cn=Manager,dc=hoge,dc=com"
    slavePw="パスワード"

    masterDN="cn=Manager,dc=iallanis,dc=com"
    masterPw="secret"

    masterDN="cn=Manager,dc=hoge,dc=com"
    masterPw="パスワード"

    # smbldap-populate -a Administrator -b Guest
    ※ Administratorのパスワードを入力

    # mkdir /home/Administrator
    # chmod 700 /home/Administrator

  • iptablesの設定

  • ※ iptablesの設定をしている方のみ。

    # vi /etc/sysconfig/iptables
    以下を追加
    # Samba
    -A INPUT -p udp --dport 137:138 -j ACCEPT
    -A INPUT -p tcp --dport 139:445 -j ACCEPT

    # LDAP
    -A INPUT -p tcp --dport 389 -j ACCEPT

  • サーバーの再起動

  • # reboot

  • Windows XP Professionalでドメイン参加

  • ドメインの参加が出来れば正常です。


    ちなみに、Samba 4.0.0からはLDAPなどを統合し、ActiveDirectory(Windows Server 2003相当)ができるらしいですね。
    次期バージョンのSambaが楽しみです。

    以下、参考リンクです。

    Wikipedia(Linux)
    Wikipedia(CentOS)
    Wikipedia(LDAP)
    Wikipedia(OpenLDAP)
    Wikipedia(Samba)
    Wikipedia(ドメインコントローラ)

関連記事


FC2Blog Rankingblogram投票ボタンとれまが人気ブログランキングブログランキング・にほんブログ村へ
くる天 人気ブログランキングにほんブログ村 IT技術ブログ CentOSへ

テーマ : Linux
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

WING☆

Author:WING☆


カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
カウンター
お問い合わせ

名前:
メール:
件名:
本文:

WING☆からのお知らせ
  • CentOS 7設定集
  •    └wingリポジトリ(el7)

  • CentOS 6 x64設定集
  •    └wingリポジトリ(el6)

  • CentOS 5 x64設定集
  •    └wingリポジトリ(el5)



    My Yahoo!に追加

    FC2ブログランキング



    リンク
    ブロとも一覧
    Virtualization & Sever Maniax
    RSSリンクの表示
    QRコード
    QRコード
    ブロとも申請フォーム

    この人とブロともになる