日 本 Sambaユーザー 会 Samba 逆 引 きリファレンス 出 版 記 念 トラブルフリーのSamba 設 定 教 えます!! 日 本 Sambaユーザー 会 2009/10/30 武 田 保 真 Copyright 2009 TAKEDA Yasuma - 1 -
目 次 講 師 紹 介 壱 : Samba 導 入 前 のポイント 弐 : Samba 運 用 前 の 設 定 のポイント TIPS Q&A Copyright 2009 TAKEDA Yasuma - 2 -
講 師 紹 介 : 武 田 保 真 日 本 Sambaユーザー 会 / 日 本 LDAPユーザー 会 所 属 オープンソース ソリューション テクノロジ 株 式 会 社 http://www.osstech.co.jp 2001 年 頃 より Samba2.2 日 本 語 版 の 開 発 に 携 わる 現 在 は 業 務 でSambaの 構 築 サポート 修 正 などを 行 っている 著 書 Samba 逆 引 きリファレンス ( 秀 和 システム) 徹 底 解 説 Samba LDAPサーバー 構 築 ( 技 術 評 論 社 ) Linux RAID 入 門 ( 技 術 評 論 社 ) 逆 引 きUNIXコマンド( 技 術 評 論 社 ) Copyright 2009 TAKEDA Yasuma - 3 -
本 セミナーの 目 的 Sambaの 設 定 ではまるポイントを 知 ってもらい Sambaを 活 用 してもらうための 情 報 を 提 供 します
壱 : Samba 導 入 前 の 検 討 ポイント Copyright 2009 TAKEDA Yasuma
1. 構 成 の 検 討 導 入 目 的 ファイルサーバー 認 証 統 合 ドメイン コントローラー Samba スタンドアロン 構 成 Samba Winbind 連 携 Samba PDC Samba BDC 低 構 築 難 易 度 高 適 切 に 構 築 すれば 運 用 開 始 後 のトラブルは 少 ない
2. ハードウェアの 選 択 ハードウェア 構 成 選 択 時 の 検 討 ポイント 同 時 使 用 ユーザー 数 が 増 えると 必 要 なメモリが 増 える deadtimeパラメーターでアイドルセッションは 切 断 可 能 Windowsクライアントはアクセスが 発 生 すると 自 動 で 接 続 を 回 復 スタンドアロン 構 成 サーバー 1 台 + ストレージ 領 域 ( 内 蔵 HDD/ 外 付 けディスクなど) Active Directoryメンバー 構 成 (Winbind 連 携 ) Active Directoryドメインコントローラーが 複 数 台 あれば 冗 長 化 可 能 ドメイン コントローラー 構 成 最 低 でも PDC/BDCの2 台 構 成 BDCは 増 やすことが 可 能 クラスタソフトと 組 み 合 わせて Active-Active 構 成 の 冗 長 化 も 可 能
3. OSの 選 択 選 択 肢 と 注 意 点 Linux ファイルシステムの 制 限 値 (Ext3) Solaris10 最 大 ファイルシステムサイズ 16TB 最 大 ファイルサイズ 2TB ファイルシステムの 制 限 値 (ZFS) 最 大 ファイルシステムサイズ 16エクサバイト 最 大 ファイルサイズ 16エクサ バイト Quota: Solaris10 U7(05/09)まではグループQuotaが 利 用 できない ACL: NFSv4 互 換 ACL... NTFS ACLとの 親 和 性 が 高 い 所 属 グループ 制 限 最 大 32グループ FreeBSD 要 注 意 すいません 使 ったこと 無 いです でもZFSと 組 み 合 わせるのは 有 りかも
4. Sambaのバージョンの 選 択 Sambaのバージョンの 選 択 基 準 は? 一 つ 前 のstableバージョンの 最 新 がお 勧 め Samba 3.4 系 Samba 3.3 系 Samba 3.2 系 Samba 3.0 系 コードが 頻 繁 に 変 更 されるため トラブルが 多 い 3.4 系 のバグ 修 正 がほぼ 全 てバックポートされる 最 新 の 機 能 を 利 用 可 能 大 きなトラブルは 残 っていない 最 新 の 機 能 への 対 応 は 別 途 バックポートが 必 要 Samba 3.3との 機 能 的 な 違 いはほとんど 無 い 対 応 できない 機 能 が 増 えてきた コードベースもかなり 違 うためバックポートは 難 しい
弐 : Samba 運 用 前 の 設 定 のポイント Copyright 2009 TAKEDA Yasuma
ファイルサーバー 構 成 Copyright 2009 TAKEDA Yasuma
1. ファイルサーバー 構 成 全 体 設 定 UTF-8-MAC 対 応 のlibiconvが 必 要 unix charset UTF-8を 設 定 する Mac OS XからNFSを 利 用 する 場 合 UTF-8-MAC passdb backend tdbsam/ldapsamを 設 定 する パスワードポリシーが 使 えないのでsmbpasswdは 使 わない log level syslog 通 常 運 用 時 は 0 または 1 3 以 上 に 設 定 すると ログの 書 き 出 しによる 性 能 劣 化 が 顕 著 特 別 な 要 件 が 無 い 限 り 0 を 設 定 する syslogに 追 加 で 書 き 出 す 必 要 性 は 無 い
1-2. アクセス 権 の 設 定 ファイルサーバー 運 用 前 のポイントはアクセス 権 の 設 定 グループ 単 位 のアクセス 権 の 管 理 が 望 ましい( 運 用 が 楽 ) 共 有 フォルダの 最 上 位 に デフォルトACLを 設 定 して 下 位 フォ ルダは ACLを 引 き 継 ぐ 設 定 にする 最 上 位 のフォルダにはsetgidビットを 設 定 しておく お 勧 め 設 定 パラメーター inherit permissions = yes inherit acls = yes store dos attributes = yes dos filemode = yes
パラメーター 詳 細 (inherit permissions) inherit permissions = yes (デフォルト 値 no) 新 しくフォルダやファイルを 作 成 するときに 上 位 のフォルダの 権 限 を 引 き 継 ぐ 所 属 グループ Everyoneに 対 する 読 み 込 み 書 き 込 み 権 の 設 定 を 自 動 で 継 承 mode: 2750(rwxr-s---) フォルダ mode: 2750 (rwxr-s---) 新 しいフォルダ mode: 0640 (rw-r-----) フォルダの 権 限 は setuidビット 以 外 引 き 継 がれる create maskや directory maskは 無 視 される 新 しいファイル ファイルの 権 限 はreadと writeが 引 き 継 がれる executeはmap archive などの 設 定 に 依 存
パラメーター 詳 細 (inherit acls) inherit acls = yes (デフォルト 値 : no) 新 しくフォルダやファイルを 作 成 するときに 上 位 フォルダに 設 定 されたデフォルト ACLを 引 き 継 ぐ セカンダリグループや 個 々のユーザーのアクセス 権 を 付 与 するときに アクセス 権 を 自 動 継 承 できる ユーザー: yasuma フォルダ デフォルトACL d:u::rwx d:u:yasuma:rwx d:g::rwx d:g:devel:rwx d:o::--- d:mask:rwx 新 しいフォルダ 新 しいファイル デフォルトACL 継 承 デフォルトACL d:u::rwx d:u:yasuma:rwx d:g::rwx d:g:devel:rwx d:o::--- d:mask:rwx 新 しいフォルダ2 デフォルトACL d:u::rwx d:u:yasuma:rwx d:g::rwx d:g:devel:rwx d:o::--- d:mask:rwx
パラメーター 詳 細 (store dos attributes) store dos attributes = yes (デフォルト 値 : no) システム 属 性 や 隠 しファイル 属 性 をファイルシステムの 拡 張 属 性 に 記 録 map hidden/map system/map archiveの 代 わりとなるので ファイル フォルダの 実 行 ビットを 共 用 しなくてよい ファイルシステムが 拡 張 属 性 に 対 応 している 必 要 あり store dos attributes = no store dos attributes = yes ファイルの 権 限 ファイルの 権 限 user group other r r r w x w x w x map archive 所 有 者 の 実 行 権 map system グループの 実 行 権 map hidden Everyoneの 実 行 権 user group other r r r w x w x w x 所 有 者 の 実 行 権 グループの 実 行 権 拡 張 属 性 Everyoneの 実 行 権 map archive map system map hidden
パラメーター 詳 細 (dos filemode) dos filemode = yes (デフォルト 値 : no) ファイル フォルダの 権 限 の 変 更 を ファイルの 所 有 者 だけでなく グループの 更 新 権 を 持 つユーザーにも 許 可 フォルダのsetgidビットと 組 み 合 わせてフォルダの 更 新 権 をグループ 単 位 で 制 御 ユーザー:yasuma プライマリグループ: staff セカンダリグループ: devel ユーザー:odagiri プライマリグループ: devel 権 限 変 更 可 能 フォルダ mode: 2770(rwxrws---) 所 有 者 : odagiri グループ: devel サブフォルダ 作 成 サブフォルダ mode: 2770(rwxrws---) 所 有 者 : yasuma グループ: devel フォルダ mode: 0770(rwxrwx---) 所 有 者 : odagiri グループ: devel Copyright 2009 TAKEDA Yasuma サブフォルダ mode: 0770(rwxrwx---) 所 有 者 : yasuma グループ: staff
Active Directory メンバーサーバー 構 成
2. Active Directoryメンバー 構 成 (winbind) Active Directoryのユーザー 情 報 をLinux/Unixで 参 照 複 数 台 のドメインコントローラーに 対 して 冗 長 設 定 可 能 基 本 設 定 workgroup Active Directoryの 短 いドメイン 名 realm Active Directoryのフルドメイン 名 ( 大 文 字 ) password server security ドメインコントローラーのIPアドレス 複 数 台 ある 場 合 は 複 数 記 載 ads を 記 載
2-1. winbindの 設 定 idmapバックエンドの 選 択 uid/gidを 自 動 管 理 したい Yes hash rid UID/GIDをSIDから 自 動 計 算 し 信 頼 関 係 で 複 数 ドメインの ユーザーを 参 照 する UID/GIDをRIDから 自 動 計 算 し 単 一 ドメインの ユーザーを 参 照 する UID/GIDを 必 要 に 応 じて 割 り 当 て マッピング 情 報 をTDBに 格 納 する tdb UID/GIDを 必 要 に 応 じて 割 り 当 て マッピング 情 報 をLDAPに 格 納 する ldap No nss UID/GIDをLinux/Unixの passwd/ldapで 管 理 する UID/GIDをActive Directoryの SUAで 管 理 する ad
idmapバックエンドの 設 定 概 念 (3.0.25~3.2) idmap domains winbindで 参 照 するドメインのリスト idmap config idmap alloc backend idmap alloc config (オプション) ドメインごとのUID/GIDの 割 り 当 て 方 法 の 設 定 UID/GIDの 自 動 割 り 当 てに 利 用 する 情 報 の 格 納 方 法 * idmap_ad idmap_nss idmap_hash idmap_ridには 不 要 UID/GIDの 自 動 割 り 当 てに 関 する 全 体 設 定 * idmap alloc backendと 関 連
idmapバックエンドの 概 念 図 Active Directory (ドメインA) idmap config ドメインA SIDとUID/GIDの マッピング 情 報 Active Directory (ドメインB) アカウント 情 報 アカウント 情 報 Samba (winbind) idmap domains ドメインA ドメインB idmap backend idmap config ドメインB idmap backend SIDとUID/GIDの マッピング 情 報 idmap alloc backend backend idmap alloc config allocバックエンドの 設 定 UID/GIDの 自 動 割 り 当 て 用 情 報
idmapバックエンドの 設 定 概 念 (3.3~3.4) idmap backend winbindでデフォルトで 使 用 するbackend idmap uid idmap gid idmap config (オプション) idmap alloc backend (オプション) idmap alloc config (オプション) winbindで 自 動 で 割 り 当 てるUIDの 範 囲 winbindで 自 動 で 割 り 当 てるGIDの 範 囲 ドメインごとのUID/GIDの 割 り 当 て 方 法 の 設 定 UID/GIDの 自 動 割 り 当 てに 利 用 する 情 報 の 格 納 方 法 UID/GIDの 自 動 割 り 当 てに 関 する 全 体 設 定
IDMAPバックエンド: idmap_tdb デフォルトのバックエンド ADのSIDとUID/GIDのマッピングをTDBファイルに 保 存 TDBファイルが 失 われるとマッピング 情 報 が 不 明 になる 複 数 のSambaサーバー 間 でマッピングを 共 有 できない [ 設 定 例 (Samba 3.3 以 降 )] idmap backend = tdb ( 省 略 可 能 ) idmap uid = 10000-200000 idmap gid = 10000-200000
IDMAPバックエンド: idmap_ldap ADのSIDとUID/GIDのマッピングをLDAPに 保 存 複 数 のSambaサーバー 間 でマッピングを 共 有 可 能 LDAPへ 適 切 に 格 納 するための 指 定 が 複 雑 [ 設 定 例 (Samba 3.3 以 降 )] ldap suffix = dc=example,dc=com ldap idmap suffix = ou=idmap ldap ssl = no ldap admin dn = cn=manager,dc=example,dc=com idmap backend = ldap:ldap://localhost/ idmap uid = 10000-200000 idmap gid = 10000-200000 idmap alloc backend = ldap idmap alloc config: ldap_url = ldap://localhost idmap alloc config: ldap_base_dn = ou=idmap,dc=example,dc=com
IDMAPバックエンド: idmap_rid ADのユーザー グループのRIDから UID/GIDを 計 算 UID/GID = RID - BASE_RID + (rangeの 最 小 値 ) idmap alloc backend 不 要 IDは 全 て 計 算 で 算 出 されるので IDのマッピングは 不 変 複 数 ドメイン 利 用 時 は UID/GIDが 重 ならないように rangeを 分 ける 必 要 あり [ 設 定 例 (Samba 3.3 以 降 )] idmap backend = rid idmap uid = 10000-20000 idmap gid = 10000-20000
IDMAPバックエンド: idmap_hash ADのユーザー グループのSIDから UID/GIDをハッシ ュで 計 算 32bitの 数 値 のUIDに 変 換 されるので 数 値 で 扱 うのは 大 変 idmap alloc backend 不 要 IDは 全 て 計 算 で 算 出 されるので IDのマッピングは 不 変 複 数 ドメイン 利 用 時 もIDが 重 ならない [ 設 定 例 (Samba 3.3 以 降 )] idmap backend = hash idmap uid = 10000-4000000000 idmap gid = 10000-4000000000
IDMAPバックエンド : idmap_ad Active DirectoryのSUA 機 能 を 利 用 している 環 境 用 ADのユーザーのuidNumber gidnumberを 参 照 ユーザーの 所 属 するプライマリグループにgidNumberが 設 定 されていないと そのユーザーの 利 用 不 可 [ 設 定 例 (Samba 3.3 以 降 )] idmap backend = tdb ( 省 略 可 能 ) idmap uid = 10000-200000 idmap gid = 10000-200000 idmap config WIN2008: backend = ad idmap config WIN2008: range = 10000-99999 idmap config WIN2008: schema_mode = rfc2307
IDMAPバックエンド: idmap_nss UID/GIDはOSに 登 録 済 みの 情 報 を 利 用 する 環 境 用 /etc/passwdや LDAP 認 証 などで ADとLinux/Unixの 双 方 の OSに 同 じユーザー 情 報 がある 場 合 winbindはadのsidとuid/gidをユーザー 名 でマッピング [ 設 定 例 (Samba 3.3 以 降 )] idmap backend = tdb ( 省 略 可 能 ) idmap uid = 10000-200000 idmap gid = 10000-200000 idmap config WIN2008: backend = nss idmap config WIN2008: range = 10000-99999
Kerberosの 設 定 (krb5.conf) 基 本 設 定 項 目 default_realm kdc Active Directoryのドメイン 名 を 大 文 字 で 設 定 Kerberos 認 証 に 利 用 するためのドメイン コントローラーを 設 定 複 数 のドメイン コントローラーを 利 用 可 能 な 場 合 は 複 数 設 定 domain_realms DNSとレルム 名 のマッピングを 指 定 左 辺 がDNS 名 右 辺 がレルム 名 ( 大 文 字 ) 設 定 時 の 注 意 信 頼 関 係 を 結 んでいるADドメインがある 場 合 は 信 頼 関 係 先 のドメインに 関 するレルムも 設 定
DNS/ホスト 名 の 設 定 Active DirectoryのDNSを 参 照 するため の/etc/resolv.conf 設 定 ADのDNSに 登 録 されている 各 種 SRVレコードが 動 作 に 必 要 net ads join 時 に 次 の 名 前 解 決 処 理 ができる 必 要 あり ホスト 名 IPアドレスの 変 換 IPアドレス FQDNの 変 換 /etc/hostsの 設 定 例 (Sambaサーバー : fs1) 192.168.0.10 fs1.example.com fs1
時 刻 合 わせ Kerberos 認 証 は 時 刻 合 わせが 大 事 ドメインコントローラーと Sambaサーバー 間 の 時 刻 がずれると ドメイン 参 加 に 失 敗 したり 認 証 に 失 敗 したりする net ads infoコマンドで 時 刻 差 を 確 認 ntpなどで 時 刻 合 わせを 実 施 net time setでドメインコントローラーの 時 刻 をSambaサーバー に 設 定 可 能 # net ads info... 省 略... KDC Server: 192.168.10.1 Server time offset: 13 # net time set 2009 年 10 月 23 日 金 曜 日 18:15:32 JST
ドメイン コントローラー 構 成 Copyright 2009 TAKEDA Yasuma
OpenLDAPサーバー 構 築 時 の 注 意 loglevelの 設 定 に 注 意 OpenLDAPのログは デバッグ 用 途 に 実 装 されているため 非 常 に 負 荷 が 高 い 環 境 によっては Sambaからの 検 索 処 理 が 一 定 時 間 内 に 得 ら れないことがある smb.confのldap timeoutで タイムアウト 時 間 を 伸 ばすことが 可 能 アクセス 権 の 設 定 一 般 ユーザー 権 限 には 次 の 属 性 の 読 み 取 りを 禁 止 userpassword sambalmpassword sambantpassword sambapasswordhistory スレーブサーバーの 設 定 updaterefの 設 定 を 忘 れない
smb.confの 設 定 時 の 注 意 LDAPサーバーを 冗 長 化 している 場 合 次 の 設 定 も 冗 長 化 しておく smb.confのpassdb backend /etc/ldap.confのhost(もしくはuri) LDAPサーバーとのSSL 接 続 設 定 Samba 3.3からldap sslのデフォルト 値 が start tls に 変 更
ローカルSIDとドメインSID SambaのドメインコントローラーでのSID ドメインSIDは 共 通 ローカルSIDは 異 なる Samba PDC ローカルSID ドメインSID # net getlocalsid Samba BDC ローカルSID ドメインSID # net setdomainsid
smbldap-tools 設 定 の 注 意 Samba 3.0.25 以 降 のパスワードポリシーに 一 部 対 応 して いない -Bオプションの 次 回 ログオン 時 のパスワード 変 更 が 設 定 で きない smbldap-passwdコマンドで 設 定 したパスワードの 有 効 期 限 は45 日 defaultmaxpasswordageの 設 定 を 削 除 デフォルトで 移 動 プロファイルが 有 効 sambaprofilepathの 設 定 が 不 要 なら smbldap.confから userprofileをコメントアウト
Windows 7/2008R2のドメイン 参 加 Samba 3.2.12/Samba 3.3.5 以 降 必 須 ドメイン 参 加 時 に DNSのプライマリサフィックスが 見 つかりません エラー が 表 示 される が 無 視 して 良 い... 多 分 Samba 3.0.36 以 降 で 一 応 ドメイン 参 加 は 可 能 ( 注 ) レジストリに 以 下 の 値 を 追 加 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanMan Workstation\Parameters DWORD(32bit) 形 式 DNSNameResolutionRequired = 0 DWORD(32bit) 形 式 DomainCompatibilityMode = 1 Samba 3.0.36の 場 合 以 下 の 変 更 も 必 要 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\ Parameters RequireSignOrSeal = 0 RequireStrongKey = 0 Copyright 2009 TAKEDA Yasuma
TIPS 特 定 のクライアントのログだけ 取 得 include 文 を 活 用 /etc/samba/smb.confファイル [global]... 省 略... include = /etc/samba/%m.conf include 文 を 入 れる 場 所 に 注 意 /etc/samba/[コンピューター 名 ].confファイル log level = 5 max log size = 10000 コンピューター 名 は 小 文 字
最 近 のトラブル Guestアカウントを 削 除 smbdが 起 動 不 可 guest accountパラメーターに 指 定 したUNIXアカウントは 必 須 NetAppがSamba 3.2ドメインコントローラーにドメイン 参 加 不 可 Samba 3.2のバグ Samba 3.2.9 以 降 で 修 正 済 み
Q & A