9.7.3. ファイアウォール背後での NFS の実行
NFS は RPC サービスのポートを動的に割り当てる rpcbind を必要としますが、ファイアウォールルールの設定で問題が発生する可能性があります。クライアントがファイアウォールの背後にある NFS 共有にアクセスできるようにするには、
/etc/sysconfig/nfs
設定ファイルを編集して、必要な RPC サービスを実行するポートを制御します。
すべてのシステムでは、デフォルトで
/etc/sysconfig/nfs
が存在しない場合があります。存在しない場合は、これを作成し、以下の変数を追加して、port を未使用の ポート番号 で置き換えます(ファイルが存在する場合は、コメント解除して、デフォルトのエントリーを必要に応じて変更します)。
MOUNTD_PORT=port
- rpc.mountd (rpc.mountd)が使用する TCP ポートおよび UDP ポートのマウント を制御します。
STATD_PORT=port
- rpc.statd が使用する TCP および UDP ポートのステータス(rpc.statd)を制御します。
LOCKD_TCPPORT=port
- どの TCP portnlock mgr (lockd)が使用するかを制御します。
LOCKD_UDPPORT=port
- どの UDP ポートnlock mgr (lockd)が使用するかを制御します。
NFS が起動しない場合は、
/var/log/messages
を確認してください。通常、すでに使用中のポート番号を指定すると、NFS が起動しません。/etc/sysconfig/nfs
を編集したら、service nfs restart を使用して NFS サービスを再起動します。rpcinfo -p コマンドを実行して変更を確認します。
NFS を許可するようにファイアウォールを設定するには、以下の手順を実行します。
手順9.1 NFS を許可するようにファイアウォールを設定
- NFS 用に TCP ポート 2049 および UDP ポート 2049 を許可します。
- TCP および UDP ポート 111(rpcbind/sunrpc)を許可します。
- で指定する TCP ポートおよび UDP ポートを許可します。
MOUNTD_PORT="port"
- で指定する TCP ポートおよび UDP ポートを許可します。
STATD_PORT="port"
- で指定する TCP ポートを許可します。
LOCKD_TCPPORT="port"
- で指定する UDP ポートを許可します。
LOCKD_UDPPORT="port"
注記
NFSv4.0 コールバックがファイアウォールを通過できるようにするには、
/proc/sys/fs/nfs/nfs_callback_tcpport
を設定して、サーバーがクライアントのそのポートに接続できるようにします。
このプロセスは、NFSv4.1 以降には必要ありません。そして
mountd
、statd
、および lockd
のための他のポート群は純粋な NFSv4 環境では必要ありません。
ファイアウォールの背後での NFS の設定に関する詳細は、以下の Red Hat ナレッジベース記事を参照してください。
9.7.3.1. NFS エクスポートの検出
NFS サーバーがエクスポートするファイルシステムを検出する方法は2種類あります。
まず、NFSv2 または NFSv3 に対応しているサーバーで、show mount コマンドを使用します。
$ showmount -e myserver Export list for mysever /exports/foo /exports/bar
次に、NFSv4 に対応しているサーバーで、マウント
/
を確認し、確認します。
# mount myserver
:/ /mnt/
#cd /mnt/
exports
# ls exports
foo
bar
NFSv4 と、NFSv2 または NFSv3 のいずれか一方に対応するサーバーでは、両方の方法が機能し、同じ結果が得られます。
注記
Red Hat Enterprise Linux 6 以前には、設定の仕方によって以前の NFS サーバーは別々のパス経由で NFSv4 クライアントにファイルシステムをエクスポートすることがありました。これらのサーバーはデフォルトでは NFSv4 を有効にしないため、通常は問題になるべきではありません。