「SambaをActive Directoryドメインメンバとして構成する」の版間の差分

提供: 雑廉堂Wiki
(時間同期の設定)
(時間同期の設定)
62行目: 62行目:
 
Kerberosでは、すべてのドメインメンバーに時刻同期が必要です。したがって、NTPクライアントを設定することをお勧めします。詳細について
 
Kerberosでは、すべてのドメインメンバーに時刻同期が必要です。したがって、NTPクライアントを設定することをお勧めします。詳細について
 
は、[[時刻の同期#Unixドメインメンバでの時刻同期の設定|Unixドメインメンバでの時刻同期の設定]]を参照してください。
 
は、[[時刻の同期#Unixドメインメンバでの時刻同期の設定|Unixドメインメンバでの時刻同期の設定]]を参照してください。
 +
 +
 +
=== ローカルホスト名の解決 ===
 +
 +
ホストをドメインに参加させると、SambaはAD DNSゾーンにホスト名を登録しようとします。このため、netユーティリティは、DNSを使用するか
 +
、<code>/etc/hosts</code>ファイルの正しいエントリを使用してホスト名を解決できる必要があります。
 +
 +
ホスト名が正しく解決されることを確認するには、<code>getent hosts</code>コマンドを使用します。例えば:
 +
 +
<pre># getent hosts M1
 +
10.99.0.5      M1.samdom.example.com    M1</pre>
 +
ホスト名とFQDNは、<code>127.0.0.1</code>のIPアドレス、またはドメインメンバーのLANインターフェイスで使用されているIPアドレス以外のIPアドレスに解決してはなりません。
 +
 +
出力が表示されないか、ホストが間違ったIPアドレスに解決され、dhcpを使用していない場合は、<code>/etc/hosts</code>ファイルに正しいエ
 +
ントリを設定します。例えば:
 +
 +
<pre>127.0.0.1      localhost
 +
10.99.0.5      M1.samdom.example.com    M1</pre>
 +
dhcpを使用している場合は、<code>/etc/hosts</code>に上記の '127.0.0.1'行しか含まれていないことを確認してください。引き続き問題が発
 +
生する場合は、DHCPサーバーを制御しているシステム管理者に連絡してください。
 +
 +
* Debian関連のシステムでは、<code>/etc/hosts</code>に<code>127.0.1.1</code>というホスト名も表示されますので、sambaをインストールする前にそれを削除してください。
 +
* 次の行はそのままにして下さい:<code>127.0.0.1 localhost</code>
 +
 +
マシンのホスト名にエイリアスを追加する必要がある場合は、<code>127.0.0.1</code>の行ではなく、マシンのipaddressで始まる行の末尾にエ
 +
イリアスを追加します。
 +
 +
 +
=== NT4ドメインに参加するためのドメインメンバの準備 ===
 +
 +
ホストをNT4ドメインに参加させるには、準備は必要ありません。
 +
 +
 +
== Sambaのインストール ==
 +
 +
詳細は[[Sambaのインストール]]を参照してください。
 +
 +
{{imbox
 +
| style = margin:4px 2%;
 +
| text  = メンテナンスされているバージョンのSambaをインストールしてください。詳細は、「[[Sambaリリース計画]]」を参照してください。
 +
}}
 +
 +
 +
== Sambaの設定 ==
 +
=== 基本的なsmb.confファイルの設定 ===
 +
 +
UNIXドメインメンバーにsmb.confを設定するときには、いくつかの決定をする必要があります。
 +
 +
* Samba AD DCを含め、全ての場所でユーザーとグループのIDが同じであることを要求していますか?
 +
* ユーザーとグループがUnixドメインメンバー上で同じIDを持つことのみを望みますか?
 +
 +
決定をした後、もう一つ決めることがあります。この決定は、あなたがすでに決めた事に対して影響を与える可能性があります。
 +
 +
* 個々のユーザが異なるログインシェルやUnixホームディレクトリパスを必要としますか?
 +
 +
ユーザーが異なるログインシェルやUnixホームディレクトリパスを持つ必要がある場合、またはそれらのIDがどこにでも同じIDを持つようにするには、winbind 'ad'バックエンドを使用し、RFC2307属性をADに追加する必要があります。
 +
 +
{{imbox
 +
| style = margin:4px 2%;
 +
| text  = RFC2307の属性は、ユーザーまたはグループの作成時に自動的に追加されません。
 +
}}
 +
 +
 +
{{imbox
 +
| type  = content
 +
| style = margin:4px 2%;
 +
| text  = DCで見つかったID番号(3000000の範囲内の数字)は、RFC2307の属性ではありません。それらはUnixドメインメンバでは使用できません。もし、同じID番号をどこででも使いたいのであれば、ADにuidNumberとgidNumber属性を追加し、Unixドメインメンバにwinbind 'ad'バックエンドを使う必要があります。もし、uidNumberとgidNumber属性をADに追加することを決めたならば、3000000の範囲内の数値を使用する必要はありませんし、実際のところ異なった範囲の番号を使用することは、明らかに良い考えです。
 +
}}
 +
 +
ユーザーが認証にSamba AD DCのみを使用し、そのアカウントにデータを格納したりログインしたりしない場合は、winbind 'rid'バックエンドを使用できます。これはWindows RIDからのユーザーIDとグループIDを計算します。もし、すべてのUnixドメインメンバーの<code>smb.conf</code>の<code>[global]</code>を同じにすれば、同じIDを取得します。 'rid'バックエンドを使用する場合、ADに何も追加する必要はなく、実際にはRFC2307の属性は無視されます。 'rid'バックエンドを使用する場合、<code>smb.conf</code>に 'template shell'と 'template homedir'パラメータを設定する必要があります。これらはグローバル設定であり、RFC2307の属性とは異なり、誰もが同じログインシェルとUnixホームディレクトリパスを取得します。個々のUNIXホームディレクトリのパスとシェルを設定します。
 +
 +
Sambaを設定するもう1つの方法があります。これは、ユーザとグループが同じIDをどこにでも持つことを要求しますが、ユーザが同じログインシェルを持ち、同じUnixホームディレクトリパスを使用するだけです。 winbind 'ad'バックエンドを使用し、smb.confのテンプレート行を使用す
 +
ることで、これを行うことができます。この方法では、uidNumber属性とgidNumbers属性をADに追加するだけで済みます。
 +
 +
どのwinbindバックエンドを使用するか決定したら、smb.confの 'idmap config'で使用する範囲をさらに決定する必要があります。デフォルトでは、Unixドメインのメンバーには、複数のブロックのユーザーとグループがあります。

2018年3月23日 (金) 18:29時点における版

はじめに

Sambaドメインメンバは、Sambaを実行しているドメインに参加しているLinuxマシンで、NT4プライマリドメインコントローラ(PDC)またはActive Directory(AD)ドメインコントローラ(DC)などのドメインサービスを提供しません。

Sambaドメインメンバーでは、次のことができます。

  • ファイルとディレクトリのローカルACLでドメインユーザーとグループを使用します。
  • ファイルサーバーとして機能するように共有を設定します。
  • プリントサービスをプリントサーバーとして機能させるように設定します。
  • ドメインユーザがローカルにインストールされたサービスにローカルでログオンするか、または認証することができるようにPAMを設定します

Samba NT4ドメインまたはSamba ADの設定の詳細については、「svradmin/samba4/transdoc/domain_control」を参照してください。


インストールの準備

一般的な準備

  • Sambaプロセスが実行中でないことを確認します
# ps ax | egrep "samba|smbd|nmbd|winbindd"

もし、sambasmbdnbmd、あるいはwinbinddなどのプロセスが出力された場合は、そ のプロセスを停止させて下さい。

  • 以前にこのホストでSambaインストールを実行していた場合:
  • 既存のsmb.confファイルを削除してください。ファイルへのパスを一覧表示するには、次のように入力して下さい。
# smbd -b | grep "CONFIGFILE"
   CONFIGFILE: /usr/local/samba/etc/samba/smb.conf
  • 全ての*.tdb*.ldbなどのSambaデータベースファイルを削除して下さい。Sambaデータベースを含むフォルダを一覧表示するには:
# smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
  LOCKDIR: /usr/local/samba/var/lock/
  STATEDIR: /usr/local/samba/var/locks/
  CACHEDIR: /usr/local/samba/var/cache/
  PRIVATE_DIR: /usr/local/samba/private/

クリーンな環境から始めて、混乱を防ぐのに役立ちます。以前のSambaインストールのファイルは、新しいドメインメンバのインストールと混在 することはありません。


Active Directoryドメインに参加するためのドメインメンバーの準備

DNSの設定

詳細は、「[[./linux_and_unix_dns_configuration|./linux_and_unix_dns_configuration]]」を参照して下さい。


Kerberosの設定

SambaはHeimdalとMIT Kerberosバックエンドをサポートしています。ドメインメンバーにKerberosを設定するには、/etc/krb5.confファイルで次のように設定します。

[libdefaults]
    default_realm = SAMDOM.EXAMPLE.COM
    dns_lookup_realm = false
    dns_lookup_kdc = true

前の例では、SAMDOM.EXAMPLE.COMレルムのKerberosを構成しています。

Sambaチームは/etc/krb5.confファイルにさらなるパラメータを設定しないことを推奨しています。


時間同期の設定

Kerberosでは、すべてのドメインメンバーに時刻同期が必要です。したがって、NTPクライアントを設定することをお勧めします。詳細について は、Unixドメインメンバでの時刻同期の設定を参照してください。


ローカルホスト名の解決

ホストをドメインに参加させると、SambaはAD DNSゾーンにホスト名を登録しようとします。このため、netユーティリティは、DNSを使用するか 、/etc/hostsファイルの正しいエントリを使用してホスト名を解決できる必要があります。

ホスト名が正しく解決されることを確認するには、getent hostsコマンドを使用します。例えば:

# getent hosts M1
10.99.0.5      M1.samdom.example.com    M1

ホスト名とFQDNは、127.0.0.1のIPアドレス、またはドメインメンバーのLANインターフェイスで使用されているIPアドレス以外のIPアドレスに解決してはなりません。

出力が表示されないか、ホストが間違ったIPアドレスに解決され、dhcpを使用していない場合は、/etc/hostsファイルに正しいエ ントリを設定します。例えば:

127.0.0.1      localhost
10.99.0.5      M1.samdom.example.com    M1

dhcpを使用している場合は、/etc/hostsに上記の '127.0.0.1'行しか含まれていないことを確認してください。引き続き問題が発 生する場合は、DHCPサーバーを制御しているシステム管理者に連絡してください。

  • Debian関連のシステムでは、/etc/hosts127.0.1.1というホスト名も表示されますので、sambaをインストールする前にそれを削除してください。
  • 次の行はそのままにして下さい:127.0.0.1 localhost

マシンのホスト名にエイリアスを追加する必要がある場合は、127.0.0.1の行ではなく、マシンのipaddressで始まる行の末尾にエ イリアスを追加します。


NT4ドメインに参加するためのドメインメンバの準備

ホストをNT4ドメインに参加させるには、準備は必要ありません。


Sambaのインストール

詳細はSambaのインストールを参照してください。


Sambaの設定

基本的なsmb.confファイルの設定

UNIXドメインメンバーにsmb.confを設定するときには、いくつかの決定をする必要があります。

  • Samba AD DCを含め、全ての場所でユーザーとグループのIDが同じであることを要求していますか?
  • ユーザーとグループがUnixドメインメンバー上で同じIDを持つことのみを望みますか?

決定をした後、もう一つ決めることがあります。この決定は、あなたがすでに決めた事に対して影響を与える可能性があります。

  • 個々のユーザが異なるログインシェルやUnixホームディレクトリパスを必要としますか?

ユーザーが異なるログインシェルやUnixホームディレクトリパスを持つ必要がある場合、またはそれらのIDがどこにでも同じIDを持つようにするには、winbind 'ad'バックエンドを使用し、RFC2307属性をADに追加する必要があります。


ユーザーが認証にSamba AD DCのみを使用し、そのアカウントにデータを格納したりログインしたりしない場合は、winbind 'rid'バックエンドを使用できます。これはWindows RIDからのユーザーIDとグループIDを計算します。もし、すべてのUnixドメインメンバーのsmb.conf[global]を同じにすれば、同じIDを取得します。 'rid'バックエンドを使用する場合、ADに何も追加する必要はなく、実際にはRFC2307の属性は無視されます。 'rid'バックエンドを使用する場合、smb.confに 'template shell'と 'template homedir'パラメータを設定する必要があります。これらはグローバル設定であり、RFC2307の属性とは異なり、誰もが同じログインシェルとUnixホームディレクトリパスを取得します。個々のUNIXホームディレクトリのパスとシェルを設定します。

Sambaを設定するもう1つの方法があります。これは、ユーザとグループが同じIDをどこにでも持つことを要求しますが、ユーザが同じログインシェルを持ち、同じUnixホームディレクトリパスを使用するだけです。 winbind 'ad'バックエンドを使用し、smb.confのテンプレート行を使用す ることで、これを行うことができます。この方法では、uidNumber属性とgidNumbers属性をADに追加するだけで済みます。

どのwinbindバックエンドを使用するか決定したら、smb.confの 'idmap config'で使用する範囲をさらに決定する必要があります。デフォルトでは、Unixドメインのメンバーには、複数のブロックのユーザーとグループがあります。