最 新 Samba 4.0.0 新 機 能 のすべて 日 本 Sambaユーザ 会 たかはしもとのぶ( 髙 橋 基 信 ) monyo@samba.gr.jp
Samba 4.0 系 列 とは Active Directory( 以 下 AD)のドメインコントロー ラ( 以 下 DC) 機 能 ( 以 下 ADDS)を 実 装 した Sambaの 最 新 版 現 在 の 最 新 版 はSamba 4.0.3(2013/02/05) ADDS 機 能 とそれ 以 外 でバイナリが 二 分 されている ADDS 機 能 sambaバイナリ その 他 機 能 レガシーバイナリ(smbd/nmbd/winbindd) sambaバイナリとレガシーバイナリは 共 存 不 可 ファイルサーバなど ADDS 以 外 の 機 能 については レガシーバイナリの 使 用 が 推 奨 レガシーバイナリという 用 語 はわたしの 造 語 です 2
レガシーバイナリの 特 徴 変 更 点 前 バージョン(3.6 系 列 )の 特 徴 を 引 き 継 ぐ ADのメンバサーバ ファイル/プリンタサーバ SambaドメインのDCなどとして 従 来 通 り 使 用 できる 設 定 方 法 は 従 来 と 基 本 的 に 変 わらず Samba 3.X 系 列 の 知 識 で 設 定 可 能 主 な 変 更 点 security = share/serverが 廃 止 元 々Windows 9x 由 来 の 機 能 であり サポートが 困 難 に SMB2.1( 大 半 の 機 能 ) SMB3.0( 主 要 機 能 )サポート CTDBによるクラスタ 機 能 が 正 式 サポート 3
sambaバイナリの 特 徴 ADDSに 特 化 nmbd smbd winbinddを 包 含 した 単 一 プロセス DCとして 必 要 なサービスの 大 半 を 単 独 で 実 装 外 部 ライブラリへの 依 存 性 を 極 力 排 除 Kerberos(Heimdal Kerberosをソースに 取 り 込 み) LDAP( 独 自 実 装 ) OpenLDAPの の 使 用 は 考 慮 されていない(alpha15 以 降 ) OpenLDAPではADが 必 要 とする 機 能 をサポートできないため 別 プロダクトと 連 携 して 実 現 している 機 能 DNS(BIND) 内 蔵 DNSが 標 準 だが 大 規 模 環 境 では BIND 連 携 推 奨 NTP(ntpd) スクリプティング(Python) Pythonがないとビルド 不 可 4
Samba 4.0によるADの 構 築 コンパイル インストール Samba4-HOWTO 通 りに 行 えばほぼ 間 違 いなし Samba 3.X 系 列 より 依 存 ライブラリは 減 少 している 初 期 設 定 samba-tool domain provisionコマンドを 実 行 して smb.confファイルを 生 成 & smb.confを 修 正 DNSとNTP 関 連 を 適 宜 追 加 で 設 定 する sambaプロセスの 起 動 samba という 名 称 のプロセスを 起 動 する 従 来 のsmbd/nmbd/winbinddは 起 動 不 要 詳 細 は SAMBA4-HOWTO (http://wiki.samba.org/index.php/samba4/howto)やsoftware Design 誌 2013 年 2 月 号 などを 参 照 してください 5
samba-tool domain provisionコマンド 初 期 設 定 を 行 うpythonスクリプト 最 低 限 のsmb.confも 併 せて 生 成 ADDSの( 最 初 の)サーバを 構 築 する 際 は 必 ず 本 スクリプトを 実 行 する 必 要 がある オプション 名 --realm --domain --adminpass --dns-backend --use-ntvfs --use-rfc2307 デフォルト - - (ランダム 文 字 列 ) SAMBA_INTERNAL (なし) (なし) 意 味 レルム 名 (FQDN 名 の 大 文 字 ) NetBIOSドメイン 名 Administratorのパスワード(3 種 類 以 上 の 文 字 種 からなるパスワード 必 須 ) DNS 実 装 方 式 ( 次 スライド 参 照 ) ファイルサーバ 実 装 方 式 ( 次 スライド 参 照 ) UNIX 属 性 を 有 効 化 6
DNSとファイルサーバの 設 定 DNSとして 以 下 の3 種 類 の 方 式 をサポート 方 式 Samba 内 蔵 BIND9DLZ モジュール BIND9 静 的 ファイル DNSサーバはSamba 内 蔵 ゾーン 情 報 はADから 取 得 DNSサーバはBIND9 ゾーン 情 報 はADから 取 得 BIND9のDLZ 機 能 を 使 用 DNSサーバはBIND9 ゾーン 情 報 はBIND9のゾーンファ イルから 取 得 設 定 が 簡 単 基 本 的 な 機 能 のみ 実 装 ファイルサーバとして 以 下 の 方 式 をサポート 方 式 s3fs ntvfs 概 要 概 要 バックエンドで 起 動 されたsmbdがファ イルサーバ 機 能 を 実 現 samba 内 蔵 のファイルサーバ 機 構 を 使 用 特 徴 特 徴 複 雑 大 規 模 環 境 への 適 用 が 可 能 DLZ 機 能 に 対 応 したBIND 9.7 以 降 が 必 要 複 雑 大 規 模 環 境 への 適 用 が 可 能 Sambaの 設 定 変 更 に 伴 うゾーン 情 報 の 更 新 を 手 作 業 で 行 う 必 要 がある 枯 れている UNIX 側 のACLとの 相 互 接 続 性 あり 現 時 点 では 安 定 性 に 難 あり? UNIX 側 のACLとは 連 携 しない 7
参 考 :コマンド 実 行 例 対 話 的 実 行 非 対 話 的 実 行 いずれも 可 能 対 話 的 実 行 root@squeeze32-2:~# /usr/local/samba/bin/samba-tool domain provision Realm [LOCALDOMAIN]: SAMBA40AD3.SAMBA.LOCAL Domain [SAMBA40AD3]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [192.168.135.32]: 192.168.135.2 Administrator password: Retype password: Looking up IPv4 addresses Looking up IPv6 addresses Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: squeeze32-2 NetBIOS Domain: SAMBA40AD3 DNS Domain: samba40ad3.samba.local DOMAIN SID: S-1-5-21-4212942094-2789858589-3300345304 非 対 話 的 実 行 root@squeeze32-2:~# /usr/local/samba/bin/samba-tool domain provision --realm=samba40ad3.samba.local -- domain=samba40ad3 --adminpass='p@ssw0rd' -- use-rfc2307 Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up secrets.ldb Setting up the registry A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf Setting up fake yp server settings Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: squeeze32-2 NetBIOS Domain: SAMBA40AD3 DNS Domain: samba40ad3.samba.local DOMAIN SID: S-1-5-21-2691997093-816562956-3944966943 8
NTP( 時 刻 同 期 )の 設 定 ADDSでは 時 刻 同 期 が 必 須 Kerberos 認 証 のため 時 刻 のずれを5 分 以 内 に 抑 える 必 要 がある 同 期 方 法 はなんでもよい(NTP 以 外 でも 可 ) ntpd 4.2.6 以 降 は セキュアなNTPを 実 装 済 configureで--enable-ntp-signdを 有 効 にした 上 で 以 下 のような 設 定 を 行 うことで 時 刻 同 期 を 許 可 す るクライアントを 同 一 ADのクライアントに 制 限 可 能 ntpsignedsocket /usr/local/samba/var/lib/ntp_signd/ restrict default mssntp 9
参 考 :Samba4アプライアンス ドイツのSerNetから Samba 4.0のADDS 機 能 を 設 定 済 のアプライアンスが 提 供 Samba 4.0のドメイン 機 能 を 手 軽 に 試 したい 人 向 け http://ftp.sernet.de/pub/samba4ad/sernet-samba4- appliance/ からISOイメージを 入 手 可 能 普 通 にインストールするだけで Samba4ドメイン 環 境 を 簡 便 に 構 築 可 能 10
Samba 4.0によるADの 設 定 smb.confの 設 定 はあまり 必 要 でない 実 はスクリプトが 生 成 したままでも 使 えてしまう samba-toolによる 動 的 な 設 定 の 増 加 AD 周 りの 設 定 は ほぼコマンドorGUI # Global parameters [global] workgroup = SAMBA40AD3 realm = SAMBA40AD3.SAMBA.LOCAL netbios name = SQUEEZE32-2 server role = active directory domain controller dns forwarder = 192.168.135.2 idmap_ldb:use rfc2307 = yes [netlogon] path = /usr/local/samba/var/locks/sysvol/samba40ad3.samba.local/scripts read only = No [sysvol] path = /usr/local/samba/var/locks/sysvol read only = No ファイルサーバの アクセス 制 御 もGUI から 行 うのが 基 本 Windows 的 スキルがないと 管 理 しきれない スクリプトの 生 成 したsmb.conf 例 11
参 考 :Samba 4.0のDCを 既 存 ADに 追 加 追 加 自 体 は 特 に 問 題 なし SYSVOL 共 有 は rsyncなどで 手 動 同 期 させる 必 要 がある https://wiki.samba.org/index.php/samba4/howto/join_a_domain_as_a_dc 12
Samba 4.0によるADの 操 作 基 本 的 には 各 種 Windows 管 理 ツールから 操 作 samba-toolによるコマンドライン 操 作 も 可 能 13
参 考 :SambaとWindowsのDC 混 在 SambaのDCとWindowsのDCの 混 在 SambaとWindowsのDCが 共 存 14
Samba 4.0によるADの 機 能 大 規 模 環 境 向 け 機 能 を 中 心 に 未 サポート 機 能 が 散 見 されるが 基 本 的 な 機 能 はほぼサポート 項 目 フォレスト ドメイン 機 能 レベル FSMO 操 作 サイト 信 頼 関 係 マルチフォレスト ドメイン Windows DCの 参 加 RODCの 参 加 ディレクトリ 複 製 (DRS) ファイル 複 製 (FRS) OUによる 権 限 の 委 任 グループポリシ ドメインベースDFS Samba 4.0 系 列 (Win 2012は 現 在 不 可?) (いろいろトラブルがあるよう ) (rsyncなどで 別 途 対 応 必 要 ) ( 一 部 不 具 合 があるっぽい) (ACL 機 能 に 一 部 不 具 合 あり) (ADDSに 必 要 な 範 囲 ) 参 考 Win 2008 R2 15
既 存 のSambaドメインからの 移 行 (もちろん)サポートされている samba-tool domain classicupgrade というコマンド が 用 意 されている インプレースアップグレード 前 提 アップグレード 元 のSambaドメインのデータベース にゴミや 不 整 合 があると 移 行 に 失 敗 するので 移 行 リ ハできちんと 取 り 除 いておくこと(SID 重 複 など) 16
SambaによるAD 上 のUNIXユーザ 管 理 メンバサーバ 上 以 前 と 同 じ DC 上 サポートレベルは( 体 感 的 に) 低 下 Winbind 機 構 が 必 ず 動 作 UNIXユーザのUID/GIDは 自 動 生 成 (3,000,000~) シェルなどを 個 別 設 定 できない UNIXユーザの 属 性 を 制 御 したい 場 合 は SambaのユーザDB(LDBファイル)を 直 接 書 き 換 え UID GIDを 変 更 可 能 ldb_modifyなどのコマンドを 使 用 直 接 書 き 換 えを 不 要 とするパッチあり テスト 中 とのこと https://bugzilla.samba.org/show_bug.cgi?id=9520 17
18