Solaris10:Samba-3.4.0(AD連携)

提供:KinusatiWiki
移動: 案内, 検索

目次

samba 3.4.0インストール

Windows Client(Vista/2008/XP)からのファイル共有に利用するため、sambaをインストールする。 sambaはActive Directory連携させる。

ソフトウェアインストール

必要パッケージ

BerkeleyDB
OpenLDAP に必要。
openldap
Active Directory連携のために必要。
MIT
Active Directory連携に必要。Kerberos認証に利用する
libiconv
日本語ファイル取り扱いに必要。併せてパッチも適用することでeucjp-msを利用可となる

BerkeleyDB

BerkeleyDB.4.7.25導入を参照

openldap

OpenLDAP-2.4.16導入を参照

MIT

以下手順で導入

# wget http://web.mit.edu/kerberos/dist/krb5/1.6/krb5-1.6.3-signed.tar
# gtar xvfp krb5-1.6.3-signed.tar
# gtar xvzfp krb5-1.6.3.tar.gz
# cd krb5-1.6.3/src
# ./configure --prefix=/usr/local
# gmake 
# gmake install

libiconv

libiconv-1.13導入を参照

samba

以下手順で導入。Active Directoryサポートのため--with-adsを追加。

# wget http://us1.samba.org/samba/ftp/stable/samba-3.4.0.tar.gz
# gtar xvzfp samba-3.4.0.tar.gz
# cd samba-3.4.0/source3
# CPPFLAGS="-I/usr/local/include" \
LDFLAGS="-R/usr/local/lib -L/usr/local/lib" \
./configure \
--prefix=/usr/local \
--with-piddir=/var/run \
--with-logfilebase=/var/log/samba \
--with-privatedir=/usr/local/etc/samba/private \
--with-configdir=/usr/local/etc/samba \
--with-krb5=/usr/local \
--with-libiconv=/usr/local \
--with-ads
# gmake
# gmake install

注意 旧Sambaバージョンがインストールされていると、リンク時にエラーになる事があります。 私の場合samba-3.3.2 => samba-3.4.0にバージョンアップする際に以下のエラーが出ました。

Linking bin/smbd
Undefined                       first referenced
 symbol                             in file
_talloc_get_type_abort              smbd/ipc.o
wbcGetSidAliases                    lib/winbind_util.o
wbcGetpwsid                         lib/winbind_util.o
error_message                       libsmb/cliconnect.o  (symbol belongs to implicit dependency /usr/local/lib/libcom_err.so.3)
ld: fatal: Symbol referencing errors. No output written to bin/smbd
collect2: ld returned 1 exit status

コンパイル前には必ず旧バージョンをアンインストールしてください!!

アンインストールは旧バージョンのバイナリを作成したディレクトリに入ってmake uninstallを実行してください。

# cd samba-3.3.2/source
# gmake uninstall

設定

必要な設定項目は以下

ディスクマウント 
ファイルサーバに利用するディスクをマウントする
samba設定 
sambaの設定を行う
Active Directoryへの参加 
Active Directoryに対して、sambaサーバを参加させる

samba設定(Active Directory連携)

smb.confの設定

/usr/local/etc/samba/smb.confを以下の通り設定する。

[global]
   unix charset = UTF-8
   dos charset = CP932
   display charset = CP932
   workgroup = AD
   realm = AD.FOO.BAR.COM
   server string = SAMBA1
   hosts allow = 192.168. 127.
   passdb backend = smbpasswd
   log file = /var/log/samba/smbd.log
   max log size = 50
   security = ADS
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#============================ Share Definitions ==============================
[backup]
   path = /mnt/backup
   writable = yes
   printable = no

ログディレクトリの作成

ログディレクトリは手動で作成する。

# mkdir /var/log/samba

Active Directoryへの参加

Kerberos認証設定

/usr/local/etc/krb5.confファイルに以下を定義する。 注意 : 大文字・小文字ドメインの区別があります!!

[realms]
        <大文字ドメイン名> = {
                kdc = <ADサーバのホスト名。小文字>
        }

[domain_realm]
        .<小文字ドメイン名> = <大文字ドメイン名>
        <小文字ドメイン名>  = <大文字ドメイン名>

設定例)

[realms]
        AD.FOO.BAR.COM = {
                kdc = server1.ad.foo.bar.com
        }

[domain_realm]
        .ad.foo.bar.com = AD.FOO.BAR.COM
        ad.foo.bar.com  = AD.FOO.BAR.COM


