Linux
 Computer >> コンピューター >  >> システム >> Linux

Linux CentOS/RHELでNFSサーバーとクライアントを設定する方法

NFS(Network File System)は、ファイルやフォルダをネットワーク越しに共有するための分散ファイルシステムプロトコルです。ONC RPC(Remote Procedure Call)を基盤としており、リモートのファイルシステムをあたかもローカルディスクのようにマウントして利用できます。ただし、デフォルト設定ではデータ通信が暗号化されず、クライアント認証も行われない点に注意が必要です(アクセス制限はIPアドレス単位で設定可能です)。

NFSはサーバー側・クライアント側のどちらも比較的簡単に設定できます。本記事では、CentOSをはじめとするRPM系Linuxディストリビューション(CentOS、RHEL、Fedoraなど)を対象に、NFSサーバーのインストールと構成方法、さらにクライアントからNFS共有へ接続する手順を詳しく解説します。

CentOSへのNFSサーバーのインストールと設定

標準パッケージ構成のCentOSでは、NFS関連パッケージはデフォルトでインストールされています。NFSコンポーネントを削除していた場合や、Minimalインストールでサーバーを構築した場合は、yum(またはdnf)パッケージマネージャーでインストールしましょう。

CentOS 8の場合のコマンド例:

# dnf install nfs-utils -y

現在のNFSサーバーはNFSv3およびNFSv4プロトコルに対応しており、NFSv2はデフォルトで無効化されています。サポートされているNFSバージョンの一覧は、以下のコマンドで確認できます。

cat /proc/fs/nfsd/versions

必要なパッケージのインストールが完了したら、rpcbindサービスとnfs-serverサービスを起動し、システム起動時に自動的に立ち上がるよう有効化します。

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

なお、NFSv4.1/4.2のみを使用する場合は、rpcbindサービスは不要です。

firewalldでのポート開放

ホストでfirewalldを使用している場合は、以下のコマンドで必要なポートとサービスを開放します。

# firewall-cmd --permanent --add-port=111/tcp
# firewall-cmd --permanent --add-port=20048/tcp
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload

iptablesでのポート開放

iptablesを使用している場合は、次のように設定します。

# iptables -t filter -A INPUT -p tcp --dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 20048 -j ACCEPT
# service iptables save
# service iptables restart

/etc/exportsによる共有ディレクトリの設定

次に、NFSサーバーが共有するディレクトリを作成します。

# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs

共有の公開とアクセス権限の割り当ては、NFSサーバーの設定ファイル「/etc/exports」で行います。

# nano /etc/exports

指定したIPサブネット内のすべてのホストにNFSアクセスを許可するには、設定ファイルに以下のような行を追加します。

/backup/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)

特定のIPアドレスだけにアクセスを限定することも可能です。

/backup/nfs 192.168.2.24(rw,sync,no_root_squash,no_all_squash, anonuid=1000,anongid=1000) 192.168.3.100(ro,async,no_subtree_check)

権限設定で使われる主なパラメータは以下の通りです。

  • rw:書き込み権限を付与/ro:読み取り専用アクセス
  • sync:同期アクセスモード/async:ディスクへの書き込み完了を待たない(パフォーマンスは向上するが信頼性は低下)
  • no_root_squash:クライアント側のrootユーザーによるNFSディレクトリへのアクセスを許可する(通常は非推奨)
  • no_all_squash:ユーザー認証を有効化/all_squash:匿名ユーザーとしてNFS共有にアクセスさせる
  • no_subtree_check:サブツリーチェックを無効化(デフォルトではsubtree_checkが有効)
  • anonuid / anongid:NFSのユーザー・グループを指定したローカルのUID/GIDにマッピングする

新しい共有設定を反映するには、以下のコマンドを実行します。

# exportfs -a

その後、NFSサーバーを再起動して設定を確定させます。

# systemctl restart nfs-server

以上でNFSサーバー側の設定は完了です。続いてクライアント側の設定に進みましょう。

CentOSでのNFSクライアント設定

NFSクライアントを設定するには、クライアント側にもnfs-utilsパッケージが必要です。

# yum install nfs-utils -y

サービスを自動起動に登録し、起動します。

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

次に、NFS共有をマウントするためのマウントポイントとなるディレクトリを作成します。

# mkdir /backup

以下のコマンドで、リモートのNFS共有をマウントできます。

# mount -t nfs 192.168.0.100:/backup/nfs/ /backup

NFSプロトコルのバージョンを明示的に指定することも可能です。

# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup

IPアドレス部分には、先ほど設定したNFSサーバーのアドレスを指定してください。

マウントが成功すると、接続されたNFS共有はマウント済みドライブの一覧に表示されます。ディレクトリ内のデータを読み書きできるかどうかは、NFSサーバー上でクライアントのIPアドレスに割り当てられた権限によって決まります。

fstabによる自動マウントの設定

サーバーやクライアントの再起動時にNFSディレクトリを自動マウントしたい場合は、fstabファイルを編集します。

# nano /etc/fstab

ファイルに以下の行を追加してください。

192.168.0.100:/backup/nfs/ /backup/ nfs rw,sync,hard,intr 0 0

fstabを保存した後、以下のコマンドで設定を即座に反映できます。

# mount -a

これで、リモートのNFSストレージの構築と接続が完了しました。複数のホストから共有リソースへ透過的にアクセスできる環境が整い、NFSディレクトリにはバックアップファイルやISOイメージなどを格納するのに便利です。

  1. RHEL・CentOS・Fedoraの違いを徹底解説!特徴と選び方のポイント

    Linuxディストリビューションは、よく車のモデルにたとえられます。選択肢が非常に多く、新しいものが日々登場するため、それぞれの違いを見極めるのは容易ではありません。中でも、Red Hat社が所有・支援する3つの主要ディストリビューションについては、混同されがちです。本記事では、RHEL、CentOS、Fedoraの違いを明確にし、それぞれがどんな用途に向いているのかをわかりやすく解説します。 RHEL、CentOS、Fedoraの共通点 まず、3つのディストリビューションの共通点から見ていきましょう。いずれも、2004年に開発が終了したRed Hat Linuxをベースとしています。Re

  2. Linuxサーバーのマルウェア・ルートキット検出ガイド:無料ツール3選と使い方

    ワーム、ウイルス、マルウェア、そして恐るべきルートキット――これらはサーバー管理者にとって最大の敵です。感染したシステムでは、攻撃者が悪用できる脆弱性がアーキテクチャによって数多く存在し、機密情報の窃取や組織への多大な金銭的損害をもたらす可能性があります。 しかし幸いなことに、こうしたサイバー攻撃者に無抵抗でいる必要はありません。サーバー上のマルウェアやルートキットを検出することは可能であり、そのためのツールも豊富に存在します。しかも、その多くは無料で利用できるのです。 1. Clam AV Clam AVはコマンドラインから操作できるアンチウイルスソフトで、メールサーバーとの緊密な連携を目