お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-06-25 21:00:24

friendee
新しいメンバ
登録日: 2009-06-25

Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

こんちにちは。

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

オフライン

 

#2 2009-06-25 23:02:50

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

こんばんは
単なるNASの代替えでしたら、Ubuntu-Server+SambaよりFreeNasをインストールしたほうが簡単です。サーバ設置の勉強にならないくらいです。
http://sourceforge.jp/magazine/09/05/27/0320230

オフライン

 

#3 2009-06-25 23:30:56

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

上に追加
FreeNasはCLI操作です。
GUIがお好みなら、そしてもう少し高機能なら、Openfilerがおすすめ。
http://sourceforge.jp/magazine/08/09/12/0134200
http://www.openfiler.com/

オフライン

 

#4 2009-06-26 08:40:10

n_saito
メンバ
登録日: 2009-06-23

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

# 個人的にも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はかかれていますか? (直接関係しないとは思いますが)
ぐらいかな...。

オフライン

 

#5 2009-06-26 10:35:45

friendee
新しいメンバ
登録日: 2009-06-25

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

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
      → 正常に情報が表示された。

いろいろと説明足らずで申し訳ございません。
引き続きご指摘いただけると助かります。

オフライン

 

#6 2009-06-26 10:37:25

friendee
新しいメンバ
登録日: 2009-06-25

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

なんどもすみません。

    $ getent group HOGEHOGE-ADNET\\adグループ01
      → ローカルグループの一覧が表示された。



    $ getent group
      → ローカルグループの一覧が表示された。

の間違いでした。

オフライン

 

#7 2009-06-26 13:39:07

n_saito
メンバ
登録日: 2009-06-23

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

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 という手もあったと記憶していますが...。

オフライン

 

#8 2009-06-26 15:23:41

friendee
新しいメンバ
登録日: 2009-06-25

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

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 のエラーログは
  未だに出続けているようです。( ̄∇ ̄;)

オフライン

 

#9 2010-12-06 20:53:53

rhythm
拒否

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

突然に乱入して、しかも全くのド素人の質問で申し訳ありません。
FreeNasはCLI操作です。
OpenfilerはGUI操作と言う事までは解かりました。
この2つサーバーソフトはUbutuではなく、他のディストリビューションでインストールして稼動させるものなのですよね。
それは大体確認済みですが、一応フォーラムで確認してUbutuのパソコンを他のディストリビューションに変更したいと思っています。
誠に申し訳ございません。
どうかご回答の程宜しくお願い申し上げます。

rhythm

 

#10 2010-12-06 21:44:22

rhythm
拒否

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

既にCentOSを焼きました。
CentOSにはキットこのようなフォーラムはないと思いますが、確かRedHat系?
同じLinuxだし、元々Ubuntu も知らないから元々です。
Openfillerもオープンなのかな?
まだUbuntu も残っていますから、今後とも宜しくお願い申し上げます。

rhythm

 

#11 2010-12-07 00:52:54

rhythm
拒否

Re: Ubuntu 9.04 Server + Samba + Active Directory で共有フォルダ

つかぬことですが・・・
「CentOS」は以前私が「Fedora」か「Ubuntu」でどっちか迷っていて、どっちも一応インストールしていましたが、結局「Ubuntu」に決めましたが、「CentOS」をインストールする際のステップは殆んど「Fedora」と酷似していました。
これが「RedHat系」ってものかと確信致しました。
失礼致しました。

rhythm

 

Board footer

Powered by FluxBB