ウェブサイト検索

Debian 12にNFSサーバーとクライアントをインストールする方法


Debian 12にNFSサーバーとクライアントをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 12 (ブックワーム)
  • Debian 11 (バルセイヤ)
  • Debian 9(ストレッチ)
  • Debian 7 (Wheezy)
  • Debian 5 (Lenny)

このページで

  1. 前提条件
  2. NFSサーバーのインストール
  3. NFSv4の設定
  4. UFWを使用したファイアウォールの設定
  5. 擬似ファイルシステムとエクスポートの設定
  6. NFSクライアントの設定
  7. NFSサーバーを/etc/fstabを介してマウントする
  8. 結論

NFS(ネットワークファイルシステム)は、ネットワーク上でリモートファイルシステムをマウントすることを可能にするネットワークプロトコルです。NFSプロトコルはクライアント-サーバーアーキテクチャを使用しています。NFSサーバーはアクセス可能なすべてのディレクトリやパーティションを提供し、クライアントはrpcbindプロトコルを使用して内部ネットワーク接続を介してすべてのディレクトリとファイルシステムにアクセスします。

ネットワークファイルシステムプロトコルの現在の状態は以下に説明されています。

  • NFSv2とNFSv3は主要なオペレーティングシステムでまだサポートされていますが、セキュリティ上の理由から、NFSサーバへのアクセスを信頼できるローカルネットワークに制限する必要があります。NFSv2とNFSv3は、小規模および中規模の展開に推奨されます。
  • NFSv4プロトコルは、認証や暗号化などの基本的なセキュリティ機能を提供していますが、これらの部分に関してはKerberosに依存しています。そのため、基本的なセキュリティ機能を使用してNFSv4を利用するには、追加の設定が必要です。

このガイドでは、Debian 12でNFSサーバーとクライアントをインストールする方法を示します。NFSサーバーをインストールし、擬似ファイルシステムを介してexportsfsを構成することを含むNFSv4を設定します。最後に、Debianクライアントを設定して、NFSv4を介してのみNFSサーバーをマウントし、/etc/fstabファイルを介して自動マウントを設定します。

前提条件

このガイドを完了するには、次のものが必要です:

  • 2つのDebian 12サーバー - この場合、IPアドレス192.168.10.15を持つサーバーbookwormがNFSサーバーとして使用され、IP192.168.10.20を持つサーバーclient1がNFSクライアントとして使用されます。
  • sudo/管理者権限を持つ非ルートユーザー。

NFSサーバーのインストール

NFS(ネットワークファイルシステム)は、分散ファイル共有のためのプロトコルです。Linux、特にDebianでは、NFSパッケージは公式リポジトリにデフォルトで用意されています。以下の最初のステップを完了して、NFSサーバーパッケージのインストール方法と、NFSサーバーサービスの管理方法を学びましょう。

インストールを始める前に、以下のaptコマンドを実行してDebianリポジトリを更新し、最新のパッケージ情報を取得してください。

sudo apt update

以下のaptコマンドを使用して、NFSサーバーパッケージnfs-kernel-serverをインストールします。インストールを確認するためにyを入力し、ENTERを押してください。

sudo apt install nfs-kernel-server nfs-common

一旦 nfs-kernel-server パッケージがインストールされると、nfs-server サービスは作成され、デフォルトで実行中かつ有効になります。次の systemctl コマンドを実行して、nfs-server サービスを確認し、サービスが有効で実行中であることを確認してください。

sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server

出力が enabled になるべきであり、これはnfs-serverがシステム起動時に自動的に実行されることを意味します。実行中に、メッセージ active (exited) または active (running) が表示されるはずです。

さらに、次のコマンドを使用して、nf-serverサービスを開始、再起動、停止することができます。

sudo systemctl start nfs-server
sudo systemctl restart nfs-server
sudo systemctl stop nfs-server

NFSv4の設定

この時点で、NFSプロトコルの最新バージョンはv4であり、セキュリティとパフォーマンスが向上しています。次のセクションでは、NFSサーバーでNFSv4をセットアップして有効にする方法を学びます。

nanoエディタコマンドを使用して、デフォルトのNFS設定/etc/default/nfs-commonを開きます。

sudo nano /etc/default/nfs-common

NEED_STATDのパラメータをnoに、NEED_IDMAPDをyesに変更してください。NFSv4では、サーバーとクライアント間の機能を提供するIDマッピングデーモンとして使用される必要なNEED_IDMAPDがあります。

NEED_STATD="no"
NEED_IDMAPD="yes"

ファイルを保存して、作業が完了したらエディタを終了してください。

