II-7-5. NFSの設定と運用

UNIXで利用されてきた代表的なファイル共有の手法であるNFSについて解説する。NFSとは何か、LinuxサーバにおけるNFSの設定手順、 NFSクライアントの設定といった具体的な設定方法を説明し、NFSの運用管理に必要なノウハウについても触れる。

【学習の要点】

* NFS(Network File System)はネットワークに接続されたLinux間でファイルシステムを共有するためのシステムである。

* NFSサーバでは設定ファイル(/etc/exports)により共有するディレクトリやアクセスするユーザおよびコンピュータの設定等を行う。

* NFSクライアントは、mountコマンドによる手動、またはfstabへ設定することで起動時に自動でNFSサーバのファイルシステムを共有することができる。

* NFS サーバーログ機能によりNFS の読み取りと書き込み、および対象とするファイルシステムを変更する操作の記録を行う。

図II-7-5. NFSの概要

 

【解説】

1) NFSとは

NFS(Network File System)はサーバ上にあるファイルシステムを、クライアントでマウントすることにより、クライアント上にあるファイルシステムと同様に使用できるサービスを提供するものである。

このサービスを利用することにより、サーバにあるファイルもクライアントにあるファイルと区別することなく同様に操作を行うことが可能となる。

また、FTPと同様にファイルシステムの違いを吸収できる異機種間接続機能を持っているため、LinuxとWindowsなどOSの違うコンピュータ間でもサービスを利用することができる。

NFSクライアントへ共有の許可を出すことを「エクスポート」と呼ぶ。

NFSでは複数のポート番号を利用して接続を行う。NFSサーバがNFSクライアントから接続の要求を受け取ると、ポート番号を保管しているポートマッパーから接続を行うポート番号を取得して接続を行う。

2) NFSサーバの設定

LinuxではnfsdサービスによりNFSサーバを利用することができる。

nfsdは/etc/exportsにより、NFSサーバ上のどのファイルシステムを他のコンピュータが共有してよいのか設定を行う。さらに、オプションとして、ディレクトリに対するアクセス制限などのファイル属性や、サーバとクライアントのユーザIDやグループIDの対応方法を設定する「ユーザ属性」を指定することができる。

/etc/exportsの設定例

 /exportdir	192.168.0.0/255.255.255.0(rw,no_route_squash)

/etc/exportsに設定した内容を有効にするためには、exportfsコマンドを使用する。

showmount コマンドにて、NFSマウントしているクライアントの情報を確認することができる。

3) NFSクライアントの設定

NFSサーバにて提供されている共有ファイルを使用するためには、他のファイルシステムと同様にmountコマンドにてNFSマウントを行う。

# mount –t nfs –o nfsvers=3 nfsserver:/exportdir /mnt/nfs

/etc/fstabへマウント情報を記述することによりnetfsサービスを利用してシステムを起動した時に自動的にマウントを行うことができる。

また、automountコマンドを使用することにより、ファイルシステムの利用に応じて自動的にマウント/アンマウントを行うことができる。

4) NFSのセキュリティ

NFSで読み書き込み可能な状態でマウントした場合、クライアント側のユーザ権限にてファイルへのアクセスが可能となる。これによりクライアントにてroot権限を持ったユーザで利用するとNFSで共有されたファイル全てにアクセス可能な状態になる。これを防ぐためには、/etc/exportsにてrootでアクセスがあった場合匿名ユーザとしてアクセスを行うように設定を行っておく必要がある。

NFSサーバでは、クライアントの認証結果やサーバから呼出しや書き込みを行ったファイルの情報をsyslogへ出力する。このログからNFSの利用状況や不正なアクセスが行われていないか定期的に確認する必要がある。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。