Samba 3.2でホスト名によるアクセス制御が機能しない

提供: Samba-JP
2008年11月1日 (土) 03:55時点におけるMonyo (トーク | 投稿記録)による版 (新しいページ: '{{冒頭部|J0099|2008/10/31|たかはしもとのぶ|}} ==対象== この文書は、以下のプロダクトに付いて説明したものです。 * Samba 3.2 系列 * Samb...')
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索
KB番号 J0099
最終更新日 2008/10/31
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 3.2 系列
  • Samba 3.0 系列

現象

Samba 3.0 系列で hosts allow および hosts deny パラメータを用いてホスト名でアクセス制御を行っていた場合、Samba 3.2 系列に移行すると、アクセス制御が期待した動作をしない場合があります。

説明

これは、Sambaの仕様です。

Samba 3.2 系列を IPv6 が有効な環境で動作させると、以下のように IPv4 アドレスでのアクセスが、IPv6 互換アクセスとして記録されます。

[2008/10/31 12:17:33,  2] lib/access.c:check_access(406)
  Allowed connection from  (::ffff:192.168.135.1)

このため、たとえば以下のようにホスト名でアクセス制御を行っていた場合

  hostname lookups = yes
 
  ...
  hosts allow = pc1, pc2

/etc/hosts ファイルで

  192.168.135.1   pc1

のような記述をしても、192.168.135.1 と ::ffff:192.168.135.1 が別のアドレスだと解釈され、意図した動作が行われません。

この際、以下のようなログが記録されます。

[2008/10/31 11:46:43,  0] lib/util_sock.c:matchname(1669)
  matchname: host name/address mismatch: ::ffff:192.168.135.1 != pc1
[2008/10/31 11:46:43,  0] lib/util_sock.c:get_peer_name(1790)
  Matchname failed on pc1 ::ffff:192.168.135.1

上記の場合、/etc/hosts ファイルに

::ffff:192.168.135.1 pc1

のような記述を行うことで期待した動作が行われます。