LANDISK HACKING DIARY | ||
Since2005/8/17 | ||
TOPへ戻る | ||
INDEX | ||||||||
1. NFSサーバの構築 2. クライアントからアクセスする 3. /etc/fstab に記述する 4. Permission denied で書込み権限がない場合 5. autofs による NFSファイルシステムへのオートマウント 6. 参考文献 |
||||||||
NFSサーバの構築 | ||||||||
LANDISKにNFSサーバーを立ててみる。いままではLinux搭載マシンは1台しかなかったのでほとんど使うことはなかったが、2台になったことでファイル共有も便利になるかもしれないという安易な考えの元にインストールしてみることにする。しかし、実のところ、NFS にはあまり必要性を感じていないのも事実。smbmount でも共有は可能なわけで、余計なサービスを立ち上げることになる分、セキュリティも下がるのでインストールするメリットもさほど感じられない。だが、自宅サーバーにおいては、LAN内に敵などいないのだから、NFSが開くポートを全てFirewall やルータで塞いでおけばとりあえずは問題ない(もっとも、ここを見ている方ならば必要なポートだけ開けているはずだが)。また、NFS+Samba を組み合わせた場合(つまり、export されたディレクトリをsamba で共有をかける)、Linux←→Linux ←→Windows という芸術的なファイル共有の連携が可能になるので、便利なことこの上ない。基幹サーバーを乗っ取られた時、それはもうNFSのセキュリティどうこうの問題ではなくもう諦めるしかないだろう(笑)。因みに、ユーザ管理が可能な NIS も同時に立てたいところだが、NISを起動させるだけでメモリを10MB以上くってしまうのでLANDISK上にインストールするのはちょっとかわいそう。かといって、別サーバにNISを立てても返って管理が面倒になりそうなのでなので今回は却下とする。 apt-get で nfs-kernel-server をインストールする。nfs-common と portmap も同時にインストールされる。調べていたら、nfs-user-server というものもあるようだが、どうも不具合も多そうなので、その拡張版としての nfs-kernel-server をインストールした。
次に、TCP Wrapper でアクセスできるサービス、ホストを制御する。ローカルネットワーク以外の全てのネットワークからこれらのサービスへのアクセスを禁止するようにしておく。
記述し終えたら、設定変更を知らせるコマンドをうちこむ。nfs-kernel-server の起動でも構わない。
設定を確認する。-e は、ディレクトリを共有可能な相手を表示する。-a は、全てのマウントポイントを表示する。-d は、共有しているディレクトリ名のみ表示する。rpcinfo 実行時に、portmapper, nfs, mountd が表示されれば正常に動作しています。vers の項目には、各サービスのバージョンが表示されており、どうやら SH4用の nfs はバージョン3 には対応していないようです。NFSもバージョン4の時代だというのに。しかも、オンリーUDP。
|
||||||||
クライアントからアクセスする | ||||||||
クライアントにもNFSクライアントをインストールする。 とりあえず、portmap だけインストールすればOK。
portmap を起動する。111ポート(rpcbind , or sunrpc)が開いたか確認する。
いざ、mount。なにも表示されなければ成功です。マウントしたディレクトリへ移動し、ファイルの読み書きができるか試してみよう。エラーが表示された場合は…とりあえず、ここを見ておきましょう。NFSは、一旦ハマリ始めたらとことんハマルので根気よく行きましょう。特に、「mount : RPC : Unable to receive; errno=Connection refused」のエラーがでた場合は、/etc/hosts.allow もしくは、/etc/hosts.deny の記述に原因があることも少なくないのでもう一度良く確認しておくこと。
NFS の mount に成功すると、クライアント側で 32774/tcp ポートが開く。だが、必ずしも 32774 というわけではなく、この周辺のポートが開くようになる。
⇒NFS クライアントの設定 |
||||||||
/etc/fstab に記述する | ||||||||
クラアイントマシンは、システム起動時に自動で NFS共有にマウントするように、/etc/fstab に以下のように記述しておく。dump スイッチと fsck 指定(最後の0)は、両方とも 0 にしておく。hard オプションをつけることで、NFSサーバがクラッシュし、復活した際に、クライアント側でも自動でマウントを再開してくれるようになる。また、ファイルシステムの破壊も防いでくれる。
|
||||||||
Permission denied で書込み権限がない場合 | ||||||||
書込み権限がない場合は、以下の項目をチェックする。rw になっていることを確認する。 ■サーバー側
■クライアント側
その他には、root でない場合に、書込みができないのは、サーバー側とクライアント側で、UID及びGIDが異なっている可能性があります。UID と GID はサーバー/クライアントで同期させなければならず、そんな面倒なことができないという場合には、NIS や NIS+ などのユーザ名の同期を行うソフトウェアを導入する必要がある。 |
||||||||
autofs による NFSファイルシステムへのオートマウント | ||||||||
autofs は ファイルシステムへのマウントを自動で行ってくれるソフトウェアのことです。CD-ROMや、Floppyへアクセスする際には、mount -t iso9660 なんちゃらと長ったらしいコマンドを打ち込まなければいけませんが、autofs ならば、そのディレクトリへアクセスするだけで自動的にマウント/アンマウント してくれるようになる。まず、autofs をインストールする。
設定ファイルは、/etc/auto.master と /etc/auto.misc がある。まず、/etc/auto.master を以下のように編集する。/var/autofs/misc というのは後述する/etc/auto.misc で指定する任意のマウントポイント先になる。--timeout は自動的にアンマウントする秒数を指定する。デフォルトは5分(?)かな。
次に、参照先のファイルとしての/etc/auto.master を以下のように編集する。場合によっては、既にexample が記述されているのでそれを参考にして随時コメントアウトすればよい。NFS の自動マウントの設定は2行目。セキュリティ面として、nosuid オプションをつけて、クライアントマシンがサーバーマシンを過度に信用し過ぎないように設定する。これによって、サーバー上のroot がクライアント上のroot 権限を奪取するということができなくなります。
autofs を再起動する。
実際にNFSのマウント先までアクセスする場合には、/var/autofs/misc/landisk まで行くことになるのでシンボリックリンクを張っておく(auto.master ファイルでPATHを短くしてもいい)。
実際に自動でアンマウントされるか確認してみる。
|
||||||||
参考文献 | ||||||||
LinuxJF NFS HOW-TO NFS(Network File System)の設定 |
TOPへ戻る | ||
Copyright © KORO All Rights Reserved. |