NFSサーバーの設定と管理

〜 Linux間でのファイル共有の定番 〜


目次

🧭 概要

NFS(Network File System)は、UNIX/Linux間でファイルシステムをネットワーク越しに共有するためのプロトコルです。NFSサーバーを適切に設定することで、クライアントはまるでローカルのディレクトリであるかのように、サーバー上のディレクトリにアクセスできます。


🔧 NFS の基本構成

ファイル・ディレクトリ説明
/etc/exports共有設定ファイル(エクスポートするディレクトリやアクセス制限)
/etc/fstabクライアント側での自動マウント設定
/proc/mounts実際にマウントされているファイルシステムの情報

🚀 NFSに関わる主なユーティリティ・デーモン

コマンド・デーモン機能
exportfsエクスポートの設定・表示・再読み込み
showmountNFSサーバーからエクスポートされている情報を表示
nfsstatNFS通信の統計情報を表示
rpcinfoRPCサービスの確認
rpc.mountdクライアントからのマウント要求に対応
portmapperrpcbindRPCサービスへのポート案内役

📁 /etc/exports の設定方法

NFSで共有するディレクトリとアクセス権を設定するファイルです。

基本構文:

<共有ディレクトリ>  <クライアント>(オプション)

例:

/srv/nfs/data   192.168.1.0/24(rw,sync,no_root_squash)
/srv/nfs/public *(ro,sync)
オプション内容
rw / ro読み書き可 / 読み取り専用
sync書き込みはディスクへの同期完了後に返答(安全)
no_root_squashクライアントのrootをサーバーでもrootとして扱う(セキュリティ注意)
all_squashすべてのユーザーをnfsnobodyにマッピング

🧪 エクスポートの操作と確認

sudo exportfs -a         # /etc/exports に基づき全てを再エクスポート
sudo exportfs -v # 詳細情報を表示
sudo exportfs -u <path> # 指定のエクスポートを解除

クライアントからの確認:

showmount -e <nfsサーバーIP>

🔐 アクセス制限とセキュリティ

  • IPアドレス、ホスト名、サブネットで制御可能
  • ファイアウォールで以下のポートを開ける必要あり(NFSv3):
サービスポート番号
nfsd2049 (TCP/UDP)
rpcbind111 (TCP/UDP)
mountd任意(固定化推奨)

📌 クライアント側のマウント手順

一時的なマウント(手動):

sudo mount -t nfs <サーバーIP>:/srv/nfs/data /mnt/nfs

永続的なマウント(/etc/fstab):

192.168.1.100:/srv/nfs/data /mnt/nfs nfs defaults 0 0

マウントオプション例:

オプション内容
defaults標準のオプションを使用
hard / soft通信断時の動作(hardは再試行、softは即エラー)
nolockロックを使わない(軽量だがリスクあり)

🔍 NFSの状態確認とトラブルシューティング

ステータス確認

nfsstat         # サーバー・クライアント統計
rpcinfo -p # 利用中のRPCポート一覧

ログ確認

journalctl -u nfs-server
tail -f /var/log/messages

🔒 NFSのセキュリティ対策

対策内容
no_root_squash は極力使わないクライアントのrootをサーバーのrootにしない
ファイアウォールとホスト制限接続元制御は必須
NFSv4 + Kerberos認証より堅牢な運用を目指す場合に推奨

✅ まとめ

項目内容
設定ファイル/etc/exports, /etc/fstab
コマンドexportfs, showmount, rpcinfo
デーモンnfsd, rpc.mountd, rpcbind
マウント方法mount, fstab自動マウント
セキュリティアクセス制限 + 最小権限 + ログ監視
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次