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