ウェブサイト検索

Linux/Windows クライアントでのファイル共有を可能にするための Samba のセットアップと FirewallD および SELinux の構成 - パート 6


コンピュータが独立したシステムとして動作することはほとんどないため、システム管理者またはエンジニアは、複数の種類のサーバーを使用したネットワークを設定および維持する方法を知っていることが期待されます。

この記事とこのシリーズの次回では、Samba サーバーと NFS サーバーをそれぞれ Windows/Linux クライアントと Linux クライアントにセットアップするための基本事項を説明します。

この記事は、さまざまなオペレーティング システムやデバイスの種類が使用される可能性が高い企業またはエンタープライズ環境でファイル サーバーをセットアップする必要がある場合に間違いなく役立ちます。

Samba と NFS の背景と技術的側面についてはインターネット上で読むことができるため、この記事と次の記事では、目前にあるトピックを基に本題に入ります。

ステップ 1: Samba サーバーのインストール

現在のテスト環境は、2 台のRHEL 7 ボックスと 1 台のWindows 8マシンで構成されており、この順序は次のとおりです。


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

box1 に次のパッケージをインストールします。


yum update && yum install samba samba-client samba-common

ボックス 2 について:


yum update && yum install samba samba-client samba-common cifs-utils

インストールが完了したら、共有を構成する準備が整います。

ステップ 2: Samba を介したファイル共有のセットアップ

Samba が重要な理由の 1 つは、SMB/CIFS クライアントにファイルおよび印刷サービスを提供するためです。これにより、これらのクライアントはサーバーをあたかもサーバーであるかのように認識します。 Windows システム (数年前、新しい Linux システム管理者として初めてセットアップしたため、このトピックについて書いているときに少し感情的になる傾向があることを認めなければなりません)。

システムユーザーの追加と権限と所有権の設定

グループコラボレーションを可能にするために、useradd コマンドとディレクトリ を使用して 2 人のユーザー (user1user2) で finance という名前のグループを作成します。 >/financeボックス 1)。

また、このディレクトリのグループ所有者を finance に変更し、その権限を 0770 に設定します (所有者とグループ所有者の読み取り、書き込み、実行権限)。


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

ステップ 3: SELinux と Firewalld の構成

/finance を Samba 共有として設定する準備として、SELinux を無効にするか、次のように適切な ブール値 とセキュリティ コンテキストの値を設定する必要があります。 (そうしないと、SELinux によってクライアントが共有にアクセスできなくなります):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

さらに、Samba トラフィックがファイアウォールによって許可されていることを確認する必要があります。


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

ステップ 4: Samba 共有を構成する

次に、設定ファイル /etc/samba/smb.conf に進み、共有のセクションを追加します。finance グループのメンバーができるようにしたいと考えています。 /finance の内容を参照し、 / を保存します。その中にファイルまたはサブディレクトリを作成します (デフォルトでは、アクセス許可ビットが 0770 に設定されます)そして財務がグループの所有者になります):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

ファイルを保存し、testparm ユーティリティを使用してテストします。エラーがある場合は、次のコマンドの出力に修正が必要な内容が示されます。それ以外の場合は、Samba サーバー構成のレビューが表示されます。

一般に公開されている (つまり、認証を一切行わずに) 別の共有を追加したい場合は、/etc/samba/smb.conf に別のセクションを作成し、新しい共有の名前の下に上記のセクションをコピーします。 public=nopublic=yes に変更するだけで、有効なユーザーと書き込みリストのディレクティブは含めません。

ステップ 5: Samba ユーザーの追加

次に、user1user2 を Samba ユーザーとして追加する必要があります。これを行うには、Samba の内部データベースと対話する smbpasswd コマンドを使用します。後で共有に接続するために使用するパスワードを入力するように求められます。


smbpasswd -a user1
smbpasswd -a user2

最後に、Samba を再起動し、起動時にサービスが開始できるようにし、ネットワーク クライアントが実際に共有を利用できることを確認します。


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

この時点で、Samba ファイル サーバーは適切にインストールされ、構成されています。次に、RHEL 7 クライアントと Windows 8 クライアントでこの設定をテストします。

ステップ 6: Linux での Samba 共有のマウント

まず、このクライアントから Samba 共有にアクセスできることを確認します。


smbclient –L 192.168.0.18 -U user2

(user1 に対して上記のコマンドを繰り返します)

他のストレージ メディアと同様に、必要に応じてこのネットワーク共有をマウント (後でアンマウント) できます。


mount //192.168.0.18/finance /media/samba -o username=user1

(/media/samba は既存のディレクトリです)

または、/etc/fstab ファイルに次のエントリを追加して永続的にします。


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

隠しファイル /media/samba/.smbcredentials (アクセス許可と所有権がそれぞれ 600root:root に設定されている) には次のものが含まれます。共有の使用が許可されているアカウントのユーザー名とパスワードを示す 2 行:


username=user1
password=PasswordForUser1

最後に、/finance 内にファイルを作成し、権限と所有権を確認しましょう。


touch /media/samba/FileCreatedInRHELClient.txt

ご覧のとおり、このファイルは 0770 権限と所有権が user1:finance に設定されて作成されました。

ステップ 7: Windows での Samba 共有のマウント

Windows で Samba 共有をマウントするには、マイ PC に移動し、コンピュータを選択してから、 ネットワーク ドライブをマップします。次に、マッピングするドライブの文字を割り当て、[別の資格情報を使用して接続] をオンにします (以下のスクリーンショットは私の母国語であるスペイン語です)。

最後に、ファイルを作成して権限と所有権を確認しましょう。


ls -l /finance

今回のファイルは user2 に属します。これは Windows クライアントからの接続に使用したアカウントであるためです。

まとめ

この記事では、 異なるオペレーティング システムを使用するSamba サーバーと 2 つのクライアントをセットアップする方法だけでなく、必要なグループ コラボレーション機能を許可するためにサーバー上で firewalld と SELinux を構成する方法についても説明しました。

最後に、重要なことですが、smb.conf のオンライン マニュアル ページを読んで、この記事で説明したシナリオよりもあなたのケースに適した他の構成ディレクティブを検討することをお勧めします。

いつものように、ご意見やご提案がございましたら、下のフォームを使用してお気軽にコメントをお寄せください。