ネットワークファイルサービスの設定および使用
Red Hat Enterprise Linux 9 でネットワークファイルサービスを設定して使用するガイド
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 Samba をサーバーとして使用 リンクのコピーリンクがクリップボードにコピーされました!
Samba は、Red Hat Enterprise Linux にサーバーメッセージブロック (SMB) プロトコルを実装します。SMB プロトコルは、ファイル共有、共有プリンターなど、サーバーのリソースにアクセスするのに使用されます。また、Samba は、Microsoft Windows が使用する分散コンピューティング環境のリモートプロシージャコール (DCE RPC) のプロトコルを実装します。
Samba は以下のように実行できます。
- Active Directory (AD) または NT4 ドメインメンバー
- スタンドアロンサーバー
NT4 プライマリードメインコントローラー (PDC) またはバックアップドメインコントローラー (BDC)
注記Red Hat は、NT4 ドメインに対応する Windows バージョンの既存のインストールでのみ、PDC モードおよび BDC モードをサポートします。Red Hat では、新しい Samba NT4 ドメインを設定しないことを推奨します。これは、Windows 7 および Windows Server 2008 R2 以降の Microsoft オペレーティングシステムが NT4 ドメインに対応していないためです。
Red Hat は、Samba を AD ドメインコントローラー (DC) として実行することはサポートしていません。
インストールモードとは関係なく、必要に応じてディレクトリーやプリンターを共有できます。これにより、Samba がファイルサーバーおよびプリントサーバーとして機能できるようになります。
1.1. さまざまな Samba サービスおよびモードについて リンクのコピーリンクがクリップボードにコピーされました!
samba パッケージは複数のサービスを提供します。環境と設定するシナリオに応じて、これらのサービスが 1 つ以上必要となり、Samba をさまざまなモードで設定します。
1.1.1. Samba サービス リンクのコピーリンクがクリップボードにコピーされました!
Samba は以下のサービスを提供します。
smbdこのサービスは、SMB プロトコルを使用してファイル共有およびプリントサービスを提供します。また、サービスは、リソースのロックと、接続ユーザーの認証を担当します。ドメインメンバーを認証するには、
smbdにwinbinddが必要です。smb systemd サービスが起動し、smbdデーモンが停止します。smbdサービスを使用するには、sambaパッケージをインストールします。nmbdこのサービスは、NetBIOS over IPv4 プロトコルを使用してホスト名および IP 解決を提供します。名前解決に加え、
nmbdサービスで SMB ネットワークを参照して、ドメイン、作業グループ、ホスト、ファイル共有、およびプリンターを探すことができます。このため、サービスはこの情報をブロードキャストクライアントに直接報告するか、ローカルまたはマスターのブラウザーに転送します。nmbsystemdサービスは、nmbdデーモンを起動し、停止します。最近の SMB ネットワークは、クライアントおよび IP アドレスの解決に DNS を使用することに注意してください。Kerberos の場合は、稼働中の DNS 設定が必要です。
nmbdサービスを使用するには、sambaパッケージをインストールします。winbinddこのサービスは、ローカルシステムの AD または NT4 のドメインユーザーおよびグループを使用する Name Service Switch (NSS) のインターフェイスを提供します。これにより、たとえばドメインユーザーを、Samba サーバーにホストされるサービスや他のローカルサービスに認証できます。
winbindsystemdサービスは、winbindd デーモンを開始および停止します。Samba をドメインメンバーとして設定する場合は、
smbdサービスの前にwinbinddを起動する必要があります。そうしないと、ドメインユーザーおよびグループはローカルシステムで使用できなくなります。winbinddサービスを使用するには、samba-winbindパッケージをインストールします。重要Red Hat は、ドメインユーザーおよびグループをローカルシステムに提供するために、Samba を、
winbinddサービスを使用するサーバーとして実行することのみをサポートします。Windows アクセス制御リスト (ACL) のサポート、NT LAN Manager (NTLM) のフォールバックがないなど、特定の制限により、SSSD に対応しません。
1.1.2. Samba セキュリティーサービス リンクのコピーリンクがクリップボードにコピーされました!
/etc/samba/smb.conf ファイルの [global] セクションの security パラメーターは、Samba がサービスに接続しているユーザーを認証する方法を管理します。Samba をインストールするモードに応じて、パラメーターは異なる値に設定する必要があります。
- AD ドメインメンバーに、
security = adsを設定する。 このモードでは、Samba は Kerberos を使用して AD ユーザーを認証します。
Samba をドメインメンバーとして設定する方法の詳細は、Samba を AD ドメインメンバーサーバーとして設定 を参照してください。
- スタンドアロンサーバーで、
security = userを設定する。 このモードでは、Samba がローカルデータベースを使用して接続ユーザーを認証します。
Samba をスタンドアロンサーバーとしてセットアップする方法の詳細は、スタンドアロンサーバーとしての Samba の設定 を参照してください。
- NT4 PDC または BDC に
security = userを設定する。 - Samba は、このモードでは、ユーザーをローカルまたは LDAP データベースに認証します。
- NT4 ドメインメンバーで、
security = domainを設定する。 Samba は、このモードでは、NT4 PDC または BDC にユーザーを接続する認証を行います。このモードは、AD ドメインメンバーには使用できません。
Samba をドメインメンバーとして設定する方法の詳細は、Samba を AD ドメインメンバーサーバーとして設定 を参照してください。
1.1.3. Samba サービスおよび Samba クライアントユーティリティーによる設定のロードおよびリロードシナリオ リンクのコピーリンクがクリップボードにコピーされました!
以下は、Samba サービスおよびユーティリティーによる設定のロードとリロードについて説明しています。
Samba サービスは、以下のとおりサービスをリロードします。
- 3 分ごとに自動的に
-
手動要求の場合に
smbcontrol all reload-configコマンドを実行するとします。
- Samba クライアントユーティリティーは、起動時にのみ設定を読み取ります。
security などの特定のパラメーターの適用には、smb サービスの再起動が必要です。再読み込みだけでは十分ではないことに注意してください。
1.1.4. 安全な方法での Samba 設定の編集 リンクのコピーリンクがクリップボードにコピーされました!
Samba サービスは、3 分ごとに設定を自動的に再読み込みします。testparm ユーティリティーでの設定の検証前にサービスが変更を再読み込みしないように、安全な方法で Samba 設定を編集できます。
前提条件
- Samba がインストールされている。
手順
/etc/samba/smb.confファイルのコピーを作成します。cp /etc/samba/smb.conf /etc/samba/samba.conf.copy
# cp /etc/samba/smb.conf /etc/samba/samba.conf.copyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - コピーして作成したファイルを編集し、必要な変更を加えます。
/etc/samba/samba.conf.copyファイルの設定を確認します。testparm -s /etc/samba/samba.conf.copy
# testparm -s /etc/samba/samba.conf.copyCopy to Clipboard Copied! Toggle word wrap Toggle overflow testparmがエラーを報告した場合は、修正してもう一度コマンドを実行します。/etc/samba/smb.confファイルを新しい設定に上書きします。mv /etc/samba/samba.conf.copy /etc/samba/smb.conf
# mv /etc/samba/samba.conf.copy /etc/samba/smb.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba サービスが設定を自動的に再読み込みするか、手動で設定を再読み込みするまで待ちます。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. testparm ユーティリティーを使用した smb.conf ファイルの検証 リンクのコピーリンクがクリップボードにコピーされました!
testparm ユーティリティーは、/etc/samba/smb.conf ファイルの Samba 設定が正しいことを確認します。このユーティリティーは、無効なパラメーターおよび値を検出しますが、ID マッピングなどの間違った設定も検出します。testparm が問題を報告しないと、Samba サービスは /etc/samba/smb.conf ファイルを正常に読み込みます。testparm は、設定されたサービスが利用可能であること、または期待通りに機能するかを確認できないことに注意してください。
Red Hat では、このファイルの変更後に毎回 testparm を使用して、/etc/samba/smb.conf ファイルを検証することが推奨されます。
前提条件
- Samba をインストールしている。
-
/etc/samba/smb.confファイルが存在する。
手順
rootユーザーでtestparmユーティリティーを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の出力例では、存在しないパラメーターと間違った ID マッピングの設定が報告されます。
-
testparmが設定内の間違ったパラメーター、値、またはその他のエラーを報告する場合は、問題を修正してから再度ユーティリティーを実行してください。
1.3. Samba をスタンドアロンサーバーとして設定 リンクのコピーリンクがクリップボードにコピーされました!
Samba は、ドメインのメンバーではないサーバーとして設定できます。このインストールモードでは、Samba はユーザーを中央 DC ではなくローカルデータベースに認証します。また、ゲストアクセスを有効にして、ユーザーが、認証なしで 1 つまたは複数のサービスに接続できるようにすることもできます。
1.3.1. スタンドアロンサーバーのサーバー設定の設定 リンクのコピーリンクがクリップボードにコピーされました!
Samba スタンドアロンサーバーのサーバー設定を設定できます。
手順
sambaパッケージをインストールします。dnf install samba
# dnf install sambaCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/samba/smb.confファイルを編集して、以下のパラメーターを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定では、
Example-WGワークグループに、スタンドアロンサーバー (Server) を定義します。また、この設定により最小レベル (1) でのログ記録が可能になり、ログファイルは/var/log/samba/ディレクトリーに保存されます。Samba は、log fileパラメーターの%mマクロを、接続しているクライアントの NetBIOS 名までデプロイメントします。これにより、クライアントごとに個別のログファイルが有効になります。オプション: ファイルまたはプリンターの共有を設定します。参照:
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 認証が必要な共有を設定する場合は、ユーザーアカウントを作成します。
詳細は ローカルユーザーアカウントの作成および有効化 を参照してください。
firewall-cmdユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。firewall-cmd --permanent --add-service=samba firewall-cmd --reload
# firewall-cmd --permanent --add-service=samba # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow smbサービスを有効にして起動します。systemctl enable --now smb
# systemctl enable --now smbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.2. ローカルユーザーアカウントの作成および有効化 リンクのコピーリンクがクリップボードにコピーされました!
共有への接続時にユーザーが認証を行えるようにするには、オペレーティングシステムと Samba データベースの両方で Samba ホストにアカウントを作成する必要があります。Samba では、ファイルシステムオブジェクトでアクセス制御リスト (ACL) を検証するオペレーティングシステムアカウントと、接続ユーザーの認証を行う Samba アカウントが必要です。
passdb backend = tdbsam のデフォルト設定を使用すると、Samba はユーザーアカウントを /var/lib/samba/private/passdb.tdb データベースに保存します。
example という名前のローカル Samba ユーザーを作成できます。
前提条件
- Samba が、スタンドアロンサーバーとしてインストールされている。
手順
オペレーティングシステムアカウントを作成します。
useradd -M -s /sbin/nologin example
# useradd -M -s /sbin/nologin exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、ホームディレクトリーを作成せずに、
exampleアカウントを追加します。アカウントが Samba への認証のみに使用される場合は、/sbin/nologinコマンドをシェルとして割り当て、アカウントがローカルでログインしないようにします。オペレーティングシステムのアカウントにパスワードを設定して、これを有効にします。
passwd example
# passwd example Enter new UNIX password: password Retype new UNIX password: password passwd: password updated successfullyCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba は、オペレーティングシステムのアカウントに設定されたパスワードを使用して認証を行いません。ただし、アカウントを有効にするには、パスワードを設定する必要があります。アカウントが無効になると、そのユーザーが接続した時に Samba がアクセスを拒否します。
Samba データベースにユーザーを追加し、そのアカウントにパスワードを設定します。
smbpasswd -a example
# smbpasswd -a example New SMB password: password Retype new SMB password: password Added user example.Copy to Clipboard Copied! Toggle word wrap Toggle overflow このアカウントを使用して Samba 共有に接続する場合に、このパスワードを使用して認証を行います。
Samba アカウントを有効にします。
smbpasswd -e example
# smbpasswd -e example Enabled user example.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. Samba ID マッピングの理解および設定 リンクのコピーリンクがクリップボードにコピーされました!
Windows ドメインは、ユーザーおよびグループを一意のセキュリティー識別子 (SID) で区別します。ただし、Linux では、ユーザーおよびグループごとに一意の UID と GID が必要です。Samba をドメインメンバーとして実行する場合は、winbindd サービスが、ドメインユーザーおよびグループに関する情報をオペレーティングシステムに提供します。
winbindd サービスが、ユーザーおよびグループの一意の ID を Linux に提供するようにするには、/etc/samba/smb.conf ファイルで ID マッピングを設定する必要があります。
- ローカルデータベース (デフォルトドメイン)
- Samba サーバーがメンバーになっている AD または NT4 のドメイン
- ユーザーがこの Samba サーバーのリソースにアクセスする必要のある信頼ドメイン
Samba は、特定の設定に対して異なる ID マッピングバックエンドを提供します。最も頻繁に使用されるバックエンドは、以下の通りです。
| バックエンド | ユースケース |
|---|---|
|
|
|
|
| AD ドメインのみ |
|
| AD ドメインおよび NT4 ドメイン |
|
|
AD、NT4、および |
1.4.1. Samba ID 範囲の計画 リンクのコピーリンクがクリップボードにコピーされました!
Linux の UID および GID を AD に保存するか、Samba がそれを生成するように設定するかに関係なく、各ドメイン設定には、他のドメインと重複しない一意の ID 範囲が必要です。
重複する ID 範囲を設定すると、Samba が正常に機能しなくなります。
例1.1 一意の ID 範囲
以下は、デフォルト (*)、AD-DOM、および TRUST-DOM のドメインの非オーバーランディングの ID マッピング範囲を示しています。
1 つのドメインに割り当てられるのは 1 つの範囲だけです。したがって、ドメイン範囲間で十分な容量を残しておきます。これにより、ドメインが拡大した場合に、後で範囲を拡張できます。
後で別の範囲をドメインに割り当てると、このユーザーおよびグループが作成したファイルおよびディレクトリーの所有権が失われます。
1.4.2. * デフォルトドメイン リンクのコピーリンクがクリップボードにコピーされました!
ドメイン環境では、以下の各 ID マッピング設定を追加します。
- Samba サーバーがメンバーとなっているドメイン
- Samba サーバーにアクセスできる信頼された各ドメイン
ただし、Samba が、その他のすべてのオブジェクトに、デフォルトドメインから ID を割り当てます。これには以下が含まれます。
- ローカルの Samba ユーザーおよびグループ
-
Samba の組み込みアカウントおよびグループ (
BUILTIN\Administratorsなど)
Samba が正常に機能できるようにするには、説明に従ってデフォルトのドメインを設定する必要があります。
割り当てられた ID を永続的に格納するには、デフォルトのドメインバックエンドを書き込み可能にする必要があります。
デフォルトドメインには、以下のいずれかのバックエンドを使用できます。
tdbデフォルトのドメインを、
tdbバックエンドを使用するように設定する場合は、ID 範囲を設定します。この ID 範囲には、将来作成されるオブジェクトや、定義されたドメイン ID マッピング設定には含まれないオブジェクトを追加できます。たとえば、
/etc/samba/smb.confファイルの[global]セクションで以下を設定します。idmap config * : backend = tdb idmap config * : range = 10000-999999
idmap config * : backend = tdb idmap config * : range = 10000-999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、TDB ID マッピングバックエンドの使用 を参照してください。
autoridautoridバックエンドを使用するように、デフォルトのドメインを設定する場合、ドメイン用の ID マッピング設定を追加するかどうかは任意になります。たとえば、
/etc/samba/smb.confファイルの[global]セクションで以下を設定します。idmap config * : backend = autorid idmap config * : range = 10000-999999
idmap config * : backend = autorid idmap config * : range = 10000-999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、autorid ID マッピングバックエンドの使用 を参照してください。
1.4.3. tdb ID マッピングバックエンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
winbindd サービスは、デフォルトで書き込み可能な tdb ID マッピングバックエンドを使用して、セキュリティー識別子 (SID)、UID、および GID のマッピングテーブルを格納します。これには、ローカルユーザー、グループ、組み込みプリンシパルが含まれます。
このバックエンドは、* デフォルトドメインにのみ使用してください。以下に例を示します。
idmap config * : backend = tdb idmap config * : range = 10000-999999
idmap config * : backend = tdb
idmap config * : range = 10000-999999
1.4.4. ad ID マッピングバックエンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
ad ID マッピングバックエンドを使用するように Samba AD メンバーを設定できます。
ad ID マッピングバックエンドは、読み取り専用 API を実装し、AD からアカウントおよびグループの情報を読み取ります。これには、以下の利点があります。
- ユーザーとグループの全設定は、AD に集中的に保存されます。
- ユーザーおよびグループの ID は、このバックエンドを使用するすべての Samba サーバーで一貫しています。
- ID は、破損する可能性のあるローカルデータベースには保存されないため、ファイルの所有権は失われません。
ad ID マッピングバックエンドは、一方向の信頼を使用する Active Directory ドメインに対応していません。一方向の信頼で Active Directory のドメインメンバーを設定する場合は、tdb、rid、または autorid のいずれかの ID マッピングバックエンドを使用します。
ad バックエンドは、AD から以下の属性を読み込みます。
| AD 属性名 | オブジェクトの種類 | マッピング先 |
|---|---|---|
|
| ユーザーおよびグループ | オブジェクトのユーザー名またはグループ名 |
|
| ユーザー | ユーザー ID (UID) |
|
| グループ | グループ ID (GID) |
|
| ユーザー | ユーザーのシェルのパス |
|
| ユーザー | ユーザーのホームディレクトリーのパス |
|
| ユーザー | プライマリーグループ ID |
[a]
idmap config DOMAIN:unix_nss_info = yes を設定している場合に限り、Samba がこの属性を読み込みます。
[b]
idmap config DOMAIN:unix_primary_group = yes を設定している場合に限り、Samba がこの属性を読み込みます。
| ||
前提条件
-
ユーザーおよびグループはいずれも、AD で一意の ID が設定され、ID が、
/etc/samba/smb.confファイルで設定されている範囲内にある。ID が範囲外にあるオブジェクトは、Samba サーバーでは利用できません。 - ユーザーおよびグループには、AD ですべての必須属性が設定されている。必要な属性がないと、ユーザーまたはグループは Samba サーバーで使用できなくなります。必要な属性は、設定によって異なります。前提条件:
- Samba をインストールしている。
-
ID マッピングを除く Samba 設定が
/etc/samba/smb.confファイルにある。
手順
/etc/samba/smb.confファイルの[global]セクションを編集します。デフォルトドメイン (
*) に ID マッピング設定が存在しない場合は追加します。以下に例を示します。idmap config * : backend = tdb idmap config * : range = 10000-999999
idmap config * : backend = tdb idmap config * : range = 10000-999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow AD ドメインの
adID マッピングバックエンドを有効にします。idmap config DOMAIN : backend = ad
idmap config DOMAIN : backend = adCopy to Clipboard Copied! Toggle word wrap Toggle overflow AD ドメインのユーザーおよびグループに割り当てられている ID の範囲を設定します。以下に例を示します。
idmap config DOMAIN : range = 2000000-2999999
idmap config DOMAIN : range = 2000000-2999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要この範囲は、このサーバーの他のドメイン設定と重複させることはできません。また、この範囲には、今後割り当てられる ID がすべて収まる大きさを設定する必要があります。詳細は、Samba ID 範囲の計画 を参照してください。
Samba が AD から属性を読み取る際に RFC 2307 スキーマを使用するように設定します。
idmap config DOMAIN : schema_mode = rfc2307
idmap config DOMAIN : schema_mode = rfc2307Copy to Clipboard Copied! Toggle word wrap Toggle overflow Samba が、対応する AD 属性からログインシェルおよびユーザーホームディレクトリーのパスを読み取るようにする場合は、以下を設定します。
idmap config DOMAIN : unix_nss_info = yes
idmap config DOMAIN : unix_nss_info = yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、すべてのユーザーに適用される、ドメイン全体のホームディレクトリーのパスおよびログインシェルを統一して設定できます。以下に例を示します。
template shell = /bin/bash template homedir = /home/%U
template shell = /bin/bash template homedir = /home/%UCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、Samba は、ユーザーオブジェクトの
primaryGroupID属性を、Linux のユーザーのプライマリーグループとして使用します。または、代わりにgidNumber属性に設定されている値を使用するように Samba を設定できます。idmap config DOMAIN : unix_primary_group = yes
idmap config DOMAIN : unix_primary_group = yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.5. rid ID マッピングバックエンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
rid ID マッピングバックエンドを使用するように Samba ドメインメンバーを設定できます。
Samba は、Windows SID の相対識別子 (RID) を使用して、Red Hat Enterprise Linux で ID を生成できます。
RID は、SID の最後の部分です。たとえば、ユーザーの SID が S-1-5-21-5421822485-1151247151-421485315-30014 の場合、対応する RID は 30014 になります。
rid ID マッピングバックエンドは、AD ドメインおよび NT4 ドメインのアルゴリズムマッピングスキームに基づいてアカウントおよびグループの情報を計算する読み取り専用 API を実装します。バックエンドを設定する場合は、idmap config DOMAIN : range パラメーターで、RID の最小値および最大値を設定する必要があります。Samba は、このパラメーターで設定される RID の最小値および最大値を超えるユーザーまたはグループをマッピングしません。
読み取り専用のバックエンドとして、rid は、BUILTIN グループなど、新しい ID を割り当てることができません。したがって、* デフォルトドメインにはこのバックエンドを使用しないでください。
rid バックエンドを使用した利点
- 設定された範囲内の RID があるドメインユーザーとグループはすべて、自動的にドメインメンバーで利用可能になります。
- ID、ホームディレクトリー、およびログインシェルを手動で割り当てる必要はありません。
rid バックエンドを使用した場合の短所
- すべてのドメインユーザーは、割り当てられた同じログインシェルとホームディレクトリーを取得します。ただし、変数を使用できます。
-
同じ ID 範囲設定で
ridバックエンドを使用している Samba ドメインメンバーでは、ユーザー ID とグループ ID が同じになります。 - ドメインメンバーで個々のユーザーまたはグループを除外して、利用できないようにすることはできません。設定されている範囲外にあるユーザーとグループのみが除外されます。
-
異なるドメインのオブジェクトの RID が同じ場合は、
winbinddサービスが ID の計算に使用する式に基づき、複数ドメインの環境で重複する ID が発生する場合があります。
前提条件
- Samba をインストールしている。
-
ID マッピングを除く Samba 設定が
/etc/samba/smb.confファイルにある。
手順
/etc/samba/smb.confファイルの[global]セクションを編集します。デフォルトドメイン (
*) に ID マッピング設定が存在しない場合は追加します。以下に例を示します。idmap config * : backend = tdb idmap config * : range = 10000-999999
idmap config * : backend = tdb idmap config * : range = 10000-999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインの
ridID マッピングバックエンドを有効にします。idmap config DOMAIN : backend = rid
idmap config DOMAIN : backend = ridCopy to Clipboard Copied! Toggle word wrap Toggle overflow 今後割り当てられるすべての RID が収まる大きさの範囲を設定します。以下に例を示します。
idmap config DOMAIN : range = 2000000-2999999
idmap config DOMAIN : range = 2000000-2999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow Samba は、そのドメインの RID がその範囲内にないユーザーおよびグループを無視します。
重要この範囲は、このサーバーの他のドメイン設定と重複させることはできません。また、この範囲には、今後割り当てられる ID がすべて収まる大きさを設定する必要があります。詳細は、Samba ID 範囲の計画 を参照してください。
すべてのマッピングユーザーに割り当てられるシェルおよびホームディレクトリーのパスを設定します。以下に例を示します。
template shell = /bin/bash template homedir = /home/%U
template shell = /bin/bash template homedir = /home/%UCopy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.6. autorid ID マッピングバックエンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
autorid ID マッピングバックエンドを使用するように Samba ドメインメンバーを設定できます。
autorid バックエンドは、rid ID マッピングバックエンドと同様の動作をしますが、異なるドメインに対して自動的に ID を割り当てることができます。これにより、以下の状況で autorid バックエンドを使用できます。
-
*デフォルトドメインのみ -
*デフォルトドメインと追加のドメインでは、追加のドメインごとに ID マッピング設定を作成する必要はありません。 - 特定のドメインのみ
デフォルトドメインに autorid を使用する場合は、ドメイン用の ID マッピング設定を追加するかどうかは任意です。
このセクションの一部は、Samba Wiki に公開されているドキュメント idmap config autorid に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。
autorid バックエンドを使用した利点
- 設定された範囲内に計算した UID と GID があるすべてのドメインユーザーおよびグループは、ドメインメンバーで自動的に利用可能になります。
- ID、ホームディレクトリー、およびログインシェルを手動で割り当てる必要はありません。
- 複数ドメイン環境内の複数のオブジェクトが同じ RID を持つ場合でも、重複する ID はありません。
短所
- Samba ドメインメンバー間では、ユーザー ID とグループ ID は同じではありません。
- すべてのドメインユーザーは、割り当てられた同じログインシェルとホームディレクトリーを取得します。ただし、変数を使用できます。
- ドメインメンバーで個々のユーザーまたはグループを除外して、利用できないようにすることはできません。計算された UID または GID が、設定された範囲外にあるユーザーとグループのみが除外されます。
前提条件
- Samba をインストールしている。
-
ID マッピングを除く Samba 設定が
/etc/samba/smb.confファイルにある。
手順
/etc/samba/smb.confファイルの[global]セクションを編集します。*デフォルトドメインのautoridID マッピングバックエンドを有効にします。idmap config * : backend = autorid
idmap config * : backend = autoridCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存および将来の全オブジェクトに ID を割り当てられる大きさの範囲を設定します。以下に例を示します。
idmap config * : range = 10000-999999
idmap config * : range = 10000-999999Copy to Clipboard Copied! Toggle word wrap Toggle overflow Samba は、このドメインで計算した ID が範囲内にないユーザーおよびグループを無視します。
警告範囲を設定し、Samba がそれを使用して開始してからは、範囲の上限を小さくすることはできません。範囲にその他の変更を加えると、新しい ID 割り当てが発生し、ファイルの所有権が失われる可能性があります。
オプション: 範囲のサイズを設定します。以下に例を示します。
idmap config * : rangesize = 200000
idmap config * : rangesize = 200000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Samba は、
idmap config * : rangeパラメーターに設定されている範囲からすべての ID を取得するまで、各ドメインのオブジェクトにこの数の連続 ID を割り当てます。注記rangesize を設定する場合は、適宜範囲を調整する必要があります。この範囲は rangesize の倍数である必要があります。
すべてのマッピングユーザーに割り当てられるシェルおよびホームディレクトリーのパスを設定します。以下に例を示します。
template shell = /bin/bash template homedir = /home/%U
template shell = /bin/bash template homedir = /home/%UCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ドメイン用の ID マッピング設定を追加します。個別のドメインの設定が利用できない場合、Samba は以前に設定した
*デフォルトドメインのautoridバックエンド設定を使用して ID を計算します。重要この範囲は、このサーバーの他のドメイン設定と重複させることはできません。また、この範囲には、今後割り当てられる ID がすべて収まる大きさを設定する必要があります。詳細は、Samba ID 範囲の計画 を参照してください。
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. Samba を AD ドメインメンバーサーバーとして設定 リンクのコピーリンクがクリップボードにコピーされました!
AD または NT4 のドメインを実行している場合は、Samba を使用して Red Hat Enterprise Linux サーバーをメンバーとしてドメインに追加し、以下を取得します。
- その他のドメインメンバーのドメインリソースにアクセスする
-
sshdなどのローカルサービスに対してドメインユーザーを認証する - サーバーにホストされているディレクトリーおよびプリンターを共有して、ファイルサーバーおよびプリントサーバーとして動作する
1.5.1. RHEL システムの AD ドメインへの参加 リンクのコピーリンクがクリップボードにコピーされました!
Samba Winbind は、Red Hat Enterprise Linux (RHEL) システムを Active Directory (AD) に接続するための System Security Services Daemon (SSSD) の代替手段です。realmd を使用して Samba Winbind を設定することで、RHEL システムを AD ドメインに参加させることができます。
前提条件
- ホストは、AD ドメインを解決できる DNS サーバーを使用している。
- ホストの時刻は AD の時刻と同期され、タイムゾーン設定が適切である。
手順
AD で Kerberos 認証に非推奨の RC4 暗号化タイプが必要な場合は、RHEL でこの暗号のサポートを有効にします。
update-crypto-policies --set DEFAULT:AD-SUPPORT
# update-crypto-policies --set DEFAULT:AD-SUPPORTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のパッケージをインストールします。
dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator krb5-workstation# dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator krb5-workstationCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインメンバーでディレクトリーまたはプリンターを共有するには、
sambaパッケージをインストールします。dnf install samba
# dnf install sambaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の Samba 設定ファイル
/etc/samba/smb.confをバックアップします。mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインに参加します。たとえば、ドメイン
ad.example.comに参加するには、以下のコマンドを実行します。realm join --membership-software=samba --client-software=winbind ad.example.com
# realm join --membership-software=samba --client-software=winbind ad.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドを使用すると、
realmユーティリティーが自動的に以下を実行します。-
ad.example.comドメインのメンバーシップに/etc/samba/smb.confファイルを作成します。 -
ユーザーおよびグループの検索用の
winbindモジュールを、/etc/nsswitch.confファイルに追加します。 -
/etc/pam.d/ディレクトリーの PAM (プラグ可能な認証モジュール) 設定ファイルを更新します。 -
winbindサービスを起動し、システムの起動時にサービスを起動できるようにします。
-
-
オプション:
/etc/samba/smb.confファイルで、別の ID マッピングバックエンドまたはカスタマイズした ID マッピング設定を指定します。
詳細は、Samba ID マッピングの理解と設定 を参照してください。
winbindサービスが稼働していることを確認します。systemctl status winbind
# systemctl status winbind ... Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s agoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Samba がドメインのユーザーおよびグループの情報をクエリーできるようにするには、
smbを起動する前にwinbindサービスを実行する必要があります。sambaパッケージをインストールしてディレクトリーおよびプリンターを共有している場合は、smbサービスを有効化して開始します。systemctl enable --now smb
# systemctl enable --now smbCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
必要に応じて、Active Directory へのローカルログインを認証する場合は、
winbind_krb5_localauthプラグインを有効にします。MIT Kerberos 用のローカル承認プラグインの使用
検証
AD ドメインの AD 管理者アカウントなど、AD ユーザーの詳細を表示します。
getent passwd "AD\administrator"
# getent passwd "AD\administrator" AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow AD ドメイン内のドメインユーザーグループのメンバーをクエリーします。
getent group "AD\Domain Users"
# getent group "AD\Domain Users" AD\domain users:x:10000:user1,user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ファイルとディレクトリーの権限を設定するときに、ドメインのユーザーおよびグループを使用できることを確認します。たとえば、
/srv/samba/example.txtファイルの所有者をAD\administratorに設定し、グループをAD\Domain Usersに設定するには、以下のコマンドを実行します。chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
# chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow Kerberos 認証が期待どおりに機能することを確認します。
AD ドメインメンバーで、
administrator@AD.EXAMPLE.COMプリンシパルのチケットを取得します。kinit administrator@AD.EXAMPLE.COM
# kinit administrator@AD.EXAMPLE.COMCopy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュされた Kerberos チケットを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
利用可能なドメインの表示:
wbinfo --all-domains
# wbinfo --all-domains BUILTIN SAMBA-SERVER ADCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. MIT Kerberos 用のローカル承認プラグインの使用 リンクのコピーリンクがクリップボードにコピーされました!
winbind サービスは、Active Directory ユーザーをドメインメンバーに提供します。特定の状況では、管理者が、ドメインメンバーで実行している SSH サーバーなどのローカルサービスに対して、ドメインユーザーが認証を行えるようにします。Kerberos を使用してドメインユーザーを認証している場合は、winbind サービスを介して、winbind_krb5_localauth プラグインが Kerberos プリンシパルを Active Directory アカウントに正しくマッピングできるようにします。
たとえば、Active Directory ユーザーの sAMAccountName 属性を EXAMPLE に設定し、小文字のユーザー名でユーザーがログインしようとすると、Kerberos はユーザー名を大文字で返します。その結果、エントリーは認証の失敗に一致しません。
winbind_krb5_localauth プラグインを使用すると、アカウント名が正しくマッピングされます。これは GSSAPI 認証にのみ適用され、初期のチケット付与チケット (TGT) の取得には該当しません。
前提条件
- Samba が Active Directory のメンバーとして設定されている。
- Red Hat Enterprise Linux が、Active Directory に対してログイン試行を認証している。
-
winbindサービスが実行している。
手順
/etc/krb5.conf ファイルを編集し、以下のセクションを追加します。
[plugins]
localauth = {
module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so
enable_only = winbind
}
[plugins]
localauth = {
module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so
enable_only = winbind
}
1.5.3. Samba クライアントで証明書の自動登録を有効にする リンクのコピーリンクがクリップボードにコピーされました!
証明書の自動登録は、Active Directory (AD) 証明書サービスの機能です。この機能を使用することで、ユーザーが介入しなくてもユーザーとデバイスは証明書を登録できます。管理者は、手動で証明書を監視および更新することなく、ローカルサービスで AD 認証局 (CA) によって発行された証明書を使用できるため、中断を防ぐことができます。
AD が認証局 (CA) を提供し、RHEL ホストが AD のメンバーである場合は、RHEL ホストで証明書の自動登録を有効にできます。その後、Samba は AD からの自動登録グループポリシーを適用し、証明書を要求および管理するように certmonger サービスを設定します。
前提条件
- Samba が AD のメンバーとして設定されている。
AD 内の Windows サーバーに、次のサービスがインストールされた Active Directory 証明書サービス サーバーロールがある。
- 認証局
- 証明書登録
- ポリシー Web サービス
- インターネットインフォメーションサービス (ISS) は、HTTPS 経由で証明書の自動登録機能を提供するように設定されています。
- ISS は AD CA が発行した証明書を使用します。
- 証明書登録サービスは Kerberos 認証をサポートしています。
- 証明書の自動登録用のグループポリシーオブジェクト (GPO) が AD で設定されます。
手順
samba-gpupdateパッケージをインストールします。dnf install samba-gpupdate
# dnf install samba-gpupdateCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/samba/smb.confファイルに次の設定を追加します。kerberos method = secrets and keytab sync machine password to keytab = "/etc/krb5.keytab:account_name:sync_spns:spn_prefixes=host:sync_kvno:machine_password", "/etc/samba/cepces.keytab:account_name:machine_password" apply group policies = yes
kerberos method = secrets and keytab sync machine password to keytab = "/etc/krb5.keytab:account_name:sync_spns:spn_prefixes=host:sync_kvno:machine_password", "/etc/samba/cepces.keytab:account_name:machine_password" apply group policies = yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定で指定される設定には、次の設定が含まれます。
kerberos method = secrets and keytab-
最初に
/var/lib/samba/private/secrets.tdbファイルを使用して Kerberos チケットを検証し、次に/etc/krb5.keytabファイルを使用するように Samba を設定します。 sync machine password to keytab = <list_of_keytab_files_and_their_principals>-
Samba が管理するキータブファイルへのパスと、これらのファイル内の Kerberos プリンシパルを定義します。示された値を使用すると、Samba は
/etc/krb5.keytabシステムキータブを維持し、さらに、certmongerのcepces-submit送信ヘルパーが CA への認証に使用する/etc/samba/cepces.keytabファイルも維持します。 apply group policies = yes-
一定間隔で
gpupdateコマンドを実行するようにwinbindサービスを設定します。更新間隔は 90 分で、これに 0 - 30 分の間のランダムオフセットが加算されます。
/etc/samba/cepces.keytabファイルを作成します。net ads keytab create
# net ads keytab createCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/cepces/cepces.confファイルを編集し、次の変更を加えます。[global]セクションで、server変数を、CA サービスを実行する Windows サーバーの完全修飾ドメイン名 (FQDN) にします。[global] server=win-server.ad.example.com
[global] server=win-server.ad.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow [kerberos]セクションで、keytab変数を/etc/samba/cepces.keytabに設定します。[kerberos] keytab=/etc/samba/cepces.keytab
[kerberos] keytab=/etc/samba/cepces.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow
certmongerサービスを有効にして起動します。systemctl enable --now certmonger
# systemctl enable --now certmongerCopy to Clipboard Copied! Toggle word wrap Toggle overflow certmongerサービスは CA からの証明書を要求し、有効期限が切れる前に自動的に更新します。samba-gpupdateを手動で実行して、グループポリシーが AD からロードされていることを確認します。samba-gpupdate
# samba-gpupdateCopy to Clipboard Copied! Toggle word wrap Toggle overflow certmongerサービスは、キーと証明書を次のディレクトリーに保存します。-
秘密鍵:
/var/lib/samba/private/certs/ 発行された証明書:
/var/lib/samba/certs/これで、同じホスト上のサービスでキーと証明書の使用を開始できます。
-
秘密鍵:
オプション:
certmongerが管理する証明書を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、Windows CA は
Machine証明書テンプレートのみを使用して証明書を発行します。Windows CA でこのホストに適用する追加のテンプレートを設定した場合、certmongerはこれらのテンプレートの証明書も要求し、getcert list出力にはそれらのエントリーも含まれます。
1.6. IdM ドメインメンバーでの Samba の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Identity Management (IdM) ドメインに参加しているホスト上で Samba をセットアップできます。IdM のユーザー、および可能であれば、信頼された Active Directory (AD) ドメインのユーザーは、Samba が提供する共有およびプリンターサービスにアクセスできます。
IdM ドメインメンバーで Samba を使用する機能は、テクノロジープレビュー機能で、特定の制限が含まれています。たとえば、IdM 信頼コントローラーは Active Directory グローバルカタログサービスをサポートしておらず、分散コンピューティング環境/リモートプロシージャコール (DCE/RPC) プロトコルを使用した IdM グループの解決をサポートしていません。結果として、AD ユーザーは、他の IdM クライアントにログインしている場合、IdM クライアントでホストされている Samba 共有とプリンターにのみアクセスできます。Windows マシンにログインしている AD ユーザーは、IdM ドメインメンバーでホストされている Samba 共有にアクセスできません。
IdM ドメインメンバーに Samba をデプロイしているお客様は、ぜひ Red Hat にフィードバックをお寄せください。
AD ドメインのユーザーが Samba によって提供される共有およびプリンターサービスにアクセスする必要がある場合は、AES 暗号化タイプが AD になっていることを確認してください。詳細は、GPO を使用した Active Directory での AES 暗号化タイプの有効化 を参照してください。
前提条件
- ホストは、クライアントとして IdM ドメインに参加している。
- IdM サーバーとクライアントの両方が RHEL 9.0 以降で実行されている必要がある。
1.6.1. Samba をドメインメンバーにインストールするための IdM ドメインの準備 リンクのコピーリンクがクリップボードにコピーされました!
IdM クライアントに Samba を設定する前に、IdM サーバーで ipa-adtrust-install ユーティリティーを使用して IdM ドメインを準備する必要があります。
ipa-adtrust-install コマンドを自動的に実行するシステムは、AD 信頼コントローラーになります。ただし、ipa-adtrust-install は、IdM サーバーで 1 回のみ実行する必要があります。
前提条件
- IdM サーバーがインストールされている。
- パッケージをインストールし、IdM サービスを再起動するための root 権限がある。
手順
必要なパッケージをインストールします。
dnf install ipa-server-trust-ad samba-client
[root@ipaserver ~]# dnf install ipa-server-trust-ad samba-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow IdM 管理ユーザーとして認証します。
kinit admin
[root@ipaserver ~]# kinit adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa-adtrust-installユーティリティーを実行します。ipa-adtrust-install
[root@ipaserver ~]# ipa-adtrust-installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 統合 DNS サーバーとともに IdM がインストールされていると、DNS サービスレコードが自動的に作成されます。
IdM が統合 DNS サーバーなしで IdM をインストールすると、
ipa-adtrust-installは、続行する前に DNS に手動で追加する必要があるサービスレコードのリストを出力します。スクリプトにより、
/etc/samba/smb.confがすでに存在し、書き換えられることが求められます。WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing Samba configuration. Do you wish to continue? [no]: yes
WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing Samba configuration. Do you wish to continue? [no]: yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow このスクリプトは、従来の Linux クライアントが信頼できるユーザーと連携できるようにする互換性プラグインである
slapi-nisプラグインを設定するように求めるプロンプトを表示します。Do you want to enable support for trusted domains in Schema Compatibility plugin? This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users. Enable trusted domains support in slapi-nis? [no]: yes
Do you want to enable support for trusted domains in Schema Compatibility plugin? This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users. Enable trusted domains support in slapi-nis? [no]: yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow SID 生成タスクを実行して、既存ユーザーに SID を作成するように求められます。
Do you want to run the ipa-sidgen task? [no]: yes
Do you want to run the ipa-sidgen task? [no]: yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow これはリソースを集中的に使用するタスクであるため、ユーザー数が多い場合は別のタイミングで実行できます。
オプション: Windows Server 2008 以降では、動的 RPC ポート範囲が、デフォルトで
49152-65535に定義されています。ご使用の環境に異なる動的 RPC ポート範囲を定義する必要がある場合は、Samba が異なるポートを使用するように設定し、ファイアウォール設定でそのポートを開くように設定します。以下の例では、ポート範囲を55000-65000に設定します。net conf setparm global 'rpc server dynamic port range' 55000-65000 firewall-cmd --add-port=55000-65000/tcp firewall-cmd --runtime-to-permanent
[root@ipaserver ~]# net conf setparm global 'rpc server dynamic port range' 55000-65000 [root@ipaserver ~]# firewall-cmd --add-port=55000-65000/tcp [root@ipaserver ~]# firewall-cmd --runtime-to-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipaサービスを再起動します。ipactl restart
[root@ipaserver ~]# ipactl restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow smbclientユーティリティーを使用して、Samba が IdM サイドからの Kerberos 認証に応答することを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.2. IdM クライアントでの Samba サーバーのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
IdM ドメインに登録されたクライアントに Samba をインストールして設定できます。
前提条件
- IdM サーバーとクライアントの両方が RHEL 9.0 以降で実行されている必要がある。
- IdM ドメインは、ドメインメンバーに Samba をインストールするための IdM ドメインの準備 の説明に従って準備されます。
- IdM に AD で設定された信頼がある場合は、Kerberos の AES 暗号化タイプを有効にします。たとえば、グループポリシーオブジェクト (GPO) を使用して、AES 暗号化の種類を有効にします。詳細は、GPO を使用した Active Directory での AES 暗号化の有効化 を参照してください。
手順
ipa-client-sambaパッケージをインストールします。dnf install ipa-client-samba
[root@idm_client]# dnf install ipa-client-sambaCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa-client-sambaユーティリティーを使用して、クライアントを準備し、初期 Samba 設定を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
ipa-client-sambaは、ユーザーが接続したときにそのユーザーのホームディレクトリーを動的に共有するために、/etc/samba/smb.confファイルに[homes]セクションが自動的に追加されます。ユーザーがこのサーバーにホームディレクトリーがない場合、または共有したくない場合は、/etc/samba/smb.confから次の行を削除します。[homes] read only = no[homes] read only = noCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーとプリンターを共有します。詳細は、以下を参照してください。
ローカルファイアウォールで Samba クライアントに必要なポートを開きます。
firewall-cmd --permanent --add-service=samba-client firewall-cmd --reload
[root@idm_client]# firewall-cmd --permanent --add-service=samba-client [root@idm_client]# firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow smbサービスおよびwinbindサービスを有効にして開始します。systemctl enable --now smb winbind
[root@idm_client]# systemctl enable --now smb winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
samba-client パッケージがインストールされている別の IdM ドメインメンバーで次の検証手順を実行します。
Kerberos 認証を使用して、Samba サーバー上の共有をリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.3. IdM が新しいドメインを信頼する場合は、ID マッピング設定を手動で追加 リンクのコピーリンクがクリップボードにコピーされました!
Samba では、ユーザーがリソースにアクセスする各ドメインの ID マッピング設定が必要です。IdM クライアントで実行している既存の Samba サーバーでは、管理者が Active Directory (AD) ドメインに新しい信頼を追加した後、ID マッピング設定を手動で追加する必要があります。
前提条件
- IdM クライアントで Samba を設定している。その後、IdM に新しい信頼が追加されている。
- Kerberos の暗号化タイプ DES および RC4 は、信頼できる AD ドメインで無効にしている。セキュリティー上の理由から、RHEL 9 はこのような弱い暗号化タイプに対応していません。
手順
ホストのキータブを使用して認証します。
kinit -k
[root@idm_client]# kinit -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa idrange-findコマンドを使用して、新しいドメインのベース ID と ID 範囲のサイズの両方を表示します。たとえば、次のコマンドはad.example.comドメインの値を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の手順で、
ipabaseid属性およびipaidrangesize属性の値が必要です。使用可能な最高の ID を計算するには、次の式を使用します。
maximum_range = ipabaseid + ipaidrangesize - 1
maximum_range = ipabaseid + ipaidrangesize - 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順の値を使用すると、
ad.example.comドメインで使用可能な最大 ID は1918599999(1918400000 + 200000 - 1) です。/etc/samba/smb.confファイルを編集し、ドメインの ID マッピング設定を[global]セクションに追加します。idmap config AD : range = 1918400000 - 1918599999 idmap config AD : backend = sss
idmap config AD : range = 1918400000 - 1918599999 idmap config AD : backend = sssCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipabaseid属性の値を最小値として指定し、前の手順で計算された値を範囲の最大値として指定します。smbサービスおよびwinbindサービスを再起動します。systemctl restart smb winbind
[root@idm_client]# systemctl restart smb winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Kerberos 認証を使用して、Samba サーバー上の共有をリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.13. MacOS クライアント向けの Samba の設定 リンクのコピーリンクがクリップボードにコピーされました!
fruit 仮想ファイルシステム (VFS) の Samba モジュールは、Apple サーバーメッセージブロック (SMB) クライアントとの互換性を強化します。
1.15. プリントサーバーとしての Samba の設定 リンクのコピーリンクがクリップボードにコピーされました!
Samba をプリントサーバーとして設定すると、ネットワーク上のクライアントが Samba を使用して印刷できます。さらに、Windows クライアントは、(Samba サーバーが設定されている場合は) Samba サーバーからドライバーをダウンロードすることもできます。
このセクションの一部は、Samba Wiki に公開されているドキュメント Setting up Samba as a Print Server に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。
前提条件
Samba が、以下のいずれかのモードで設定されている。
1.15.1. Samba でのプリントサーバーのサポートの有効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、プリントサーバーサポートは Samba で有効になっていません。Samba をプリントサーバーとして使用するには、Samba を適切に設定する必要があります。
印刷ジョブとプリンター操作には、リモートプロシージャコール (RPC) が必要です。デフォルトでは、Samba は RPC を管理するためにオンデマンドで rpcd_spoolss サービスを開始します。最初の RPC 呼び出し中、または CUPS でプリンターリストを更新するときに、Samba は CUPS からプリンター情報を取得します。これには、プリンターごとに約 1 秒かかる場合があります。そのため、プリンターが 50 台を超える場合は、rpcd_spoolss 設定を調整してください。
前提条件
プリンターが CUPS サーバーで設定されている。
CUPS でプリンターを設定する方法は、プリントサーバーの CUPS Web コンソール (https://print_server_host_name:631/help) で提供されているドキュメントを参照してください。
手順
/etc/samba/smb.confファイルを編集します。[printers]セクションを追加して、Samba で印刷バックエンドを有効にします。[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要[printers]共有名はハードコーディングされており、変更はできません。CUPS サーバーが別のホストまたはポートで実行されている場合は、
[printers]セクションで設定を指定します。cups server = printserver.example.com:631
cups server = printserver.example.com:631Copy to Clipboard Copied! Toggle word wrap Toggle overflow 多数のプリンターがある場合は、待機秒数を CUPS に接続されているプリンターの数よりも大きい値に設定します。たとえば、100 台のプリンターがある場合は、
[global]セクションに次のように設定します。rpcd_spoolss:idle_seconds = 200
rpcd_spoolss:idle_seconds = 200Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定が環境内でスケーリングされない場合は、
[global]セクションでrpcd_spoolssワーカーの数も増やします。rpcd_spoolss:num_workers = 10
rpcd_spoolss:num_workers = 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
rpcd_spoolssは 5 つのワーカーを開始します。
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewall-cmdユーティリティーを使用して必要なポートを開き、ファイアウォール設定を再読み込みします。firewall-cmd --permanent --add-service=samba firewall-cmd --reload
# firewall-cmd --permanent --add-service=samba # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow smbサービスを再起動します。systemctl restart smb
# systemctl restart smbCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動すると、Samba は CUPS バックエンドに設定したすべてのプリンターを自動的に共有します。特定のプリンターのみを手動で共有する場合は、特定のプリンターの手動共有 を参照してください。
検証
印刷ジョブを送信します。たとえば、PDF ファイルを印刷するには、次のように入力します。
smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"
# smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.15.2. 特定のプリンターの手動共有 リンクのコピーリンクがクリップボードにコピーされました!
Samba をプリントサーバーとして設定している場合、Samba は、デフォルトで CUPS バックエンドで設定されたプリンターをすべて共有します。以下の手順では、特定のプリンターのみを共有する方法を説明します。
前提条件
- Samba がプリントサーバーとして設定されている。
手順
/etc/samba/smb.confファイルを編集します。[global]セクションで、以下の設定で自動プリンター共有を無効にします。load printers = no
load printers = noCopy to Clipboard Copied! Toggle word wrap Toggle overflow 共有するプリンターごとにセクションを追加します。たとえば、Samba で CUPS バックエンドで
exampleという名前のプリンターをExample-Printerとして共有するには、以下のセクションを追加します。[Example-Printer] path = /var/tmp/ printable = yes printer name = example[Example-Printer] path = /var/tmp/ printable = yes printer name = exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各プリンターに個別のスプールディレクトリーは必要ありません。
[printers]セクションに設定したのと同じ spool ディレクトリーを、プリンターのpathパラメーターに設定できます。
/etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.16. Samba プリントサーバーでの Windows クライアント用の自動プリンタードライバーダウンロードの設定 リンクのコピーリンクがクリップボードにコピーされました!
Windows クライアント用に Samba プリントサーバーを実行している場合は、ドライバーをアップロードし、プリンターを事前設定できます。ユーザーがプリンターに接続すると、Windows により、ドライバーが自動的にクライアントにダウンロードされ、インストールされます。ユーザーがインストールするのに、ローカル管理者の権限を必要としません。また、Windows は、トレイの数などの事前設定済みのドライバー設定を適用します。
このセクションの一部は、Samba Wiki で公開されているドキュメント Setting up Automatic Printer Driver Downloads for Windows Clients に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。
前提条件
- Samba がプリントサーバーとして設定されている。
1.16.1. プリンタードライバーに関する基本情報 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、プリンタードライバーに関する一般的な情報を説明します。
対応しているドライバーモデルのバージョン
Samba は、Windows 2000 以降および Windows Server 2000 以降でサポートされているプリンタードライバーのモデルバージョン 3 のみに対応します。Samba は、Windows 8 および Windows Server 2012 で導入されたドライバーモデルのバージョン 4 には対応していません。ただし、これ以降の Windows バージョンは、バージョン 3 のドライバーにも対応しています。
パッケージ対応ドライバー
Samba は、パッケージ対応ドライバーに対応していません。
アップロードするプリンタードライバーの準備
Samba プリントサーバーにドライバーをアップロードする場合は、以下を行います。
- ドライバーが圧縮形式で提供されている場合は、ドライバーをデプロイメントします。
一部のドライバーでは、Windows ホストにドライバーをローカルにインストールするセットアップアプリケーションを起動する必要があります。特定の状況では、インストーラーはセットアップの実行中にオペレーティングシステムの一時フォルダーに個別のファイルを抽出します。アップロードにドライバーファイルを使用するには、以下のコマンドを実行します。
- インストーラーを起動します。
- 一時フォルダーから新しい場所にファイルをコピーします。
- インストールをキャンセルします。
プリントサーバーへのアップロードをサポートするドライバーは、プリンターの製造元にお問い合わせください。
クライアントに 32 ビットおよび 64 ビットのプリンター用ドライバーを提供
32 ビットと 64 ビットの両方の Windows クライアントのプリンターにドライバーを提供するには、両方のアーキテクチャーに対して、同じ名前のドライバーをアップロードする必要があります。たとえば、32 ビットのドライバー Example PostScript および 64 ビットのドライバー Example PostScript (v1.0) をアップロードする場合は、その名前が一致しません。その結果、ドライバーのいずれかをプリンターに割り当てることしかできなくなり、両方のアーキテクチャーでそのドライバーが使用できなくなります。
1.16.2. ユーザーがドライバーをアップロードおよび事前設定できるようにする リンクのコピーリンクがクリップボードにコピーされました!
プリンタードライバーをアップロードおよび事前設定できるようにするには、ユーザーまたはグループに SePrintOperatorPrivilege 特権が付与されている必要があります。printadmin グループにユーザーを追加する必要があります。Red Hat Enterprise Linux に samba パッケージをインストールすると、このグループが自動的に作成されます。printadmin グループには、1000 未満で利用可能な一番小さい動的システムの GID が割り当てられます。
手順
たとえば、
SePrintOperatorPrivilege権限をprintadminグループに付与するには、以下のコマンドを実行します。net rpc rights grant "printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights grant "printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator" Enter DOMAIN\administrator's password: Successfully granted rights.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ドメイン環境では、
SePrintOperatorPrivilegeをドメイングループに付与します。これにより、ユーザーのグループメンバーシップを更新し、権限を集中的に管理できます。SePrintOperatorPrivilegeが付与されているユーザーとグループのリストを表示するには、以下を実行します。net rpc rights list privileges SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights list privileges SePrintOperatorPrivilege -U "DOMAIN\administrator" Enter administrator's password: SePrintOperatorPrivilege: BUILTIN\Administrators DOMAIN\printadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.16.4. クライアントが Samba プリントサーバーを信頼できるようにする GPO の作成 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティー上の理由から、最新の Windows オペレーティングシステムでは、クライアントが、信頼できないサーバーから、パッケージ対応ではないプリンタードライバーをダウンロードできないようにします。プリントサーバーが AD のメンバーである場合は、Samba サーバーを信頼するために、ドメインに Group Policy Object (GPO) を作成できます。
前提条件
- Samba プリントサーバーが、AD ドメインのメンバーである。
- GPO の作成に使用する Windows コンピューターに、RSAT (Windows Remote Server Administration Tools) がインストールされている。詳細は、Windows のドキュメントを参照してください。
手順
-
AD ドメインの
管理者ユーザーなど、グループポリシーの編集が可能なアカウントを使用して、Windows コンピューターにログインします。 -
Group Policy Management Consoleを開きます。 AD ドメインを右クリックし、
Create a GPO in this domain, and Link it hereを選択します。-
Legacy Printer Driver Policyなどの GPO の名前を入力して、OKをクリックします。新しい GPO がドメインエントリーの下に表示されます。 -
新たに作成した GPO を右クリックして
Editを選択し、Group Policy Management Editorを開きます。 → → → の順にクリックします。
ウィンドウの右側で、
Point and Print Restrictionをダブルクリックして、ポリシーを編集します。ポリシーを有効にし、以下のオプションを設定します。
-
Users can only point and print to these serversを選択し、このオプションの横にあるフィールドに、Samba プリントサーバーの完全修飾ドメイン名 (FQDN) を入力します。 Security Promptsの両チェックボックスで、Do not show warning or elevation promptを選択します。
-
- OK をクリックします。
Package Point and Print - Approved serversをダブルクリックして、ポリシーを編集します。-
ポリシーを有効にして、
Showボタンをクリックします。 Samba プリントサーバーの FQDN を入力します。
-
OKをクリックして、Show Contentsウィンドウとポリシーのプロパティーウィンドウの両方を閉じます。
-
ポリシーを有効にして、
-
Group Policy Management Editorを閉じます。 -
Group Policy Management Consoleを閉じます。
Windows ドメインメンバーがこのグループポリシーを適用すると、ユーザーがプリンターに接続する際に、プリンタードライバーが Samba サーバーから自動的にダウンロードされます。
1.16.5. ドライバーのアップロードおよびプリンターの事前設定 リンクのコピーリンクがクリップボードにコピーされました!
Windows クライアントで Print Management アプリケーションを使用してドライバーをアップロードし、Samba プリントサーバーでホストされるプリンターを事前設定します。詳細は、Windows のドキュメントを参照してください。
1.17. FIPS モードが有効なサーバーでの Samba の実行 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、FIPS モードが有効な状態で Samba を実行する制限の概要を説明します。また、Samba を実行している Red Hat Enterprise Linux ホストで FIPS モードを有効にする手順も提供します。
1.17.1. FIPS モードでの Samba の使用制限 リンクのコピーリンクがクリップボードにコピーされました!
以下の Samba モードと機能は、指定された条件下で FIPS モードで動作します。
- Samba は、AES 暗号化を使用する Kerberos 認証を使用する Active Directory (AD) または Red Hat Enterprise Linux Identity Management (IdM) 環境でのみ、ドメインメンバーとして使用できます。
- Active Directory ドメインメンバーのファイルサーバーとして Samba を使用する。ただし、クライアントは Kerberos を使用してサーバーに対して認証する必要があります。
FIPS のセキュリティーが強化されているため、FIPS モードが有効な場合は、以下の Samba 機能およびモードは機能しません。
- RC4 暗号がブロックされていることによる NT LAN Manager (NTLM) 認証
- サーバーメッセージブロックバージョン 1 (SMB1) プロトコル
- NTLM 認証を使用することによるスタンドアロンファイルサーバーモード
- NT4- スタイルのドメインコントローラー
- NT4- スタイルのドメインメンバーRed Hat は、IdM がバックグラウンドで使用するプライマリードメインコントローラー (PDC) 機能のサポートを継続することに留意してください。
- Samba サーバーに対するパスワード変更Active Directory ドメインコントローラーに対して Kerberos を使用してパスワードの変更のみを実行できます。
以下の機能は FIPS モードでテストされていないため、Red Hat ではサポートされていません。
- プリントサーバーとしての Samba の実行
1.17.2. FIPS モードでの Samba の使用 リンクのコピーリンクがクリップボードにコピーされました!
Samba を実行する RHEL ホストで FIPS モードを有効にすることができます。
前提条件
- Samba が Red Hat Enterprise Linux ホストに設定されている。
- Samba は、FIPS モードでサポートされるモードで実行する。
手順
RHEL で FIPS モードを有効にします。
fips-mode-setup --enable
# fips-mode-setup --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーを再起動します。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow testparmユーティリティーを使用して、設定を確認します。testparm -s
# testparm -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドがエラーや非互換性を表示する場合は、Samba が正常に機能するように修正してください。
1.18. Samba サーバーのパフォーマンスチューニング リンクのコピーリンクがクリップボードにコピーされました!
特定の状況で Samba のパフォーマンスを向上させることができる設定と、パフォーマンスに悪影響を与える可能性がある設定を説明します。
このセクションの一部は、Samba Wiki に公開されているドキュメント Performance Tuning に掲載されています。ライセンスは、CC BY 4.0 にあります。著者および貢献者は、Wiki ページの history タブを参照してください。
前提条件
- Samba が、ファイルサーバーまたはプリントサーバーとして設定されている。
1.18.1. SMB プロトコルバージョンの設定 リンクのコピーリンクがクリップボードにコピーされました!
新しい SMB バージョンごとに機能が追加され、プロトコルのパフォーマンスが向上します。最新の Windows および Windows Server オペレーティングシステムは、常に最新のプロトコルバージョンに対応しています。Samba がプロトコルの最新バージョンも使用している場合は、Samba に接続する Windows クライアントで、このパフォーマンス改善を活用できます。Samba では、server max protocol のデフォルト値が、対応している安定した SMB プロトコルの最新バージョンに設定されます。
常に最新の安定した SMB プロトコルバージョンを有効にするには、server max protocol パラメーターを設定しないでください。このパラメーターを手動で設定する場合は、最新のプロトコルバージョンを有効にするために、それぞれ新しいバージョンの SMB プロトコルで設定を変更する必要があります。
次の手順では、server max protocol パラメーターでデフォルト値を使用する方法を説明します。
手順
-
/etc/samba/smb.confファイルの[global]セクションから、server max protocolパラメーターを削除します。 Samba 設定を再読み込みします。
smbcontrol all reload-config
# smbcontrol all reload-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.18.3. パフォーマンスが低下する可能性のある設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Red Hat Enterprise Linux のカーネルは、ネットワークパフォーマンスが高くなるように調整されています。たとえば、カーネルはバッファーサイズに自動チューニングメカニズムを使用しています。/etc/samba/smb.conf ファイルに socket options パラメーターを設定すると、このカーネル設定が上書きされます。その結果、このパラメーターの設定により、ほとんどの場合は、Samba ネットワークのパフォーマンスが低下します。
カーネルの最適化された設定を使用するには、/etc/samba/smb.conf の [global] セクションから socket options パラメーターを削除します。
1.19. Samba がデフォルトの SMB バージョンよりも前のバージョンのクライアントと互換対応するような設定 リンクのコピーリンクがクリップボードにコピーされました!
Samba は、サポート対象の最小サーバーメッセージブロック (SMB) バージョンに妥当で安全なデフォルト値を使用します。ただし、以前の SMB バージョンを必要とするクライアントがある場合は、Samba を設定してサポートできます。
1.19.1. Samba サーバーで対応している最小 SMB プロトコルバージョンの設定 リンクのコピーリンクがクリップボードにコピーされました!
Samba では、/etc/samba/smb.conf ファイルの server min protocol パラメーターは、Samba サーバーが対応する SMB (server message block) プロトコルの最小バージョンを定義します。SMB プロトコルの最小バージョンを変更できます。
デフォルトでは、RHEL 8.2 以降の Samba では、SMB2 以降のプロトコルバージョンのみに対応します。Red Hat は、非推奨の SMB1 プロトコルを使用することは推奨されません。ただし、お使いの環境で SMB1 が必要な場合は、server min protocol パラメーターを手動で NT1 に設定して、SMB1 を再度有効にできます。
前提条件
- Samba がインストールされ、設定されている。
手順
/etc/samba/smb.confファイルを編集し、server min protocolパラメーターを追加して、そのサーバーが対応する最小 SMB プロトコルバージョンに設定できます。たとえば、最小の SMB プロトコルバージョンをSMB3に設定するには、以下を追加します。server min protocol = SMB3
server min protocol = SMB3Copy to Clipboard Copied! Toggle word wrap Toggle overflow smbサービスを再起動します。systemctl restart smb
# systemctl restart smbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.20. 頻繁に使用される Samba コマンドラインユーティリティー リンクのコピーリンクがクリップボードにコピーされました!
この章では、Samba サーバーで作業する場合によく使用されるコマンドを説明します。
1.20.1. net ads join コマンドおよび net rpc join コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
net ユーティリティーの join サブコマンドを使用すると、Samba を AD ドメインまたは NT4 ドメインに参加させることができます。ドメインに参加するには、/etc/samba/smb.conf ファイルを手動で作成し、必要に応じて PAM などの追加設定を更新する必要があります。
Red Hat は、realm ユーティリティーを使用してドメインに参加させることを推奨します。realm ユーティリティーは、関連するすべての設定ファイルを自動的に更新します。
手順
以下の設定で
/etc/samba/smb.confファイルを手動で作成します。AD ドメインメンバーの場合:
[global] workgroup = domain_name security = ads passdb backend = tdbsam realm = AD_REALM
[global] workgroup = domain_name security = ads passdb backend = tdbsam realm = AD_REALMCopy to Clipboard Copied! Toggle word wrap Toggle overflow NT4 ドメインメンバーの場合:
[global] workgroup = domain_name security = user passdb backend = tdbsam
[global] workgroup = domain_name security = user passdb backend = tdbsamCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
/etc/samba/smb.confファイルの[global]セクションに、*デフォルトドメインおよび参加するドメイン用の ID マッピング設定を追加します。 /etc/samba/smb.confファイルを検証します。testparm
# testparmCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドメイン管理者としてドメインに参加します。
AD ドメインに参加するには、以下のコマンドを実行します。
net ads join -U "DOMAIN\administrator"
# net ads join -U "DOMAIN\administrator"Copy to Clipboard Copied! Toggle word wrap Toggle overflow NT4 ドメインに参加するには、以下のコマンドを実行します。
net rpc join -U "DOMAIN\administrator"
# net rpc join -U "DOMAIN\administrator"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/nsswitch.confファイルのデータベースエントリーpasswdおよびgroupにwinbindソースを追加します。passwd: files winbind group: files winbind
passwd: files winbind group: files winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow winbindサービスを有効にして起動します。systemctl enable --now winbind
# systemctl enable --now winbindCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
authselectユーティリティーを使用して PAM を設定します。詳細は、システム上の
authselect(8)man ページを参照してください。オプション: AD 環境では、必要に応じて Kerberos クライアントを設定します。
詳細は、Kerberos クライアントのドキュメントを参照してください。
1.20.2. net rpc rights コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
Windows では、アカウントおよびグループに特権を割り当て、共有での ACL の設定やプリンタードライバーのアップロードなどの特別な操作を実行できます。Samba サーバーでは、net rpc rights コマンドを使用して権限を管理できます。
設定可能な権限のリスト表示
利用可能な特権とその所有者をすべて表示するには、net rpc rights list コマンドを使用します。以下に例を示します。
特権の付与
アカウントまたはグループへの特権を付与するには、net rpc rights grant コマンドを使用します。
たとえば、SePrintOperatorPrivilege 権限を、DOMAIN\printadmin グループに付与します。
net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully granted rights.
特権の取り消し
アカウントまたはグループから特権を取り消すには、net rpc rights revoke コマンドを使用します。
たとえば、DOMAIN\printadmin グループから SePrintOperatorPrivilege 権限を取り消すには、以下のコマンドを実行します。
net rpc rights remoke "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights remoke "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully revoked rights.
1.20.4. net user コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
net user コマンドを使用すると、AD DC または NT4 PDC で以下の操作を実行できます。
- すべてのユーザーアカウントのリストを表示
- ユーザーの追加
- ユーザーの削除
AD ドメイン用の ads、NT4 ドメイン用の rpc などの接続方法の指定は、ドメインユーザーアカウントをリスト表示する場合にのみ必要です。その他のユーザー関連のサブコマンドは、接続メソッドを自動検出できます。
-U user_name パラメーターをコマンドに渡して、要求されたアクションを実行できるユーザーを指定します。
ドメインユーザーアカウントのリスト表示
AD ドメイン内のユーザーをリスト表示するには、以下を実行します。
net ads user -U "DOMAIN\administrator"
# net ads user -U "DOMAIN\administrator"
NT4 ドメインのユーザーをリスト表示するには、以下を実行します。
net rpc user -U "DOMAIN\administrator"
# net rpc user -U "DOMAIN\administrator"
ユーザーアカウントのドメインへの追加
Samba ドメインメンバーの場合は、net user add コマンドを使用して、ユーザーアカウントをドメインに追加できます。
たとえば、user アカウントをドメインに追加します。
以下のアカウントを追加します。
net user add user password -U "DOMAIN\administrator"
# net user add user password -U "DOMAIN\administrator" User user addedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: リモートプロシージャコール (RPC) シェルを使用して、AD DC または NT4 PDC でアカウントを有効にします。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ドメインからのユーザーアカウントの削除
Samba ドメインメンバーの場合は、net user delete コマンドを使用して、ドメインからユーザーアカウントを削除できます。
たとえば、ドメインから user アカウントを削除するには、以下のコマンドを実行します。
net user delete user -U "DOMAIN\administrator"
# net user delete user -U "DOMAIN\administrator"
User user deleted
1.20.5. rpcclient ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
rpcclient ユーティリティーを使用すると、ローカルまたはリモートの SMB サーバーでクライアント側の Microsoft Remote Procedure Call (MS-RPC) 機能を手動で実行できます。ただし、ほとんどの機能は、Samba が提供する個別のユーティリティーに統合されています。rpcclient は、MS-PRC 関数のテストにのみ使用します。
前提条件
-
samba-clientパッケージがインストールされている。
例
たとえば、rpcclient ユーティリティーを使用して以下を行うことができます。
プリンターのスプールサブシステム (SPOOLSS) を管理します。
例1.7 プリンターへのドライバーの割り当て
rpcclient server_name -U "DOMAIN\administrator" -c 'setdriver "printer_name" "driver_name"'
# rpcclient server_name -U "DOMAIN\administrator" -c 'setdriver "printer_name" "driver_name"' Enter DOMAIN\administrators password: Successfully set printer_name to driver driver_name.Copy to Clipboard Copied! Toggle word wrap Toggle overflow SMB サーバーに関する情報を取得します。
例1.8 すべてのファイル共有および共有プリンターのリスト表示
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Security Account Manager Remote (SAMR) プロトコルを使用して操作を実行します。
例1.9 SMB サーバー上のユーザーのリスト表示
rpcclient server_name -U "DOMAIN\administrator" -c 'enumdomusers'
# rpcclient server_name -U "DOMAIN\administrator" -c 'enumdomusers' Enter DOMAIN\administrators password: user:[user1] rid:[0x3e8] user:[user2] rid:[0x3e9]Copy to Clipboard Copied! Toggle word wrap Toggle overflow スタンドアロンサーバーまたはドメインメンバーに対してコマンドを実行すると、ローカルデータベースのユーザーのリストが表示されます。AD DC または NT4 PDC に対してコマンドを実行すると、ドメインユーザーのリストが表示されます。
1.20.6. samba-regedit アプリケーションの使用 リンクのコピーリンクがクリップボードにコピーされました!
プリンター設定などの特定の設定は、Samba サーバーのレジストリーに保存されます。ncurses ベースの samba-regedit アプリケーションを使用して、Samba サーバーのレジストリーを編集できます。
前提条件
-
samba-clientパッケージがインストールされている。
手順
アプリケーションを起動するには、次のコマンドを入力します。
samba-regedit
# samba-regedit
次のキーを使用します。
- カーソルを上下に動かして、レジストリーツリーと値の間を移動します。
- Enter - キーを開くか、値を編集します。
-
Tab -
KeyペインとValueペインを切り替えます。 - Ctrl+C - アプリケーションを閉じます。
1.20.7. smbcontrol ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbcontrol ユーティリティーを使用すると、smbd、nmbd、winbindd、またはこのすべてのサービスにコマンドメッセージを送信できます。この制御メッセージは、設定の再読み込みなどのサービスを指示します。
前提条件
-
samba-common-toolsパッケージがインストールされている。
手順
-
reload-configメッセージタイプをall宛に送信して、smbd、nmbd、winbinddサービスの設定をリロードします。
smbcontrol all reload-config
# smbcontrol all reload-config
1.20.8. smbpasswd ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbpasswd ユーティリティーは、ローカルの Samba データベースでユーザーアカウントおよびパスワードを管理します。
前提条件
-
samba-common-toolsパッケージがインストールされている。
手順
ユーザーとしてコマンドを実行すると、
smbpasswdはコマンドを実行するユーザーの Samba パスワードを変更します。以下に例を示します。smbpasswd
[user@server ~]$ smbpasswd New SMB password: password Retype new SMB password: passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow rootでsmbpasswdを実行すると、たとえば以下のようにユーティリティーを使用できます。新しいユーザーを作成します。
smbpasswd -a user_name
[root@server ~]# smbpasswd -a user_name New SMB password: password Retype new SMB password: password Added user user_name.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Samba データベースにユーザーを追加する前に、ローカルのオペレーティングシステムにアカウントを作成する必要があります。基本的なシステム設定の設定の コマンドラインでの新規ユーザーの追加 セクションを参照してください。
Samba ユーザーを有効にします。
smbpasswd -e user_name
[root@server ~]# smbpasswd -e user_name Enabled user user_name.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Samba ユーザーを無効にします。
smbpasswd -x user_name
[root@server ~]# smbpasswd -x user_name Disabled user user_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーを削除します。
smbpasswd -x user_name
[root@server ~]# smbpasswd -x user_name Deleted user user_name.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.20.9. smbstatus ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbstatus ユーティリティーは以下を報告します。
-
各
smbdデーモンの PID ごとの接続を Samba サーバーに接続します。このレポートには、ユーザー名、プライマリーグループ、SMB プロトコルのバージョン、暗号、および署名の情報が含まれます。 -
Samba 共有ごとの接続このレポートには、
smbdデーモンの PID、接続しているマシンの IP、接続が確立された時点のタイムスタンプ、暗号、および署名情報が含まれます。 - ロックされたファイルのリスト。レポートエントリーには、日和見ロック (oplock) タイプなどの詳細が含まれます。
前提条件
-
sambaパッケージがインストールされている。 -
smbdサービスが実行している。
手順
1.20.10. smbtar ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbtar ユーティリティーは、SMB 共有またはそのサブディレクトリーのコンテンツのバックアップを作成し、そのコンテンツを tar アーカイブに保存します。または、コンテンツをテープデバイスに書き込むこともできます。
前提条件
-
samba-clientパッケージがインストールされている。
手順
以下のコマンドを使用して、
//server/example/共有上のdemoディレクトリーのコンテンツをバックアップして、/root/example.tarアーカイブにコンテンツを保存するには、以下を実行します。smbtar -s server -x example -u user_name -p password -t /root/example.tar
# smbtar -s server -x example -u user_name -p password -t /root/example.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.20.11. wbinfo ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
wbinfo ユーティリティーは、winbindd サービスが作成および使用する情報をクエリーし、返します。
前提条件
-
samba-winbind-clientsパッケージがインストールされている。
手順
たとえば、以下のように、wbinfo を使用できます。
ドメインユーザーのリストを表示します。
wbinfo -u
# wbinfo -u AD\administrator AD\guest ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow ドメイングループのリストを表示します。
wbinfo -g
# wbinfo -g AD\domain computers AD\domain admins AD\domain users ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーの SID を表示します。
wbinfo --name-to-sid="AD\administrator"
# wbinfo --name-to-sid="AD\administrator" S-1-5-21-1762709870-351891212-3141221786-500 SID_USER (1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインおよび信頼に関する情報を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 NFS サーバーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ネットワークファイルシステム (NFS) プロトコルを使用すると、リモートユーザーはネットワーク経由で共有ディレクトリーをマウントし、ローカルにマウントされたディレクトリーと同じように使用できます。また、リソースを、ネットワークの集中化サーバーに統合できるようになります。
2.1. NFSv4 のマイナーバージョンの主な機能 リンクのコピーリンクがクリップボードにコピーされました!
NFSv4 の各マイナーバージョンでは、パフォーマンスとセキュリティーの向上を目的とした機能強化が導入されます。この強化を利用して NFSv4 の可能性を最大限に活用すれば、ネットワーク全体で効率的かつ信頼性の高いファイル共有を実現できます。
NFSv4.2 の主な機能
- サーバー側コピー
- サーバー側コピーは、ネットワーク経由でデータを転送せずにサーバー上のファイルをコピーする NFS サーバーの機能です。
- スパースファイル
- ファイルに 1 つ以上の空きスペース、つまりギャップを持たせることができます。ギャップとは、ゼロのみで構成される未割り当てまたは未初期化データブロックです。これにより、アプリケーションがスパースファイル内のホールの位置を計画できるようになります。
- 領域の予約
- クライアントが、データを書き込む前にストレージサーバー上の領域を予約または確保できます。これにより、サーバーの領域不足が防止されます。
- ラベル付き NFS
- データアクセス権を強制し、NFS ファイルシステム上の個々のファイルに対して、クライアントとサーバーとの間の SELinux ラベルを有効にします。
- レイアウトの機能強化
- Parallel NFS (pNFS) サーバーがより優れたパフォーマンス統計情報を収集できるようにする機能を提供します。
NFSv4.1 の主な機能
- pNFS のクライアント側サポート
- クラスター化されたサーバーへの高速 I/O のサポートにより、複数のマシンへのデータ保存、データへの直接アクセス、メタデータの更新の同期が可能になります。
- セッション
- セッションは、クライアントに属する接続に関連するサーバーの状態を維持します。この種類のセッションは、各リモートプロシージャーコール (RPC) 操作の接続の確立と終了に関連するオーバーヘッドを削減し、パフォーマンスと効率を向上させます。
NFSv4.0 の主な機能
- RPC とセキュリティー
-
RPCSEC_GSSフレームワークにより、RPC のセキュリティーが強化されます。NFSv4 プロトコルで、インバンドセキュリティーネゴシエーション用の新しい操作が導入されました。これにより、クライアントがファイルシステムリソースにセキュアにアクセスするためのサーバーポリシーをクエリーできるようになります。 - プロシージャーと操作の構造
-
NFS 4.0 で、
COMPOUNDプロシージャーが導入されました。これにより、クライアントが複数の操作を 1 つの要求にマージして RPC を削減できるようになりました。 - ファイルシステムモデル
NFS 4.0 は、階層型ファイルシステムモデルを保持し、ファイルをバイトストリームとして扱い、国際化のために名前を UTF-8 でエンコードします。
ファイルハンドルの種類
揮発性のファイルハンドルにより、サーバーがファイルシステムの変更に適応できます。また、クライアントが、永続的なファイルハンドルを必要とせずに、必要に応じて適応できます。
属性タイプ
ファイル属性構造には、必須属性、推奨属性、および名前付き属性が含まれています。各属性は異なる目的を果たします。NFSv3 から派生した必須属性は、ファイルタイプを区別するために必要です。一方、ACL などの推奨属性は、アクセス制御を強化します。
マルチサーバー名前空間
名前空間は、複数のサーバー全体を対象に、属性に基づいてファイルシステム転送を簡素化します。また、参照、冗長性、シームレスなサーバー移行をサポートします。
- OPEN および CLOSE 操作
- これらの操作により、ファイルの検索、作成、セマンティック共有を 1 カ所で組み合わせて、ファイルアクセス管理を効率化できます。
- ファイルロック
- ファイルロックがプロトコルに含まれているため、RPC コールバックが不要になります。ファイルロックの状態は、リースベースのモデルに基づいてサーバーによって管理されます。リースの更新に失敗すると、サーバーによって状態が解放されることがあります。
- クライアントのキャッシュと委譲
- キャッシュは以前のバージョンと似ています。属性とディレクトリーのキャッシュのタイムアウトが、クライアントによって決定されます。NFS 4.0 の委譲により、サーバーがクライアントに特定の役割を割り当てることができます。これにより、特定のファイル共有セマンティクスが確保され、サーバーとの直接のやり取りなしでローカルファイル操作が可能になります。
2.2. AUTH_SYS 認証方式 リンクのコピーリンクがクリップボードにコピーされました!
AUTH_SYS 方式 (AUTH_UNIX とも呼ばれます) は、クライアント認証メカニズムです。AUTH_SYS を使用すると、クライアントがファイルにアクセスするときに、ユーザーのアイデンティティーと権限を確認するために、ユーザーのユーザー ID (UID) とグループ ID (GID) をサーバーに送信します。AUTH_SYS は、クライアントが提供する情報に依存するため、誤って設定された場合に不正アクセスを受ける可能性があり、セキュリティーが低いと考えられています。
マッピングメカニズムにより、UID と GID の割り当てがシステム間で異なる場合でも、NFS クライアントが適切な権限でサーバー上のファイルにアクセスできます。UID と GID は、次のメカニズムによって NFS クライアントとサーバーの間でマッピングされます。
- 直接マッピング
UID と GID は、NFS サーバーとクライアントによってローカルシステムとリモートシステム間で直接マッピングされます。これを行うには、NFS ファイル共有に参加しているすべてのシステム間で一貫した UID と GID の割り当てが必要です。たとえば、クライアント上の UID 1000 のユーザーは、サーバー上の UID 1000 のユーザーがアクセスできる共有上のファイルにのみアクセスできます。
管理者は、NFS 環境での ID 管理を簡素化するために、多くの場合、LDAP やネットワーク情報サービス (NIS) などの集中型サービスを利用して、複数のシステムにわたる UID と GID のマッピングを管理します。
- ユーザー ID とグループ ID のマッピング
-
NFS サーバーおよびクライアントは、
idmapdサービスを使用して、異なるシステム間で UID と GID を変換し、一貫した ID 識別と権限の割り当てを実現できます。
2.3. AUTH_GSS 認証方式 リンクのコピーリンクがクリップボードにコピーされました!
Kerberos は、セキュアでないネットワーク上でクライアントとサーバーのセキュアな認証を可能にするネットワーク認証プロトコルです。対称鍵暗号を使用し、ユーザーとサービスを認証するために、信頼できる Key Distribution Center (KDC) を必要とします。
AUTH_SYS とは異なり、RPCSEC_GSS Kerberos メカニズムでは、ファイルにアクセスしているユーザーを正しく表すために、サーバーがクライアントに依存することがありません。代わりに、暗号化を使用してサーバーに対してユーザーを認証します。これにより、悪意のあるクライアントがユーザーの Kerberos 認証情報を持たないユーザーになりすますことを防ぎます。
/etc/exports ファイルの sec オプションで、共有が提供する Kerberos セキュリティー方式を 1 つ以上定義します。クライアントはこれらの方法のいずれかを使用して共有をマウントできます。sec オプションは次の値をサポートします。
-
sys: 暗号化保護なし (デフォルト) -
krb5: 認証のみ -
krb5i: 認証と整合性保護 -
krb5p: 認証、整合性チェック、およびトラフィック暗号化
方式が提供する暗号化機能が多いほど、パフォーマンスが低下することに注意してください。
2.4. エクスポートされたファイルシステムのファイル権限 リンクのコピーリンクがクリップボードにコピーされました!
エクスポートされたファイルシステムのファイル権限によって、NFS 経由でファイルとディレクトリーにアクセスするクライアントのアクセス権が決まります。
NFS ファイルシステムがリモートホストによってマウントされると、各共有ファイルに対する保護がファイルシステムの権限だけになります。同じユーザー ID (UID) の値を共有する 2 つのユーザーが、異なるクライアントシステムに同じ NFS ファイルシステムをマウントした場合、そのユーザーはお互いのファイルを変更できます。
NFS は、クライアント上の root ユーザーをサーバー上の root ユーザーと同等のものとして扱います。ただし、NFS サーバーは、NFS 共有にアクセスするときに、デフォルトで root を nobody アカウントにマップします。この動作は root_squash オプションにより制御します。
2.5. NFS サーバーに必要なサービス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) は、NFS ファイル共有を提供するのに、カーネルモジュールとユーザー空間プロセスの組み合わせを使用します。
| Service name | NFS バージョン | 説明 |
|---|---|---|
|
| 3、4 | 共有 NFS ファイルシステムに対する要求を処理する NFS カーネルモジュール。 |
|
| 3 |
このプロセスは、ローカルのリモートプロシージャーコール (RPC) サービスからのポート予約を受け入れ、それを使用可能にするかアドバタイズして、対応するリモート RPC サービスがポート予約にアクセスできるようにします。 |
|
| 3、4 |
このサービスは NFSv3 クライアントからの 要求されている NFS 共有が現在 NFS サーバーによりエクスポートされているか、またその共有へのクライアントのアクセスが許可されているかを確認します。 |
|
| 3、4 | このプロセスは、サーバーが定義する明示的な NFS バージョンとプロトコルをアドバタイズします。NFS クライアントが接続するたびにサーバースレッドを提供するなど、NFS クライアントの動的な要求に対応するために、カーネルと連携して動作します。
|
|
| 3 | このカーネルモジュールは、Network Lock Manager (NLM) プロトコルを実装します。これにより、クライアントがサーバー上のファイルをロックできるようになります。RHEL は、NFS サーバーの実行時にこのモジュールを自動的にロードします。 |
|
| 3、4 | このサービスは、リモートユーザーのユーザークォータ情報を提供します。 |
|
| 4 | このプロセスは、NFSv4 名 (`user@domain` 形式の文字列) とローカルのユーザー ID およびグループ ID をマッピングする NFSv4 クライアントおよびサーバーのアップコールを提供します。 |
|
| 3、4 |
このサービスは、 |
|
| 4 | このサービスは、NFSv4 クライアント追跡デーモンを提供します。このデーモンは、ネットワークパーティションとサーバーの再起動中に他のクライアントが競合するロックを取得したときに、サーバーがロックの回収を許可するのを防止します。 |
|
| 3 | このサービスは、ローカルホストが再起動したときに他の NFSv3 クライアントに通知し、リモート NFSv3 ホストが再起動したときにカーネルに通知します。 |
2.6. /etc/exports 設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
/etc/exports ファイルは、サーバーがエクスポートするディレクトリーを制御します。各行に、エクスポートポイント、ディレクトリーのマウントが許可されているクライアントの空白区切りのリスト、および各クライアントのオプションが含まれています。
<directory> <host_or_network_1>(<options_1>) <host_or_network_n>(<options_n>)...
<directory> <host_or_network_1>(<options_1>) <host_or_network_n>(<options_n>)...
以下は /etc/exports のエントリーの各部分です。
- <export>
- エクスポートするディレクトリー。
- <host_or_network>
- エクスポートを共有するホストまたはネットワーク。たとえば、ホスト名、IP アドレス、または IP ネットワークを指定できます。
- <options>
- ホストまたはネットワークのオプション。
クライアントとオプションの間にスペースを追加すると、動作が変わります。たとえば、次の行はそれぞれ意味が異なります。
/projects client.example.com(rw) /projects client.example.com (rw)
/projects client.example.com(rw)
/projects client.example.com (rw)
最初の行では、サーバーは client.example.com にのみ、/projects ディレクトリーを読み取り/書き込みモードでマウントすることを許可します。他のホストは共有をマウントできません。一方、2 番目の行では、client.example.com と (rw) の間にスペースがあるため、サーバーはディレクトリーを読み取り専用モード (デフォルト設定) で client.example.com にエクスポートします。他のすべてのホストは、読み取り/書き込みモードで共有をマウントできます。
NFS サーバーは、エクスポートされた各ディレクトリーに対して次のデフォルト設定を使用します。
| デフォルト設定 | 説明 |
|---|---|
|
| ディレクトリーを読み取り専用モードでエクスポートします。 |
|
| NFS サーバーは、以前の要求で発生した変更がディスクに書き込まれるまで、要求に応答しません。 |
|
| 別の書き込み要求が保留中であると疑われる場合、サーバーはディスクへの書き込みを遅延します。 |
|
|
クライアントの |
2.7. NFSv4 専用サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ネットワーク内に NFSv3 クライアントが存在しない場合は、NFSv4 またはその特定のマイナープロトコルバージョンのみをサポートするように NFS サーバーを設定できます。サーバー上で NFSv4 のみを使用すると、ネットワークに開放されるポートの数が減ります。
手順
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/nfs.confファイルを編集し、次の変更を加えます。NFSv3 を無効にするには、
[nfsd]セクションのvers3パラメーターを無効にします。[nfsd] vers3=n
[nfsd] vers3=nCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 特定の NFSv4 マイナーバージョンのみが必要な場合は、すべての
vers4.<minor_version>パラメーターのコメントを解除し、各パラメーターを適切に設定します。次に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定では、サーバーは NFS バージョン 4.2 のみを提供します。
重要特定の NFSv4 マイナーバージョンのみが必要な場合は、そのマイナーバージョンのパラメーターのみを設定してください。予期しないマイナーバージョンのアクティブ化や非アクティブ化を回避するために、
vers4パラメーターのコメントは解除しないでください。vers4パラメーターは、デフォルトですべての NFSv4 マイナーバージョンを有効または無効にします。ただし、vers4を他のversパラメーターと組み合わせて設定すると、この動作は変わります。
NFSv3 関連のすべてのサービスを無効にします。
systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket
# systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFSv3 マウント要求をリッスンしないように
rpc.mountdデーモンを設定します。次の内容を含む/etc/systemd/system/nfs-mountd.service.d/v4only.confファイルを作成します。[Service] ExecStart= ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udp
[Service] ExecStart= ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udpCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemdマネージャーの設定を再ロードし、nfs-mountdサービスを再起動します。systemctl daemon-reload systemctl restart nfs-mountd
# systemctl daemon-reload # systemctl restart nfs-mountdCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 共有するディレクトリーを作成します。以下に例を示します。
mkdir -p /nfs/projects/
# mkdir -p /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のディレクトリーを共有する場合は、このステップをスキップしてください。
/nfs/projects/ディレクトリーに必要な権限を設定します。chmod 2770 /nfs/projects/ chgrp users /nfs/projects/
# chmod 2770 /nfs/projects/ # chgrp users /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドは、
/nfs/projects/ディレクトリーのusersグループの書き込み権限を設定し、このディレクトリーに作成される新しいエントリーに対して同じグループを自動的に設定します。共有する各ディレクトリーについて、
/etc/exportsファイルにエクスポートポイントを追加します。/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)
/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)Copy to Clipboard Copied! Toggle word wrap Toggle overflow このエントリーは、
/nfs/projects/ディレクトリーを共有し、192.0.2.0/24および2001:db8::/32サブネット内のクライアントに読み取りおよび書き込みアクセスを許可します。firewalldで適切なポートを開きます。firewall-cmd --permanent --add-service nfs firewall-cmd --reload
# firewall-cmd --permanent --add-service nfs # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを有効にして起動します。
systemctl enable --now nfs-server
# systemctl enable --now nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
サーバー上で、設定した NFS バージョンのみがサーバーから提供されていることを確認します。
cat /proc/fs/nfsd/versions -3 +4 -4.0 -4.1 +4.2
# cat /proc/fs/nfsd/versions -3 +4 -4.0 -4.1 +4.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントで次の手順を実行します。
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートされた NFS 共有をマウントします。
mount server.example.com:/nfs/projects/ /mnt/
# mount server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow usersグループのメンバーであるユーザーとして、/mnt/にファイルを作成します。touch /mnt/file
# touch /mnt/fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルが作成されたことを確認するためにディレクトリーの内容をリスト表示します。
ls -l /mnt/
# ls -l /mnt/ total 0 -rw-r--r--. 1 demo users 0 Jan 16 14:18 fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. オプションの NFSv4 サポートを備えた NFSv3 サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
NFSv3 クライアントを現在も使用しているネットワークでは、NFSv3 プロトコルを使用して共有を提供するようにサーバーを設定します。ネットワーク内に新しいクライアントもある場合は、さらに NFSv4 を有効にできます。デフォルトでは、Red Hat Enterprise Linux の NFS クライアントは、サーバーが提供する最新の NFS バージョンを使用します。
手順
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デフォルトでは、NFSv3 と NFSv4 が有効になっています。NFSv4 が必要ない場合、または特定のマイナーバージョンのみが必要な場合は、すべての
vers4.<minor_version>パラメーターのコメントを解除し、各パラメーターを適切に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定では、サーバーは NFS バージョン 3 と 4.2 のみを提供します。
重要特定の NFSv4 マイナーバージョンのみが必要な場合は、そのマイナーバージョンのパラメーターのみを設定してください。予期しないマイナーバージョンのアクティブ化や非アクティブ化を回避するために、
vers4パラメーターのコメントは解除しないでください。vers4パラメーターは、デフォルトですべての NFSv4 マイナーバージョンを有効または無効にします。ただし、vers4を他のversパラメーターと組み合わせて設定すると、この動作は変わります。デフォルトでは、NFSv3 の RPC サービスはランダムなポートを使用します。ファイアウォール設定を有効にするには、
/etc/nfs.confファイルで固定ポート番号を設定します。[lockd]セクションで、nlockmgrRPC サービスの固定ポート番号を設定します。以下に例を示します。[lockd] port=5555
[lockd] port=5555Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定により、サービスが UDP プロトコルと TCP プロトコルの両方にこのポート番号を自動的に使用するようになります。
[statd]セクションで、rpc.statdサービスの固定ポート番号を設定します。以下に例を示します。[statd] port=6666
[statd] port=6666Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定により、サービスが UDP プロトコルと TCP プロトコルの両方にこのポート番号を自動的に使用するようになります。
オプション: 共有するディレクトリーを作成します。以下に例を示します。
mkdir -p /nfs/projects/
# mkdir -p /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のディレクトリーを共有する場合は、このステップをスキップしてください。
/nfs/projects/ディレクトリーに必要な権限を設定します。chmod 2770 /nfs/projects/ chgrp users /nfs/projects/
# chmod 2770 /nfs/projects/ # chgrp users /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドは、
/nfs/projects/ディレクトリーのusersグループの書き込み権限を設定し、このディレクトリーに作成される新しいエントリーに対して同じグループを自動的に設定します。共有する各ディレクトリーについて、
/etc/exportsファイルにエクスポートポイントを追加します。/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)
/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)Copy to Clipboard Copied! Toggle word wrap Toggle overflow このエントリーは、
/nfs/projects/ディレクトリーを共有し、192.0.2.0/24および2001:db8::/32サブネット内のクライアントに読み取りおよび書き込みアクセスを許可します。firewalldで適切なポートを開きます。firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd} firewall-cmd --permanent --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp} firewall-cmd --reload# firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd} # firewall-cmd --permanent --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp} # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを有効にして起動します。
systemctl enable --now rpc-statd nfs-server
# systemctl enable --now rpc-statd nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
サーバー上で、設定した NFS バージョンのみがサーバーから提供されていることを確認します。
cat /proc/fs/nfsd/versions +3 +4 -4.0 -4.1 +4.2
# cat /proc/fs/nfsd/versions +3 +4 -4.0 -4.1 +4.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントで次の手順を実行します。
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートされた NFS 共有をマウントします。
mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/
# mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定した NFS バージョンを使用して共有がマウントされたことを確認します。
mount | grep "/mnt"
# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (rw,relatime,vers=3,...Copy to Clipboard Copied! Toggle word wrap Toggle overflow usersグループのメンバーであるユーザーとして、/mnt/にファイルを作成します。touch /mnt/file
# touch /mnt/fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルが作成されたことを確認するためにディレクトリーの内容をリスト表示します。
ls -l /mnt/
# ls -l /mnt/ total 0 -rw-r--r--. 1 demo users 0 Jan 16 14:18 fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. NFS サーバーでクォータサポートを有効にする リンクのコピーリンクがクリップボードにコピーされました!
ユーザーまたはグループが保存できるデータの量を制限する場合は、ファイルシステムにクォータを設定できます。クォータは、NFS サーバー上の rpc-rquotad サービスにより、NFS クライアント上のユーザーにも適用されます。
手順
エクスポートするディレクトリーでクォータが有効になっていることを確認します。
ext ファイルシステムの場合は、次のように入力します。
quotaon -p /nfs/projects/
# quotaon -p /nfs/projects/ group quota on /nfs/projects (/dev/sdb1) is on user quota on /nfs/projects (/dev/sdb1) is on project quota on /nfs/projects (/dev/sdb1) is offCopy to Clipboard Copied! Toggle word wrap Toggle overflow XFS ファイルシステムの場合は、次のように入力します。
findmnt /nfs/projects
# findmnt /nfs/projects TARGET SOURCE FSTYPE OPTIONS /nfs/projects /dev/sdb1 xfs rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,usrquota,grpquotaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
quota-rpcパッケージをインストールします。dnf install quota-rpc
# dnf install quota-rpcCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デフォルトでは、クォータ RPC サービスはポート 875 で実行されます。別のポートでサービスを実行する場合は、
/etc/sysconfig/rpc-rquotadファイルのRPCRQUOTADOPTS変数に-p <port_number>を追加します。RPCRQUOTADOPTS="-p __<port_number>__"
RPCRQUOTADOPTS="-p __<port_number>__"Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デフォルトでは、リモートホストはクォータの読み取りのみが可能です。クライアントにクォータの設定を許可するには、
/etc/sysconfig/rpc-rquotadファイルのRPCRQUOTADOPTS変数に-Sオプションを追加します。RPCRQUOTADOPTS="-S"
RPCRQUOTADOPTS="-S"Copy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldでポートを開きます。firewall-cmd --permanent --add-port=875/udp firewall-cmd --reload
# firewall-cmd --permanent --add-port=875/udp # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow rpc-rquotadサービスを有効にして起動します。systemctl enable --now rpc-rquotad
# systemctl enable --now rpc-rquotadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クライアントで以下を実行します。
エクスポートされた共有をマウントします。
mount server.example.com:/nfs/projects/ /mnt/
# mount server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow クォータを表示します。コマンドは、エクスポートされたディレクトリーのファイルシステムによって異なります。以下に例を示します。
マウントした全 ext ファイルシステムの特定ユーザーのクォータを表示するには、次のように入力します。
quota -u <user_name>
# quota -u <user_name> Disk quotas for user demo (uid 1000): Filesystem space quota limit grace files quota limit grace server.example.com:/nfs/projects 0K 100M 200M 0 0 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow XFS ファイルシステムのユーザーおよびグループのクォータを表示するには、次のように入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10. NFS サーバーで NFS over RDMA を有効にする リンクのコピーリンクがクリップボードにコピーされました!
Remote Direct Memory Access (RDMA) は、クライアントシステムがストレージサーバーのメモリーから自身のメモリーにデータを直接転送できるようにするプロトコルです。これにより、ストレージのスループットが向上し、サーバーとクライアント間のデータ転送の遅延が減少し、両側の CPU 負荷が軽減されます。NFS サーバーとクライアントの両方が RDMA 経由で接続されている場合、クライアントは NFS over RDMA (NFSoRDMA) を使用してエクスポートされたディレクトリーをマウントできます。
前提条件
- NFS サービスが実行および設定されている。
- InfiniBand または RDMA over Converged Ethernet (RoCE) デバイスがサーバーにインストールされている。
- サーバーに IP over InfiniBand (IPoIB) が設定され、InfiniBand デバイスに IP アドレスが割り当てられている。
手順
rdma-coreパッケージをインストールします。dnf install rdma-core
# dnf install rdma-coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow パッケージがすでにインストールされている場合は、
/etc/rdma/modules/rdma.confファイル内のxprtrdmaおよびsvcrdmaモジュールのコメントが解除されていることを確認します。NFS over RDMA client support NFS over RDMA server support
# NFS over RDMA client support xprtrdma # NFS over RDMA server support svcrdmaCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デフォルトでは、NFS over RDMA はポート 20049 を使用します。別のポートを使用する場合は、
/etc/nfs.confファイルの[nfsd]セクションでrdma-port設定を指定します。rdma-port=<port>
rdma-port=<port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldで NFSoRDMA ポートを開きます。firewall-cmd --permanent --add-port={20049/tcp,20049/udp} firewall-cmd --reload# firewall-cmd --permanent --add-port={20049/tcp,20049/udp} # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 20049 以外のポートを設定する場合は、ポート番号を変更します。
nfs-serverサービスを再起動します。systemctl restart nfs-server
# systemctl restart nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
InfiniBand ハードウェアを搭載したクライアントで、次の手順を実行します。
以下のパッケージをインストールします。
dnf install nfs-utils rdma-core
# dnf install nfs-utils rdma-coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートされた NFS 共有を RDMA 経由でマウントします。
mount -o rdma server.example.com:/nfs/projects/ /mnt/
# mount -o rdma server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト (20049) 以外のポート番号を設定する場合は、コマンドに
port=<port_number>を渡します。mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/
# mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow rdmaオプションを使用して共有がマウントされたことを確認します。mount | grep "/mnt"
# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (...,proto=rdma,...)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11. Red Hat Enterprise Linux Identity Management ドメインで Kerberos を使用する NFS サーバーをセットアップする リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux Identity Management (IdM) を使用すると、NFS サーバーを IdM ドメインに参加させることができます。これにより、ユーザーとグループを一元管理し、認証、整合性保護、トラフィック暗号化に Kerberos を使用できるようになります。
前提条件
- NFS サーバーが Red Hat Enterprise Linux Identity Management (IdM) ドメインに 登録されている。
- NFS サーバーが実行および設定されている。
手順
IdM 管理者として Kerberos チケットを取得します。
kinit admin
# kinit adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow nfs/<FQDN>サービスプリンシパルを作成します。ipa service-add nfs/nfs_server.idm.example.com
# ipa service-add nfs/nfs_server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow IdM から
nfsサービスプリンシパルを取得し、/etc/krb5.keytabファイルに保存します。ipa-getkeytab -s idm_server.idm.example.com -p nfs/nfs_server.idm.example.com -k /etc/krb5.keytab
# ipa-getkeytab -s idm_server.idm.example.com -p nfs/nfs_server.idm.example.com -k /etc/krb5.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
/etc/krb5.keytabファイル内のプリンシパルを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、ホストを IdM ドメインに参加させると、IdM クライアントがホストプリンシパルを
/etc/krb5.keytabファイルに追加します。ホストプリンシパルがない場合は、ipa-getkeytab -s idm_server.idm.example.com -p host/nfs_server.idm.example.com -k /etc/krb5.keytabコマンドを使用して追加します。ipa-client-automountユーティリティーを使用して、IdM ID のマッピングを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/exportsファイルを更新し、クライアントオプションに Kerberos セキュリティー方式を追加します。以下に例を示します。/nfs/projects/ 192.0.2.0/24(rw,sec=krb5i)
/nfs/projects/ 192.0.2.0/24(rw,sec=krb5i)Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントが複数のセキュリティー方式を選択できるようにするには、それらをコロンで区切って指定します。
/nfs/projects/ 192.0.2.0/24(rw,sec=krb5:krb5i:krb5p)
/nfs/projects/ 192.0.2.0/24(rw,sec=krb5:krb5i:krb5p)Copy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートされたファイルシステムを再ロードします。
exportfs -r
# exportfs -rCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12. TLS 対応の NFS サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
RPCSEC_GSS プロトコルがない場合、NFS トラフィックはデフォルトで暗号化されません。Red Hat Enterprise Linux 10 以降では、TLS 対応の NFS を設定でき、デフォルトで NFS トラフィックを暗号化できるようになりました。
前提条件
- NFSv4 サーバーを設定した。手順については、NFSv4 専用サーバーの設定 を参照してください。
- 認証局 (CA) 証明書がある。
-
ktls-utilsパッケージをインストールした。
手順
秘密鍵および証明書署名要求 (CSR) を作成します。
openssl req -new -newkey rsa:4096 -noenc \ -keyout /etc/pki/tls/private/server.example.com.key \ -out /etc/pki/tls/private/server.example.com.csr \ -subj "/C=US/ST=State/L=City/O=Organization/CN=server.example.com" \ -addext "subjectAltName=DNS:server.example.com,IP:192.0.2.1"
# openssl req -new -newkey rsa:4096 -noenc \ -keyout /etc/pki/tls/private/server.example.com.key \ -out /etc/pki/tls/private/server.example.com.csr \ -subj "/C=US/ST=State/L=City/O=Organization/CN=server.example.com" \ -addext "subjectAltName=DNS:server.example.com,IP:192.0.2.1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要コモンネーム (CN) と DNS はホスト名と一致する必要があります。IP はホストの IP と一致する必要があります。
-
/etc/pki/tls/private/server.example.com.csrファイルを CA に送信し、サーバー証明書を要求します。受信した CA 証明書とサーバー証明書をホスト上に保存します。 CA 証明書をシステムのトラストストアにインポートします。
cp ca.crt /etc/pki/ca-trust/source/anchors update-ca-trust
# cp ca.crt /etc/pki/ca-trust/source/anchors # update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバー証明書を
/etc/pki/tls/certs/ディレクトリーに移動します。mv server.example.com.crt /etc/pki/tls/certs/
# mv server.example.com.crt /etc/pki/tls/certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 秘密鍵と証明書の SELinux コンテキストが正しいことを確認します。
restorecon -Rv /etc/pki/tls/certs/
# restorecon -Rv /etc/pki/tls/certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバー証明書と秘密鍵を、
/etc/tlshd.confファイルの[authenticate.server]セクションに追加します。x509.certificate= /etc/pki/tls/certs/server.example.com.crt x509.private_key= /etc/pki/tls/private/server.example.com.key
x509.certificate= /etc/pki/tls/certs/server.example.com.crt x509.private_key= /etc/pki/tls/private/server.example.com.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow x509.truststoreパラメーターは未設定のままにします。tlshdサービスを有効にして起動します。systemctl enable --now tlshd.service
# systemctl enable --now tlshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.13. TLS 対応の NFS クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 9.6 以降では、サーバーが TLS 暗号化を備えた NFS をサポートする場合は、xprtsec=tls パラメーターを使用して NFS を TLS サポートでマウントし、クライアントを設定できます。
前提条件
- NFS サーバーを TLS 暗号化を使用して設定した。詳細は、TLS 対応の NFS サーバーの設定 を参照してください。
-
ktls-utilsパッケージをインストールした。
手順
認証局 (CA) 証明書をシステムのトラストストアにインポートします。
cp ca.crt /etc/pki/ca-trust/source/anchors update-ca-trust
# cp ca.crt /etc/pki/ca-trust/source/anchors # update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow tlshdサービスを有効にして起動します。systemctl enable --now tlshd.service
# systemctl enable --now tlshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 暗号化を使用して NFS 共有をマウントします。
mount -o xprtsec=tls server.example.com:/nfs/projects/ /mnt/
# mount -o xprtsec=tls server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クライアントが TLS 対応の NFS 共有を正常にマウントしたことを確認します。
journalctl -u tlshd
# journalctl -u tlshd … Apr 01 08:37:56 client.example.com tlshd[10688]: Handshake with server.example.com (192.0.2.1) was successfulCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.14. 相互 TLS 対応の NFS クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 9.6 以降、サーバーが TLS 暗号化を備えた NFS に対応している場合は、NFS サーバーおよびクライアントが TLS プロトコルを使用して相互に認証するように設定できます。
前提条件
- NFS サーバーを TLS 暗号化を使用して設定した。詳細は、TLS 対応の NFS サーバーの設定 を参照してください。
-
ktls-utilsパッケージをインストールした。
手順
秘密鍵および証明書署名要求 (CSR) を作成します。
openssl req -new -newkey rsa:4096 -noenc \ -keyout /etc/pki/tls/private/client.example.com.key \ -out /etc/pki/tls/private/client.example.com.csr \ -subj "/C=US/ST=State/L=City/O=Organization/CN=client.example.com" \ -addext "subjectAltName=DNS:client.example.com,IP:192.0.2.2"
# openssl req -new -newkey rsa:4096 -noenc \ -keyout /etc/pki/tls/private/client.example.com.key \ -out /etc/pki/tls/private/client.example.com.csr \ -subj "/C=US/ST=State/L=City/O=Organization/CN=client.example.com" \ -addext "subjectAltName=DNS:client.example.com,IP:192.0.2.2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要コモンネーム (CN) と DNS はホスト名と一致する必要があります。IP はホストの IP と一致する必要があります。
-
/etc/pki/tls/private/client.example.com.csrファイルを認証局 (CA) に送信し、クライアント証明書を要求します。受信した CA 証明書とクライアント証明書をホストに保存します。 CA 証明書をシステムのトラストストアにインポートします。
cp ca.crt /etc/pki/ca-trust/source/anchors update-ca-trust
# cp ca.crt /etc/pki/ca-trust/source/anchors # update-ca-trustCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアント証明書を
/etc/pki/tls/certs/ディレクトリーに移動します。mv client.example.com.crt /etc/pki/tls/certs/
# mv client.example.com.crt /etc/pki/tls/certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 秘密鍵と証明書の SELinux コンテキストが正しいことを確認します。
restorecon -Rv /etc/pki/tls/certs/
# restorecon -Rv /etc/pki/tls/certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアント証明書と秘密鍵を、
/etc/tlshd.confファイルの[authenticate.client]セクションに追加します。x509.certificate= /etc/pki/tls/certs/client.example.com.crt x509.private_key= /etc/pki/tls/private/client.example.com.key
x509.certificate= /etc/pki/tls/certs/client.example.com.crt x509.private_key= /etc/pki/tls/private/client.example.com.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow x509.truststoreパラメーターは未設定のままにします。tlshdサービスを有効にして起動します。systemctl enable --now tlshd.service
# systemctl enable --now tlshd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow TLS 暗号化を使用して NFS 共有をマウントします。
mount -o xprtsec=mtls server.example.com:/nfs/projects/ /mnt/
# mount -o xprtsec=mtls server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クライアントが TLS 対応の NFS 共有を正常にマウントしたことを確認します。
journalctl -u tlshd
# journalctl -u tlshd … Apr 01 08:37:56 client.example.com tlshd[10688]: Handshake with server.example.com (192.0.2.1) was successfulCopy to Clipboard Copied! Toggle word wrap Toggle overflow