ウェブサイト検索

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


コンピュータは孤立したシステムとして機能することが稀であるため、システム管理者やエンジニアとして、複数のタイプのサーバーを持つネットワークを設定し維持する方法を知っていることが期待されます。

この記事とこのシリーズの次の記事では、WindowsとLinuxのクライアントそれぞれに対して、Samba</strong>とNFS</strong>サーバーを設定するための基本を説明します。

この記事は、企業やエンタープライズ環境でファイルサーバーを設定するよう求められた場合に役立つこと間違いありません。そこでは、異なるオペレーティングシステムやデバイスタイプが見られる可能性があります。

サンバと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

box2 \の上で:


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

インストールが完了したら、共有の設定を行う準備が整います。

ステップ2:Sambaを通じたファイル共有の設定

Sambaが非常に重要である理由の一つは、SMB&47;CIFSクライアントにファイルおよび印刷サービスを提供するため、これらのクライアントがサーバーをWindowsシステムのように見ることができるからです(このトピックについて書くとき、数年前に新しいLinuxシステム管理者として最初のセットアップを行ったため、少し感情的になることを認めざるを得ません)。

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

グループコラボレーションを可能にするために、useraddコマンドを使用して、user1とuser2の2人のユーザーを持つfinanceという名前のグループを作成し、box1内に/financeというディレクトリを作成します。

このディレクトリのグループオーナーを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</strong>をSamba共有として構成する準備として、SELinux</strong>を無効にするか、以下のように適切なboolean</strong>およびセキュリティコンテキストの値を設定する必要があります(さもなければ、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トラフィックがfirewalldによって許可されていることを確認する必要があります。


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

ステップ4:Samba共有を設定する

さて、設定ファイル/etc/samba/smb.conf</strong>に潜り込み、共有のセクションを追加する時が来ました。finance</strong>グループのメンバーが/finance</strong>の内容を閲覧し、/</strong>にファイルやサブディレクトリを作成することができるようにしたいと思います(デフォルトでは、これらのパーミッションビットは0770</strong>に設定され、finance</strong>がそのグループオーナーになります)。


[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</strong>ユーティリティでテストします。エラーがある場合、次のコマンドの出力は修正が必要な点を示します。そうでなければ、Sambaサーバーの設定のレビューが表示されます。

別の公開シェア(認証なし)を追加したい場合は、&47;etc&47;samba&47;smb.confに新しいセクションを作成し、新しいシェアの名前の下に上記のセクションをコピーします。ただし、public=noをpublic=yesに変更し、有効なユーザーや書き込みリストのディレクティブは含めないでください。

ステップ5:サンバユーザーの追加

次に、user1とuser2を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

(上記のコマンドをユーザー1のために繰り返す)

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


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

(where &47;media&47;sambaは既存のディレクトリです)

または、&47;etc&47;fstabファイルに次のエントリを追加することで、永続的に設定します:


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

隠しファイル&47;media&47;samba&47;.smbcredentials(その権限と所有者はそれぞれ600およびroot:rootに設定されています)が、共有を使用することが許可されたアカウントのユーザー名とパスワードを示す2行を含んでいます。


username=user1
password=PasswordForUser1

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


touch /media/samba/FileCreatedInRHELClient.txt

ご覧のとおり、ファイルは0770の権限で作成され、所有者はuser1:financeに設定されています。

ステップ7:WindowsでSamba共有をマウントする

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

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


ls -l /finance

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

要約

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

最後に、この記事で説明されているシナリオよりもあなたのケースにより適した他の設定ディレクティブを探るために、smb.confのオンラインマニュアルページを読むことをお勧めします。

いつものように、コメントや提案がある場合は、下のフォームを使ってお気軽にコメントしてください。

関連記事: