Solaris10:Samba設定
このページの情報は古いです。以下のページに移行しました。
目次 |
samba インストール
Windows Client(Vista/2008/XP)からのファイル共有に利用するため、sambaをインストールする。 sambaはActive Directory連携させる。
ソフトウェアインストール
必要パッケージ
- BerkeleyDB
- OpenLDAP に必要。
- openldap
- Active Directory連携のために必要。
- MIT
- Active Directory連携に必要。Kerberos認証に利用する
- libiconv
- 日本語ファイル取り扱いに必要。併せてパッチも適用することでeucjp-msを利用可となる
BerkeleyDB
- ソフトウェア情報
- 配布元 : http://www.oracle.com/technology/software/products/berkeley-db/index.html
- バージョン : 4.7.25
以下手順で導入
# gtar xvzfp db-4.7.25.tar.tar # cd db-4.7.25/build_unix # LDFLAGS="-R/usr/local/BerkeleyDB.4.7 -L/usr/local/BerkeleyDB.4.7" ../dist/configure --enable-compat185 # gmake # gmake install
openldap
- ソフトウェア情報
- 配布元 : http://www.openldap.org
- バージョン : 2.4.13
- ダウンロード : ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.13.tgz
以下手順で導入
# wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.13.tgz # gtar xvzfp openldap-2.4.13.tgz # cd openldap-2.4.13 # CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib" ./configure # gmake depend # gmake # gmake install
MIT
- ソフトウェア情報
- 配布元 : http://web.mit.edu/kerberos/
- バージョン : 1.6.3
- ダウンロード : http://web.mit.edu/kerberos/dist/krb5/1.6/krb5-1.6.3-signed.tar
以下手順で導入
# 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
- ソフトウェア情報
以下手順で導入
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz # wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.12-ja-4.patch.gz # gtar xvzfp libiconv-1.12.tar.gz # cd libiconv-1.12 # gzip -dc ../libiconv-1.12-ja-4.patch.gz | gpatch -p1 # ./configure # gmake ; gmake check # gmake install
samba
- ソフトウェア情報
以下手順で導入。Active Directoryサポートのため--with-adsを追加。
# wget http://us1.samba.org/samba/ftp/stable/samba-3.2.5.tar.gz # gtar xvzfp samba-3.2.5.tar.gz # cd samba-3.2.5/source # 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
Solaris10ではSambaパッケージの不具合でインストールが完了しても以下のエラーメッセージが出力される
bash-3.00# /usr/local/bin/pdbedit -L ld.so.1: pdbedit: fatal: libtalloc.so: open failed: No such file or directory Killed
以下のコマンドで修正する
# cd /usr/local/lib # ln -s libtalloc.so.1 libtalloc.so # ln -s libtdb.so.1 libtdb.so # ln -s libwbclient.so.0 libwbclient.so
設定
必要な設定項目は以下
- ディスクマウント
- ファイルサーバに利用するディスクをマウントする
- samba設定
- sambaの設定を行う
- Active Directoryへの参加
- Active Directoryに対して、sambaサーバを参加させる
samba設定(Active Directory連携)
smb.confの設定
/usr/local/etc/smb.confを以下の通り設定する。
[global] unix charset = EUCJP-MS 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チケット情報を取得する。
- /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
05/04/08 19:00:39 05/05/08 05:00:24 ldap/server1.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
Windows Server 2008に対しての登録が失敗する人は・・・
samba-3.0.28aではWindows Server 2008に対しての登録が失敗する。 samba-3.2.0pre3だとばっちり登録できるため、samba-3.0.28aでのWindows Server 2008対応は不十分だと思われる。
Windows Server 2008 とsamba-3.0.28a利用時の登録失敗) bash-3.00# /usr/local/bin/net ads join -U Administrator Administrator's password: Using short domain name -- AD [2008/05/05 22:09:49, 0] utils/net_rpc_join.c:net_rpc_join_ok(70) net_rpc_join_ok: failed to get schannel session key from server server1.foo.bar.com for domain AD. Error was NT_STATUS_ACCESS_DENIED Failed to verify membership in domain! Failed to join domain: Success
=> samba3.2系の記事に修正したため上記を取り消した。
自動起動設定
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