Solaris10:Samba-3.4.0(AD連携)
目次 |
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
openldap
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
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チケット情報を取得する。
- /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