
Ubuntu日本語フォーラム

ログインしていません。
こんちにちは。
TeraStation という製品を社内の Active Directory に参加させ、
Windows 共有フォルダを提供する NAS として使っていましたが
壊れてしまいました。
ネットを見ていたら TeraStation の中身は
Samba だという話を見かけたので、
自分で Linux を使って構築すれば
同じ事が実現できるのではないかと考えました。
都合よくディスク容量がそこそこあるサーバが空いたので
前々から興味を持っていた Ubuntu Server で
後述の手順で環境を構築してみたのですが
思ったように動作してくれません。
どなたかヒントや解決策を
ご存知の方がいらっしゃたらご教示ください。
■説明
aduser01 という AD ドメインユーザで
ログインしている Windows XP の PC から
Samba の共有フォルダ(share01)にアクセスすると
認証ダイアログが表示されてしまいます。
「valid users」で定義したユーザなので
認証なしでフォルダの中身が表示されるようにしたいです。
※「template homedir」で指定したホームディレクトリについては
初回アクセス時に自動で作成されているようです。
最終目標としては
「valid users」で定義されていて「read list」にも
定義されているユーザ/グループは読み取り専用とし、
「valid users」のみ定義されているユーザ/グループは
読み書き可能にしたいと考えています。
「log level = 3」を定義してから
/var/log/samba/ 配下のログを確認したところ
後述のエラーっぽいメッセージが出力されていました。
Samba-JP のホームページを見ると
バージョン 3.3.6 が最新みたいなので
バージョンアップすれば進展するかも?と思いましたが、
apt-get を使ったパッケージ管理で
現状の 3.3.2 → 3.3.6 に
バージョンアップする事が可能なのか?
可能であればどのような手順で実施すればよいのか?
などがわからない状態です。
■環境情報
OS : Ubuntu 9.04 Server Edition
ホスト名 : mynas01
Samba : Ver 3.3.2
likewise-open : Ver 4.1
ドメインコントローラOS: Windows Server 2003 R2 Standard Edition SP2
ドメインコントローラ名: mydc01
ADドメイン名 : adnet.hogehoge.co.jp
NetBIOSドメイン名 : HOGEHOGE-ADNET
構築サーバ用のADユーザ: HOGEHOGE-ADNET\mynas01
■環境構築
次の手順で環境を構築しました。
(1) Ubuntu 9.04 Server Edition をインストール
※ソフトウェアの選択画面では「OpenSSH Server」のみ選択
(2) 各種パッケージをインストール
$ sudo apt-get update
$ sudo apt-get install sysv-rc-conf
$ sudo apt-get install samba
$ sudo apt-get install winbind
$ sudo apt-get install krb5-kdc
※Kerberosサーバおよび管理サーバのホスト名の
問い合わせ時には mydc01 と入力。
(3) インストールしたパッケージの確認
$ sudo dpkg --list
[結果]
ii samba 2:3.3.2-1ubuntu3 SMB/CIFS file, print, and login server for U
ii samba-common 2:3.3.2-1ubuntu3 common files used by both the Samba server a
ii winbind 2:3.3.2-1ubuntu3 Samba nameservice integration server
ii krb5-config 1.22 Configuration files for Kerberos Version 5
ii krb5-user 1.6.dfsg.4~beta1-5ubuntu2 Basic programs to authenticate using MIT Ker
(4) Samba 用のディレクトリを作成
★ドメインユーザ用のディレクトリを作成
$ sudo mkdir /home/HOGEHOGE-ADNET/
$ sudo chown root:root /home/HOGEHOGE-ADNET/
$ sudo chmod 755 /home/HOGEHOGE-ADNET/
★Samba の共有フォルダを作成
$ sudo mkdir /home/hogehoge/samba-share01
$ sudo chown hogehoge:hogehoge /home/hogehoge/samba-share01
(5) 各種設定ファイルの編集
★/etc/nsswitch.conf
以下の内容に編集する。
passwd: compat winbind
group: compat winbind
hosts: files dns wins
★/etc/pam.d/common-account
以下の内容に編集する。
account [success=2 default=ignore] pam_winbind.so
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
★/etc/pam.d/common-auth
以下の内容に編集する。
auth [success=2 default=ignore] pam_winbind.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
★/etc/pam.d/common-password
以下の内容に編集する。
password [success=2 default=ignore] pam_winbind.so
password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password requisite pam_deny.so
password required pam_permit.so
★/etc/pam.d/common-password
以下の内容に編集する。
password [success=2 default=ignore] pam_winbind.so
password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password requisite pam_deny.so
password required pam_permit.so
★/etc/pam.d/common-session
以下の内容に編集する。
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_winbind.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_ck_connector.so nox11
★/etc/samba/smb.conf
以下の内容に編集および追記する。
[global]
workgroup = HOGEHOGE-ADNET
security = ads
realm = ADNET.HOGEHOGE.CO.JP
password server = mydc01
idmap uid = 10000-4294967295
idmap gid = 10000-4294967295
template shell = /bin/bash
template homedir = /home/%D/%U
winbind offline logon = yes
[share01]
comment = Shared Folder 01
path = /home/hogehoge/samba-share01
browseable = yes
read only = no
guest ok = no
force user = hogehoge
valid users = @adグループ01,aduser01
read list = aduser01
(6) デーモンの再起動
$ sudo /etc/init.d/samba restart
$ sudo /etc/init.d/winbind restart
(7) ADドメインに参加
$ sudo ntpdate mydc01
$ sudo kinit [email protected]
$ sudo klist
$ sudo net ads join -U mynas01
$ wbinfo -u
$ getent passwd HOGEHOGE-ADNET\\mynas01
$ getent passwd HOGEHOGE-ADNET\\aduser01
$ wbinfo -g
$ getent group HOGEHOGE-ADNET\\adグループ01
■/var/log/samba/ 配下のログ
[/var/log/samba/log.smbd]
★Samba 起動直後に出力されたログ
[2009/06/25 11:14:43, 3] lib/util_sock.c:interpret_string_addr_internal(122)
interpret_string_addr_internal: getaddrinfo failed for name :: [Address family for hostname not supported]
★コンピュータを開いたタイミング(共有フォルダやプリンタとFAXの表示)で出力されたログ
[2009/06/25 11:15:39, 2] lib/messages_local.c:message_notify(270)
message to process 3712 failed - No such process
★共有フォルダをダブルクリックしたタイミングで出力されたログ
[log.winbindd]
★コンピュータを開いたタイミング(共有フォルダやプリンタとFAXの表示)で出力されたログ
[2009/06/25 11:15:14, 2] winbindd/winbindd.c:remove_client(744)
final write to client failed: Broken pipe
[/var/log/samba/log.クライアントホスト名]
★コンピュータを開いたタイミング(共有フォルダやプリンタとFAXの表示)で出力されたログ
[2009/06/25 11:15:29, 3] smbd/error.c:error_packet_set(61)
error packet at smbd/trans2.c(7637) cmd=50 (SMBtrans2) NT_STATUS_NETWORK_ACCESS_DENIED
[2009/06/25 11:15:29, 3] smbd/msdfs.c:get_referred_path(813)
get_referred_path: |share01| in dfs path \192.168.1.101\share01 is not a dfs root.
[2009/06/25 11:15:29, 3] smbd/error.c:error_packet_set(61)
error packet at smbd/trans2.c(7299) cmd=50 (SMBtrans2) NT_STATUS_NOT_FOUND
[2009/06/25 11:15:39, 0] lib/fault.c:fault_report(40)
===============================================================
[2009/06/25 11:15:39, 0] lib/fault.c:fault_report(41)
INTERNAL ERROR: Signal 6 in pid 3712 (3.3.2)
Please read the Trouble-Shooting section of the Samba3-HOWTO
[2009/06/25 11:15:39, 0] lib/fault.c:fault_report(43)
From: http://www.samba.org/samba/docs/Samba3-HOWTO.pdf
[2009/06/25 11:15:39, 0] lib/fault.c:fault_report(44)
===============================================================
[2009/06/25 11:15:39, 0] lib/util.c:smb_panic(1673)
PANIC (pid 3712): internal error
[2009/06/25 11:15:39, 0] lib/util.c:log_stack_trace(1777)
BACKTRACE: 20 stack frames:
#0 /usr/sbin/smbd(log_stack_trace+0x2d) [0xb7b9b17c]
#1 /usr/sbin/smbd(smb_panic+0x80) [0xb7b9b2d9]
#2 /usr/sbin/smbd [0xb7b86c7e]
#3 [0xb79ce400]
#4 /lib/tls/i686/cmov/libc.so.6(abort+0x188) [0xb758b098]
#5 /usr/lib/libtalloc.so.1(talloc_free+0x22d) [0xb76d25dd]
#6 /usr/lib/libwbclient.so.0(wbcFreeMemory+0x21) [0xb76c2d93]
#7 /lib/security/pam_winbind.so(pam_sm_setcred+0x3cb) [0xb729707a]
#8 /lib/libpam.so.0 [0xb772a3b1]
#9 /lib/libpam.so.0(pam_setcred+0x3f) [0xb7729b4f]
#10 /usr/sbin/smbd [0xb7be8816]
#11 /usr/sbin/smbd(smb_pam_close_session+0x81) [0xb7be88d0]
#12 /usr/sbin/smbd(session_yield+0x13e) [0xb7a71652]
#13 /usr/sbin/smbd(invalidate_vuid+0x48) [0xb7a75fbd]
#14 /usr/sbin/smbd(reply_ulogoffX+0xa3) [0xb7ddfa4a]
#15 /usr/sbin/smbd [0xb7a96bf0]
#16 /usr/sbin/smbd(smbd_process+0xf44) [0xb7a98c2c]
#17 /usr/sbin/smbd(main+0x1126) [0xb7a602ff]
#18 /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7574775]
#19 /usr/sbin/smbd [0xb7a5d071]
[2009/06/25 11:15:39, 0] lib/util.c:smb_panic(1678)
smb_panic(): calling panic action [/usr/share/samba/panic-action 3712]
[2009/06/25 11:15:39, 0] lib/util.c:smb_panic(1686)
smb_panic(): action returned status 0
[2009/06/25 11:15:39, 0] lib/fault.c:dump_core(231)
dumping core in /var/log/samba/cores/smbd
オフライン
こんばんは
単なるNASの代替えでしたら、Ubuntu-Server+SambaよりFreeNasをインストールしたほうが簡単です。サーバ設置の勉強にならないくらいです。
http://sourceforge.jp/magazine/09/05/27/0320230
オフライン
上に追加
FreeNasはCLI操作です。
GUIがお好みなら、そしてもう少し高機能なら、Openfilerがおすすめ。
http://sourceforge.jp/magazine/08/09/12/0134200
http://www.openfiler.com/
オフライン
# 個人的にもsambaをメンバPC扱いしてNASにするぐらいなら箱NASのままやFreeNASのほうが楽だと思います。
このままsambaで続けるのであれば、wbinfoとかgetentコマンドでユーザ情報とか正しく引けるか再度確認してみてください。
getent passwd とか getent group とか余分なユーザやグループを指定せずにです。
wbinfo -uとかではADのユーザがひけるかとかも。
「(7) ADドメインに参加」あたりでの実行結果がかかれていないので、この時点で正常に接続できているか判断つきません。
あと
・ケルベロス側のレルムとかはあってますよね?
・AD側にメンバーPCとして出現していますよね?
・/etc/hostsにADサーバ(password serverのホスト)のIPはかかれていますか? (直接関係しないとは思いますが)
ぐらいかな...。
オフライン
funatogawa さん、n_saito さん回答ありがとうございます。
実は最初に FreeNAS, Openfiler に目を付けて
検証してみました。
また、社内で TeraStation IS も使っているので
将来的な事も考えて iSCSI や NFS も検証しています。
■FreeNAS
Active Directory に参加することはできるようですが、
共有フォルダのアクセス権を制御できないようなので諦めました。
また、iSCSI も VMWare ESX や Xen Server 等で利用したら
負荷が高いときに落ちることがあったので
現時点のバージョンでは厳しいと考えました。
■Openfiler
すみません。具体的な理由を忘れてしまったのですが、
FreeNAS と並行して検証していた時に
FreeNAS よりもビミョーだな~と思って諦めました。
それと当初は likewise-open も試していましたが
自動生成される設定が Samba 3.3 に合っていないように思えたのと
情報が少ないのでとりあえず使うのを止めました。
> # 個人的にもsambaをメンバPC扱いしてNASにするぐらいなら箱NASのままやFreeNASのほうが楽だと思います。
>
仰るとおり箱NASを買ったほうが楽だとは思いますが
今回は購入費用をかけずに進めたい事と
勉強も兼ねて作業を進めたいと考えています。
> ・ケルベロス側のレルムとかはあってますよね?
>
机上での確認と kinit, klist コマンドの結果から
合っていると判断しています。
> ・AD側にメンバーPCとして出現していますよね?
>
ドメインに参加した辺りのタイミングで
ドメインコントローラの Computers に登録されていました。
> ・/etc/hostsにADサーバ(password serverのホスト)のIPはかかれていますか? (直接関係しないとは思いますが)
>
DNSサーバにドメインコントローラを指定しており、
ホスト名、FQDN のどちらでも名前解決できています。
ADドメインに参加できているようなので
問題ないと判断し、
hosts には定義していません。
> このままsambaで続けるのであれば、wbinfoとかgetentコマンドでユーザ情報とか正しく引けるか再度確認してみてください。
> getent passwd とか getent group とか余分なユーザやグループを指定せずにです。
> wbinfo -uとかではADのユーザがひけるかとかも。
>
結果は以下のとおり、問題なさそうです。
$ wbinfo -u
→ ADドメインユーザの一覧が表示された。
$ wbinfo -g
→ ADドメイングループの一覧が表示された。
$ getent passwd
→ ローカルユーザの一覧が表示された。
$ getent group HOGEHOGE-ADNET\\adグループ01
→ ローカルグループの一覧が表示された。
$ getent passwd HOGEHOGE-ADNET\\mynas01
→ 正常に情報が表示された。
$ getent passwd HOGEHOGE-ADNET\\aduser01
→ 正常に情報が表示された。
$ getent group HOGEHOGE-ADNET\\adグループ01
→ 正常に情報が表示された。
いろいろと説明足らずで申し訳ございません。
引き続きご指摘いただけると助かります。
オフライン
なんどもすみません。
$ getent group HOGEHOGE-ADNET\\adグループ01
→ ローカルグループの一覧が表示された。
は
$ getent group
→ ローカルグループの一覧が表示された。
の間違いでした。
オフライン
friendee による投稿:
結果は以下のとおり、問題なさそうです。
(snip)
$ getent passwd
→ ローカルユーザの一覧が表示された。
$ getent group HOGEHOGE-ADNET\\adグループ01
→ ローカルグループの一覧が表示された。
ADに組み込んでてgetentしたときはADのユーザやグループも出力されていた記憶があるんだけど...手元に環境がないので試せないところがツラいw
で、そもそも
friendee による投稿:
aduser01 という AD ドメインユーザで
ログインしている Windows XP の PC から
Samba の共有フォルダ(share01)にアクセスすると
認証ダイアログが表示されてしまいます。
「valid users」で定義したユーザなので
認証なしでフォルダの中身が表示されるようにしたいです。
※「template homedir」で指定したホームディレクトリについては
初回アクセス時に自動で作成されているようです。
最終目標としては
「valid users」で定義されていて「read list」にも
定義されているユーザ/グループは読み取り専用とし、
「valid users」のみ定義されているユーザ/グループは
読み書き可能にしたいと考えています。
という話を誤解した気がします。m(__)m
これだと、「アクセスは正常(みたい)だけど、認証がウザいので無しにしたい」ということですよね?
AD連携が正しくできていると仮定すれば、
friendee による投稿:
valid users = @adグループ01,aduser01
read list = aduser01
の記述がおかしいかもしれません。
最初のアクセス時に認証した時点でNGだったのでダイアログが出現したという気がします。
winbind separator をいじっていない限り
valid users = @HOGEHOGE-ADNET\adグループ01,HOGEHOGE-ADNET\aduser01
read list = HOGEHOGE-ADNET\aduser01
になるはずです。
# winbind use default domain = yes という手もあったと記憶していますが...。
オフライン
n_saito さん回答ありがとうございます。
n_saito による投稿:
AD連携が正しくできていると仮定すれば、
valid users = @adグループ01,aduser01
read list = aduser01
の記述がおかしいかもしれません。
最初のアクセス時に認証した時点でNGだったのでダイアログが出現したという気がします。
winbind separator をいじっていない限り
valid users = @HOGEHOGE-ADNET\adグループ01,HOGEHOGE-ADNET\aduser01
read list = HOGEHOGE-ADNET\aduser01
になるはずです。
ご教示いただいた設定で試したところ、
認証ダイアログが表示されなくなり、
ADユーザ/グループによるアクセス制御も
正常に動作しているようです。
途中でNetBIOSドメイン名を
付ける設定にしてみた時もあったのですが、
その時はうまく動かなかったので元に戻していました。
※その時はおそらく違う原因があったのだと思います。
原因がわかってみると単純な事でしたが、
他の方にご指摘いただかないと
気付くのにもっと時間がかかっていたと思います。
大変助かりました。
ありがとうございました。
P.S.
ちなみに BACKTRACE のエラーログは
未だに出続けているようです。( ̄∇ ̄;)
オフライン
突然に乱入して、しかも全くのド素人の質問で申し訳ありません。
FreeNasはCLI操作です。
OpenfilerはGUI操作と言う事までは解かりました。
この2つサーバーソフトはUbutuではなく、他のディストリビューションでインストールして稼動させるものなのですよね。
それは大体確認済みですが、一応フォーラムで確認してUbutuのパソコンを他のディストリビューションに変更したいと思っています。
誠に申し訳ございません。
どうかご回答の程宜しくお願い申し上げます。
rhythm
既にCentOSを焼きました。
CentOSにはキットこのようなフォーラムはないと思いますが、確かRedHat系?
同じLinuxだし、元々Ubuntu も知らないから元々です。
Openfillerもオープンなのかな?
まだUbuntu も残っていますから、今後とも宜しくお願い申し上げます。
rhythm
つかぬことですが・・・
「CentOS」は以前私が「Fedora」か「Ubuntu」でどっちか迷っていて、どっちも一応インストールしていましたが、結局「Ubuntu」に決めましたが、「CentOS」をインストールする際のステップは殆んど「Fedora」と酷似していました。
これが「RedHat系」ってものかと確信致しました。
失礼致しました。
rhythm