今、以下のnanoエディタコマンドを使ってNFSサーバーの設定/etc/default/nfs-kernel-serverを開いてください。

sudo nano /etc/default/nfs-kernel-server

NFSv2とNFSv3を無効にするために、nfs-serverサービスを実行しているときに以下の構成を追加し、クライアントからのNFSv2とNFSv3のマウント要求も無効にします。

RPCNFSDOPTS="-N 2 -N 3"
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"

作業が完了したら、ファイルを保存して終了します。

最後に、次のコマンドを実行して nfs-server サービスを再起動し、変更を適用します。これにより、あなたの NFS サーバーは NFSv4 プロトコルのみを受け入れます。

sudo systemctl restart nfs-server

UFWを使用したファイアウォールの設定

NFSサーバーでfirewalldを有効にすることは必須です。これにより、NFSサーバーにアクセスできる内部ネットワークを制限できます。この手順を完了して、UFW(Uncomplicated Firewall)を構成し、NFSサーバーを保護してください。

UFWがインストールされていない場合は、以下のaptコマンドを実行してインストールしてください。

sudo apt install ufw -y

UFWがインストールされた後、以下のufwコマンドを実行してSSHサービスを許可し、UFWを有効にします。yを入力してENTERを押すことで確認し、UFWを有効にします。

sudo ufw allow ssh
sudo ufw enable

UFWが実行され有効な場合、「ファイアウォールはアクティブでシステム起動時に有効です」という出力が得られるはずです。

次に、以下のufwコマンドを実行して、ローカルネットワークのサブネットがNFSサーバーにアクセスできるようにします。以下のコマンドは192.168.10.0/24がNFSサーバーにアクセスできるようにします。

sudo ufw allow from 192.168.10.0/24 to any port nfs

最後に、次のufwコマンドを実行して、UFWの状態を再読み込みして確認します。

sudo ufw reload
sudo ufw status

NFSポート2049がUFWに追加されているのを確認してください; ネットワークサブネット192.168.10.0/24のみがこのポートにアクセスできます。

擬似ファイルシステムとエクスポートの設定

擬似ファイルシステムは、NFS共有ディレクトリを1つのファイルシステムとして設定できる偽のファイルシステムです。したがって、複数の共有ディレクトリを使用する代わりに、すべての共有ディレクトリに対して1つの擬似ファイルシステムを使用できます。

次のセクションでは、NFSサーバーに擬似ファイルシステムを設定し、NFSクライアントのための単一の共有ファイルシステムとして使用します。

次のコマンドを実行して新しいディレクトリ /shared、/shared/data、および /shared/documents を作成します。その後、chownを使用して所有権を nobody と nogroup に変更します。

mkdir -p /shared/{data,documents}
sudo chown -R nobody:nogroup /shared

次に、以下のコマンドを使用して他のディレクトリ/exports、/exports/home、/exports/data、および/exports/documentsを作成してください。そして、所有権をnobodyとnogroupに変更することを忘れないでください。

mkdir -p /exports/{data,home,documents}
sudo chown -R nobody:nogroup /exports

次に、/home ディレクトリを擬似ファイルシステムとして /exports/home ディレクトリにマウントし、共有ディレクトリ /shared/data を /exports/data に、共有ディレクトリ /shared/documents を /exports/documents にマウントします。

sudo mount --bind /home /exports/home
sudo mount --bind /shared/data /exports/data
sudo mount --bind /shared/documents /exports/documents

以下のコマンドdfを使用してマウントされているファイルシステムのリストを確認します。-aパラメーターは、擬似ファイルシステムを含むすべての利用可能なファイルシステムを表示するために使用されます。

sudo df -ah

利用可能でマウントされた擬似ファイルシステムが3つ表示されるはずです。

また、/etc/fstabファイルを通じて、疑似ファイルシステムを永続的に設定することもできます。nanoエディタを使用して、/etc/fstabファイルを開いてください。

sudo nano /etc/fstab

次の設定をファイルに追加してください:

/home /exports/home    none bind
/shared/data /exports/data     none bind
/shared/documents /exports/documents    none bind

作業が終わったら、ファイルを保存して閉じてください。

NFSサーバーに/exportsエクスポートされたディレクトリを擬似ファイルシステムとして追加できます。

/etc/exportsファイルを次のnanoエディタコマンドを使用して開いてください。

sudo nano /etc/exports

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

/exports   192.168.10.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)

作業が終わったら、ファイルを保存して閉じてください。

