NFS クライアントへの TCP wrappers によるアクセス制限 (2006/05/16)

NFS サーバへのアクセスを TCP wrappers で制限しましょう,というのはよく見かけます.しかし,NFS クライアントもファイルロック機能を働かせていますので,TCP wrappers によるアクセス制限をかけたほうがよいでしょう.ここでは,NFS クライアントへのアクセス制限のかけ方について述べます.ネットワークは 192.168.0.0/24 とし,サーバの IP アドレスは 192.168.0.1 とします.

NFS クライアントには,nfs-common パッケージをインストールしますが,この結果,portmap, statd, lockd が起動し,ファイルロックの機能を提供します.クライアントは,これらのサービスのモニタの対象となるのが NFS サーバです.これは,/var/lib/nfs/sm を見れば,分かります.

client# ls /var/lib/nfs/sm
192.168.0.1

そのため,192.168.0.1 のみがこれらのサービスにアクセスできるようにすればよいでしょう.まず,これらのサービスへのアクセスを拒否するために,/etc/hosts.deny に次を追加します.

portmap: ALL
lockd:   ALL
statd:   ALL

そして,サーバのみアクセスを許可するため,/etc/hosts.allow に次を追加します.

portmap: 192.168.0.1 127.0.0.1
lockd:   192.168.0.1 127.0.0.1
statd:   192.168.0.1 127.0.0.1

これで,サーバのみが portmap, statd, lockd にアクセスできるようになりました.

ちなみに,サーバ側の /etc/hosts.deny と /etc/hosts.allow は次のようになります.

[/etc/hosts.deny]
 portmap: ALL
 lockd:   ALL
 rquotad: ALL
 mountd:  ALL
 statd:   ALL
[/etc/hosts.allow]
 portmap: 192.168.0.0/24 127.0.0.1
 lockd:   192.168.0.0/24 127.0.0.1
 rquotad: 192.168.0.0/24 127.0.0.1
 mountd:  192.168.0.0/24 127.0.0.1
 statd:   192.168.0.0/24 127.0.0.1

(追記: 2006/05/29) クライアントとサーバの /etc/hosts.allow にローカルループバックアドレス 127.0.0.1 を追加しました.ループバックアドレスがない場合,

rpc.statd[3833]: Can't callback 127.0.0.1 (100021,4), giving up.
rpc.statd[3833]: recv_rply: [127.0.0.1] RPC status 5
のようなログを出します.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count