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
$ showmount -e myserver
Export list for mysever
/exports/foo
/exports/bar
次に、NFSv4 に対応しているサーバーで、マウント
/
を確認し、確認します。
NFSv4 と、NFSv2 または NFSv3 のいずれか一方に対応するサーバーでは、両方の方法が機能し、同じ結果が得られます。
注記
Red Hat Enterprise Linux 6 以前には、設定の仕方によって以前の NFS サーバーは別々のパス経由で NFSv4 クライアントにファイルシステムをエクスポートすることがありました。これらのサーバーはデフォルトでは NFSv4 を有効にしないため、通常は問題になるべきではありません。