このケースで使用されるいくつかのNFSオプションは次のとおりです:

  • rw : NFSサーバーとクライアントの両方がボリューム/ディレクトリに対して読み書きアクセスを許可します。
  • no_subtree_check : サブツリーのチェックを無効にします。これは軽度のセキュリティ上の影響がありますが、状況によっては信頼性を向上させることができます。
  • no_root_sqash : ルートスカッシングを無効にします。このオプションは、主にディスクレスクライアントに対して便利です。
  • fsid=0 : NFSv4の場合、このパラメータはNFSサーバーに対して、このエクスポートがすべてのエクスポートされたファイルシステムのルートであることを通知するために使用されます。

次に、nfs-serverサービスを再起動し、変更を適用するために次のコマンドを実行します。その後、サービスが実行中であることを確認するためにnfs-serverを確認します。

sudo systemctl restart nfs-server
sudo systemctl status nfs-server

このような出力が表示されるべきです:

最後に、以下のコマンドを使用してNFSサーバーでエクスポートされたディレクトリとファイルシステムを確認します。

sudo showmount -e 192.168.10.15
sudo showmount -e

すべてがうまくいけば、/exports ディレクトリが NFS サーバーにエクスポートされているのが見えるはずです。

NFSクライアントの設定

この時点で、あなたは疑似ファイルシステムでNFSサーバーを構成し、UFWを介してNFSサーバーを保護しました。今、Debianクライアントマシンを設定し、NFSサーバーの共有ファイルシステムをマウントします。

クライアントマシンにログインし、Debianリポジトリを更新して最新のパッケージ情報を取得します。その後、以下のaptコマンドを使用してnfs-commonパッケージをインストールします。

sudo apt update
sudo apt install nfs-common

パッケージがインストールされたら、次のコマンドを実行してターゲットマウントディレクトリ/users、/data、および/documentsを作成します。

mkdir -p /users /data /documents

次に、以下のmount.nfs4コマンドを実行して、エクスポートされた疑似ファイルシステムをターゲットディレクトリにマウントします。この場合、疑似ファイルシステム/homeは/usersディレクトリに、/dataは/dataディレクトリに、/documentsは/documentsディレクトリにマウントされます。

sudo mount.nfs4 192.168.10.15:/home /users
sudo mount.nfs4 192.168.10.15:/data /data
sudo mount.nfs4 192.168.10.15:/documents /documents

以下のdfコマンドを使用してマウントされたファイルシステムのリストを確認してください。

sudo df -h

成功した場合、NFSサーバーからの各擬似ファイルシステムが各ターゲットディレクトリにこのようにマウントされているのを見ることができるはずです:

さらに、このように擬似ファイルシステムのルートをマウントすることもできます。/nfsターゲットディレクトリを確認すると、/home、/data、/documentsの3つの異なるディレクトリが表示されるはずです。

mkdir -p /nfs
sudo mount.nfs4 192.168.10.15:/ /nfs -o soft,intr,rsize=8192,wsize=8192

NFSサーバーを/etc/fstabを介してマウントする

上部では、mount.nfs4コマンドを使用してNFSサーバーをマウントしています。次のセクションでは、/etc/fstabファイルを介してNFSサーバーを永久にマウントする方法を示します。

まず、以下のumountコマンドを使ってNFSサーバーを削除します。

sudo umount /users /data /documents

次に、以下のnanoエディタコマンドを使用してファイル/etc/fstabを開いてください。

sudo nano /etc/fstab

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

192.168.10.15:/home /users nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/data /data nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/documents /documents nfs4 soft,intr,rsize=8192,wsize=8192

ファイルを保存して、作業が完了したらエディタを終了してください。

次に、以下のsystemctlコマンドを実行してsystemdマネージャを再起動します。次に、mountコマンドを実行して、/etc/fstabファイル内のすべての利用可能なファイルシステムをマウントします。

sudo systemctl daemon-reload
sudo mount -a

次に、以下のdfコマンドを使用してマウントされたファイルシステムのリストを確認します。成功すると、NFSサーバーが各ターゲットディレクトリにマウントされていることがわかります。

sudo df -h

クライアントマシンを再起動して効果を確認することもできます。すべてがうまくいけば、NFSサーバーは自動的に/etc/fstabファイルを介してマウントされるはずです。

sudo reboot

結論

それで完了です!あなたはDebian 12サーバーにNFSサーバーとクライアントのインストールを完了しました。また、NFSサーバー上でNFSv4と擬似ファイルシステムを明示的に構成しました。さらに、UFW(Uncomplicated Firewall)を使用してNFSサーバーを安全にしました。

最後に、DebianマシンでNFSクライアントの設定を完了し、Ubuntuマシンの/etc/fstabファイルを通じて自動マウントNFSサーバーを成功裏に設定しました。これで、自分のニーズに合わせて設定を開始できます。

関連記事: