Linux環境におけるCIFS/Sambaを用いたNAS構築とファイル共有設定

CIFSプロトコルの概要

CIFS(Common Internet File System)は、異なるOS間でファイル共有を実現するプロトコルです。WindowsクライアントとLinuxサーバー間でのシームレスなデータ共有を可能にし、複数ノードからの同時マウントや並行書き込みをサポートしています。

サーバー側の設定手順

Sambaパッケージのインストール

まず、SambaとCIFSユーティリティをシステムに導入します。

[root@fileserver ~]# dnf -y install samba samba-client cifs-utils

共有ディレクトリの作成と権限設定

共有対象のディレクトリを作成し、適切なアクセス権限を付与します。

[root@fileserver ~]# mkdir -p /srv/shared_folder
[root@fileserver ~]# chmod 2770 /srv/shared_folder
[root@fileserver ~]# chown root:sharegroup /srv/shared_folder
[root@fileserver ~]# cp /etc/hostname /srv/shared_folder/sample.txt

Sambaアクセス用ユーザーの作成

システムユーザーを作成し、Sambaデータベースに登録します。シェルアクセスは無効化しておきます。

[root@fileserver ~]# groupadd sharegroup
[root@fileserver ~]# useradd -G sharegroup -s /sbin/nologin smbuser01
[root@fileserver ~]# useradd -G sharegroup -s /sbin/nologin smbuser02
[root@fileserver ~]# smbpasswd -a smbuser01
New SMB password: [パスワード入力]
Retype new SMB password: [パスワード再入力]
Added user smbuser01.
[root@fileserver ~]# smbpasswd -a smbuser02

Samba設定ファイルの編集

/etc/samba/smb.confに共有設定を追加します。

[root@fileserver ~]# vim /etc/samba/smb.conf

[global]
    workgroup = WORKGROUP
    security = user
    passdb backend = tdbsam

[ShareData]
    comment = NAS Shared Directory
    path = /srv/shared_folder
    browseable = yes
    writable = yes
    valid users = @sharegroup
    write list = smbuser01 smbuser02
    create mask = 0660
    directory mask = 0770
    hosts allow = 192.168.10. 127.

主な設定パラメータの説明:

  • path: 共有ディレクトリの絶対パス
  • valid users: アクセスを許可するユーザーまたはグループ
  • write list: 書き込み権限を持つユーザー
  • hosts allow: 接続を許可するネットワーク範囲

サービスの起動と有効化

[root@fileserver ~]# systemctl enable --now smb nmb
[root@fileserver ~]# systemctl status smb

ファイアウォールとSELinuxの設定

ファイアウォールでSambaサービスを許可します。

[root@fileserver ~]# firewall-cmd --permanent --add-service=samba
[root@fileserver ~]# firewall-cmd --permanent --add-service=samba-client
[root@fileserver ~]# firewall-cmd --reload
success

SELinuxのブール値を設定します(必要に応じて)。

[root@fileserver ~]# setsebool -P samba_export_all_rw on
[root@fileserver ~]# semanage fcontext -a -t samba_share_t "/srv/shared_folder(/.*)?"
[root@fileserver ~]# restorecon -Rv /srv/shared_folder

Linuxクライアントからのマウント

手動マウント

CIFSファイルシステムとして手動でマウントします。

[root@client ~]# mkdir -p /mnt/nas_share
[root@client ~]# mount -t cifs //192.168.10.100/ShareData /mnt/nas_share -o username=smbuser01,password=SecurePass123,uid=1000,gid=1000

自動マウント設定

/etc/fstabにエントリを追加し、システム起動時に自動的にマウントされるようにします。認証情報を別ファイルに保存する方法が推奨されます。

[root@client ~]# echo "username=smbuser01" > /etc/samba/credentials
[root@client ~]# echo "password=SecurePass123" >> /etc/samba/credentials
[root@client ~]# chmod 600 /etc/samba/credentials

[root@client ~]# vim /etc/fstab
//192.168.10.100/ShareData  /mnt/nas_share  cifs  credentials=/etc/samba/credentials,uid=1000,gid=1000  0  0

[root@client ~]# mount -a

Windowsクライアントからの接続

Windowsエクスプローラーのアドレスバーに以下を入力します。

\\192.168.10.100\ShareData

ネットワークドライブの割り当てを使用して永続的に接続することも可能です。

タグ: samba cifs NAS linux ファイル共有

7月2日 20:41 投稿