DNSサーバをActive Directoryに対して設定する。/etc/resolv.confは以下の通り。

search <ADドメイン名>
nameserver <AD1のIP>
nameserver <AD2のIP>

設定例)

search ad.foo.bar.com
nameserver 192.168.0.1
nameserver 192.168.0.2

kinitコマンドを利用してKerberos認証する。

# /usr/local/bin/kinit administrator@<大文字ドメイン名>

コマンド実行例)

# /usr/local/bin/kinit administrator@AD.FOO.BAR.COM
=> 認証に成功した場合は何も表示されない。

klistコマンドを利用し、Kerberosチケット情報を取得する。

  1. /usr/local/bin/klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@AD.FOO.BAR.COM

Valid starting     Expires            Service principal
05/04/08 19:00:18  05/05/08 05:00:24  krbtgt/AD.FOO.BAR.COM@AD.FOO.BAR.COM
        renew until 05/05/08 19:00:18

コンピュータアカウントの登録

net ads joinを利用して、コンピュータアカウントを登録する。

# /usr/local/bin/net ads join -U Administrator

自動起動設定

Solaris10に準備されているsambaの情報を書き換えることで対応する。

# svccfg
svc:> select samba
svc:/network/smtp:postfix> editprop

EDITOR環境変数で指定したエディタ画面で以下の通り編集する

==================================================
# Property group "start"
# delprop start
# addpg start method
setprop start/exec = astring: ("/usr/local/sbin/smbd -D")
# setprop start/timeout_seconds = count: (170)
# setprop start/type = astring: (method)

# Property group "stop"
# delprop stop
# addpg stop method
setprop stop/exec = astring: ("/usr/bin/kill `cat /var/run/smbd.pid`")
# setprop stop/timeout_seconds = count: (60)
# setprop stop/type = astring: (method)

# Property group "tm_common_name"
# delprop tm_common_name
# addpg tm_common_name template
# setprop tm_common_name/C = ustring: ("SMB file server")

# Property group "tm_man_smbd"
# delprop tm_man_smbd
# addpg tm_man_smbd template
setprop tm_man_smbd/manpath = astring: ("/usr/local/man")
# setprop tm_man_smbd/section = astring: (1m)
# setprop tm_man_smbd/title = astring: (smbd)

# Property group "tm_man_smb_conf"
# delprop tm_man_smb_conf
# addpg tm_man_smb_conf template
setprop tm_man_smb_conf/manpath = astring: ("/usr/local/man")
# setprop tm_man_smb_conf/section = astring: (4)
# setprop tm_man_smb_conf/title = astring: (smb.conf)

設定を読み込ませて確認する

# svcadm refresh samba
# svcprop samba

サービスを起動させる

# svcadm enable samba
# svcs -p samba
STATE          STIME    FMRI
online         10:13:22 svc:/network/samba:default
               10:13:22     2843 smbd
               10:13:23     2844 smbd

参考)samba設定(スタンドアロンの場合)

smb.confの設定

/usr/local/etc/smb.confを以下の通り設定する。

[global]
   unix charset = EUCJP-MS
   dos charset = CP932
   display charset = CP932
   workgroup = WORKGROUP
   server string = SAMBA1
   hosts allow = 192.168. 127.
   passdb backend = tdbsam
   log file = /var/log/samba/smbd.log
   max log size = 50
   security = ADS
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#============================ Share Definitions ==============================
[backup]
   path = /mnt/backup
   writable = yes
   printable = no

アカウント登録

samba利用には、sambaアカウントおよびUNIXアカウント両方が必要であるため、以下の手順で登録する。

UNIXアカウントを登録する。

# useradd hoge -d /home/hoge -s /dev/null hoge

sambaに対してアカウントを登録する。

# pdbedit -a hoge
new password:        <= パスワード入力
retype new password: <= 再度パスワード入力
Unix username:        hoge
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1111111111-1111111111-111111111-501
Primary Group SID:    S-1-5-21-1111111111-1111111111-111111111-513
Full Name:            NFS Anonymous Access User
Home Directory:       \\samba1\nobody
HomeDir Drive:
Logon Script:
Profile Path:         \\samba1\nobody\profile
Domain:               SAMBA1
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    Sun, 11 May 2008 19:05:49 JST
Password can change:  Sun, 11 May 2008 19:05:49 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ipv6でアクセス制御

smb.confのhosts allowでアクセス制限が出来る。ipv6の場合も同様に出来る。

記述例)

hosts allow = 192.168.0.1 127. 2001:333:333:33::/64  ::1
個人用ツール