トップ > Ubuntu 8.04 によるサーバーの構築 >

PDC (Samba) の構築

Samba サーバーの設定

 アカウント情報が LDAP サーバーで管理されることを前提とした Samba サーバーの PDC 設定です。

  1. 以下のコマンドを実行して, smbldap-tools をインストールする。
    $ sudo apt-get install smbldap-tools
  2. /etc/samba/smb.conf を以下のように作成する。
    
    [global]
    	dos charset = CP932
    	unix charset = EUCJP-MS
    	display charset = CP932
    	workgroup = MYDOMAIN
    	netbios name = myhost
    	server string = PDC&LDAP-Server
    	os level = 64
    	domain master = Yes
    	preferred master = Yes
    	security = user
    	encrypt passwords = Yes
    	domain logons = Yes
    	#admin users = @"Domain Users"
    	admin users = Administrator
    
    	logon drive = U:
    	logon script = timesync.bat
    	logon path =
     
    	passdb backend = ldapsam:ldap://127.0.0.1
    	ldap suffix = dc=shitomi,dc=jp
    	ldap admin dn = cn=admin,dc=shitomi,dc=jp
    	ldap user suffix = ou=Users
    	ldap group suffix = ou=Groups
    	ldap machine suffix = ou=Computers
    	ldap passwd sync = Yes
    
    	add user script = /usr/sbin/smbldap-useradd '%u'
    	add machine script = /usr/sbin/smbldap-useradd -w '%u'
    	add group script = /usr/sbin/smbldap-groupadd '%g'
    	delete user script = /usr/sbin/smbldap-userdel '%u'
    	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'
    
    
    [netlogon]
    	comment = Script for Domain Logon
    	path = /home/Administrator/netlogon
    	writeable = No
    	browseable = No
    	guest ok = Yes
    
  3. /home/Administrator/netlogon ディレクトリを作成する。
  4. /home/Administrator/netlogon/timesync.bat を,以下のように作成する。
    net time \\myhost /set /y
    proxycfg -p 192.168.0.1:8080
    • 改行コードは CR+LF とする。
  5. 以下のコマンドを実行して, Samba サーバーを再起動する。
    $ sudo /etc/init.d/samba restart

smbldap-toolsの設定

  1. /etc/smbldap-tools/smbldap_bind.conf を,以下のように作成する。
    masterDN="cn=admin,dc=shitomi,dc=jp"
    masterPw="[LDAP管理者(rootpw)の平文パスワード]"
    slaveDN="cn=admin,dc=shitomi,dc=jp"
    slavePw="[LDAP管理者(rootpw)の平文パスワード]"
  2. 以下のコマンドを実行して, /etc/smbldap-tools/smbldap_bind.conf のアクセス権限を変更する。
    $ sudo chmod 600 /etc/smbldap-tools/smbldap_bind.conf
  3. 以下のコマンドを実行して,認証用の LDAP サーバーの rootpw と同じパスワード(平文)を登録する。
    $ sudo smbpasswd -w [rootpwの平文パスワード]
    • このパスワードは LDAP サーバーに管理者権限で接続するのに必要な情報で, /var/lib/samba/secrets.tdb に設定される。
  4. /etc/smbldap-tools/smbldap.conf を,以下のように作成する。
    SID="[取得したSDI]"

    sambaDomain="MYDOMAIN"

    slaveLDAP="127.0.0.1"
    slavePort="389"
    masterLDAP="127.0.0.1"
    masterPort="389"

    ldapTLS="0"

    suffix="dc=shitomi,dc=jp"
    usersdn="ou=Users,${suffix}"
    computersdn="ou=Computers,${suffix}"
    groupsdn="ou=Groups,${suffix}"
    idmapdn="ou=Idmap,${suffix}"
    sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
    scope="sub"
    hash_encrypt="MD5"

    userLoginShell="/bin/bash"
    userHome="/home/%U"
    userHomeDirectoryMode="700"
    userGecos="System User"
    defaultUserGid="513"
    defaultComputerGid="553"
    skeletonDir="/etc/skel"
    defaultMaxPasswordAge="365"

    userHomeDrive="U:"
    userScript="timesync.bat"
    • 以下のコマンドを実行することにより,ドメイン MYDOMAIN の SID を取得することができる。
      $ sudo net getlocalsid MYDOMAIN
  5. 以下のコマンドを実行して,初期データを登録する。
    $ sudo smbldap-populate
  6. 以下のコマンドを実行して,アカウント Administrator の登録と設定をする。
    $ sudo smbldap-useradd -a Administrator
    $ sudo smbldap-passwd Administrator

アカウントの管理コマンド

(参考) Windows NT サーバーからのアカウント情報の取得

  1. root でログインする。
  2. /etc/samba/smb.conf を以下のように作成する。
    [global]
    dos charset = CP932
    unix charset = EUCJP-MS
    display charset = CP932
    workgroup = NTDOMAIN
    netbios name = samba
    server string = Samba-Client
    os level = 20
    domain master = no
    preferred master = yes
    security = user
    encrypt passwords = yes
    domain logons = yes
    admin users = Administrator

    idmap uid = 1000-10000
    idmap gid = 1000-10000

    passdb backend = ldapsam:ldap://localhost
    ldap suffix = dc=shitomi,dc=jp
    ldap admin dn = cn=admin,dc=shitomi,dc=jp
    ldap user suffix = ou=People
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers
    ldap passwd sync = yes

    add user script = /usr/sbin/smbldap-useradd -m '%u'
    add group script = /usr/sbin/smbldap-groupadd '%g'
    add machine script = /usr/sbin/smbldap-useradd -w '%u'
    delete user script = /usr/sbin/smbldap-userdel -r '%u'
    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'
  3. /etc/nsswitch.conf の以下の行を修正する。
    
    passwd:     compat ldap winbind
    group:      compat ldap winbind
    
  4. 以下のコマンドを実行して, Samba サーバーを起動する。
    # /etc/init.d/samba start
  5. 以下のコマンドを実行して, Winbind を起動する。
    # /etc/init.d/winbind start
  6. 以下のコマンドを実行して, Windows NT サーバーからドメイン (例: NTDOMAIN ) の SID を取得する。
    # net getlocalsid NTDOMAIN
    SID for domain NTDOMAIN is: S-1-5-21-2938276695-1583456219-2977804693
  7. 以下のコマンドを実行して, Samba サーバーを停止する。
    # /etc/init.d/samba stop
  8. 以下のコマンドを実行して,初期データを登録する。
    # smbldap-populate
  9. 以下のコマンドを実行して, NT サーバーのドメインに参加する。
    # net rpc join -S [NTサーバー] -w NTDOMAIN -U Administrator
  10. 以下のコマンドを実行して, NT サーバーのアカウント情報を取得する。
    # net rpc vampire -S [NTサーバー] -U Administrator
  11. これまで PDC として運用してきた NT サーバーを停止し,その IP アドレスで Samba サーバーによる PDC の運用を開始する。

 このサイトに書かれていることが原因でトラブルが発生しても,私は責任を取ることができません。したがいまして,ここで述べられていることに関する実行は,自己責任でお願いいたします。なお,このサイトはリンクフリーで,リンク時の連絡も不要です。

サイト内関連リンク:OpenLDAP