NFSでネットワーク越しにマウント

SuseLinux10.3(chihaya) をサーバにして、 LAN内のSuseLinux10.2(mingosu) からディレクトリを NFS でマウントしてみた。

前提

chiyaha(サーバー)のIPアドレスは 192.168.1.10 で、 mingosu(クライアント) のIPアドレスは 192.168.1.20 とする。

今、 chihaya の /home/test/nfs_test を mingosu の /home/test/nfs_test_mnt にする。システム上でのユーザIDが同一でないとエラーになる ということだったのだけど、たまたま同じIDのユーザがいたので、そのユーザで作業を行う。

サーバ側の設定

nfs の設定

chihaya 側で、マウントされるディレクトリの設定を行う。

/etc/exports に以下のように追加。

/home/test/nfs_test 192.168.1.20(rw,no_subtree_check)

これで、192.168.1.20 から /home/test/nfs_test をマウントできるようになる。

アクセス元を制限する

しかし、これだけではセキュリティ的に良くないらしいので、 hosts ファイルでアクセス元を制限する。

/etc/hosts.deny で、サービスに対して特定のホストからのアクセス以外を拒否したい。

portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

これで全部ふさいで、次に /etc/hosts.allow で許可する。

portmap:192.168.1.20
lockd:192.168.1.20
mountd:192.168.1.20
rquotad:192.168.1.20
statd:192.168.1.20

これで設定は完了。

起動

nfsserver のサーバを立ち上げる。

# /etc/init.d/nfsserver start
Starting kernel based NFS server                                     done

成功したらこんなメッセージになるはず。

エクスポートされている一覧

# showmount -e localhost

とすると、現在エクスポートされているものが見れる。

/home/test/nfs_test 192.168.1.20

クライアント側の設定

mingosu の設定は、まずマウントポイントの作成。

$ mkidr /home/test/nfs_test_mnt
$ mountpoint -d /home/test/nfs_test_mnt

これでマウントポイントが作られる。

あとは、普通にマウントするだけ。

# mount 192.168.1.10:/home/test/nfs_test /home/test/nfs_test_mng

これでマウントされたはず。以下のようにすれば確認できる。

$ mount
....略
192.168.1.10:/home/test/nfs_test on /hoome/test/nfs_test type nfs(rw,addr=192.168.1.10)

エラーが出た時

サーバ側でうまく設定出来ていない場合

mount: mount to NFS server '192.168.1.10' failed: RPC Error: Program not registered.

サーバがうまく動いてない時、このエラーが出ます。きちんと export 出来てるか、確認します。設定が反映されていないかもしれないので、以下のコマンドを実行してきちんと反映させます。

$ /usr/sbin/exportfs -a
$ /etc/init.d/nfsserver restart

portmapが動いていない場合

mount.nfs: Input/output error

クライアント側でportmapが動いていなかったらしく出ました。サーバ側も必要…なのかな?

$ /usr/sbin/portmap start

これで、完成です。

mingosu の /home/test/nfs_test_mnt に chihayaの /home/test/nfs_test がマウントされました👏🏻

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です