和訳 OpenBSD FAQ 6.7 - Simple NFS usage

release(8) に続き第2弾


このとおりにやってもPermision deniedなってうまくいかんかったが。
気にしない気にしない。



http://www.openbsd.org/faq/faq6.html#NFS

オリジナルは上記URLのドキュメントです。
上記URLのドキュメントの一部を日本語訳したものです
 翻訳した内容について一切の保証はありません。



6.7 - Simple NFS usage NFSの単純な使い方

NFS、Network File System はネットワーク越しでファイルシステムを共有するために使われる。NFSサーバのセットアップに取りかかる前に読んでおくmanページをいくつか示す

このセクションは単純なNFSのセットアップのためのステップを通過するだ
ろう。この例はあるLAN上のクライアントがそのLAN上でNFSアクセスする サーバの詳細を説明する。ここでは安全を考慮したNFSについ
ては述べない。あなたがすでにパケットフィルタリングあるいはその他のファイヤーウォール防御をセットアップして外部アクセスを禦いでいることを想定す
る。あなたがNFSサーバへ外部アクセスを許可していて、敏感なたぐいのデータをその上に格納するなら、我々はIPsecの採用を強く勧める。さもなく
ば、他の人があなたのNFSトラフィックを潜在的に見ることができる。あなたのNFSサーバへ許可している
IPアドレスを誰かが偽装することだってあり得る。そのような結果になるような攻撃はいくつかある。適切に設定されたIPsecはこれらのタイプの攻撃に対して防御する。


う一つ重要な安全上の注意。 許可ホストのリストをせず
/etc/exportsへファイルシステムを追加してはならない。個別のディレクトリをマウントできる
hostsのリストなしでは、あなたのホストへ到達可能な誰もが NFS exports をマウントできてしまうだろう。


portmap(8) はNFS を実行するために起動していなければならない。 Portmap(8) はOpenBSDではデフォルトでOffになっているのでブート時に開始するには rc.conf.local(8)に下記を追加しなくてはならない。

portmap=YES
 手動で起動することもできる:
# /usr/sbin/portmap
セットアップはIP 10.0.0.1 をもったサーバから成る。このサーバは そのネットワーク内のクライアントのためだけにNFSを提供するだろう。NFSセットアップの最初のステップは/etc/exportsファイルを作ることである。 このファイルはあなたがNFS経由でアクセス可能にしたいと思うファイルシステムのリストとそこへ誰がアクセスできるかのかを定義する。/etc/exportsファイルにおいてあなたが用いることのできるオプションは数多くあり、 それには 
exports(5)
man ページを読むのがもっともよい。この例ではこんな風な
/etc/exportsがあるとする。
#
# NFS exports Database
# See exports(5) for more information. Be very careful, misconfiguration
# of this file can result in your filesystems being readable by the world.
/work -alldirs -ro -network 10.0.0 -mask 255.255.255.0

これが意味するところは ローカルファイルシステム/workがNFS経由で使用できることをである。-alldirsはクライアントが /work マウントポイントの下でどのポイントもマウントできるよう指定する。 -roはそれがRead-Onlyでマウントされることを許可する。最後の2項目はネットマスク255.255.255.0 の ネットワーク10.0.0.0 内でのクライアントのみが、このファイルシステムをマウントするように認証される事を指定している。このことは異なるネットワークへアクセスできるようなサーバにとって重要である。

まず /etc/exports f
ファイルをセットアップしたら、あなたは先に進んでNFSサーバのセットアップすることが出来る。
あなたはカーネル構成においてNFSSERVERとNFSCLIENTのオプションを最初に確認すべきだ。(GENERICカーネルはこれらのオプション
を持っている。)次に下記の行を/etc/rc.conf.localに加えるべきだ。

nfs_server=YES

れでリブート時にnfsd(8)とmountd(8)の両方を立ち上げるようになる。今、このまま進んで自分で起動することもできる。これらのデーモンは
rootで起動する必要があり、あなたはportmap(8)がシステムで動作していることを確認する必要がある。 ここでは
��つのデーモンを使用するTCPとUDP両方を提供する nfsd(8)が起動する例 を示す。あなたはNFSサーバの適切な数を
あなたが提供したい最大クライアントユーザ数にあわせてセットすべきだ。
# /sbin/nfsd -tun 4

nfsd(8)サーバを起動するだけでなく、あなたはmountd(8)も開始する必要がある。これはNFS上でマウント要求を実際に提供するデーモンである。mountd(8)を起動するためには空のmountdtabファイルの存在を確かめて、デーモンを開始する。

# echo -n >/var/db/mountdtab
# /sbin/mountd

もしすでにNFS稼働中に/etc/exportsを変更するなら、mountdにこの変更を気づかせる必要がある。HUPするだけである。

# kill -HUP `cat /var/run/mountd.pid`

Checking Stats on NFS



ここからは すべてのデーモンが起動していてRPCに登録されているかを確認することができる。そのためには rpcinfo(8)を使う。

$ rpcinfo -p 10.0.0.1
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 633 mountd
100005 3 udp 633 mountd
100005 1 tcp 916 mountd
100005 3 tcp 916 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
通常の使用において、NFSについて何が起きているかを見えるようにする2,3の他のユーティリティがある。その一つがshowmount(8),
で、現在 何がマウントされて誰がマウントしているかを眺めることができる。 nfsstat(8)もそうで、より多くの冗長な統計を表す。
showmount(8) を使うアメには、/usr/bin/showmount -a ホスト名   を打ってみる。たとえば、
$ /usr/bin/showmount -a 10.0.0.1
All mount points on 10.0.0.1:
10.0.0.37:/work

Mounting NFS Filesystems  NFSファイルシステムのマウント

NFSファイルシステムはmount(8)、もっと限定するならmount_nfs(8) を通じてマウントされるべきである。ホスト 10.0.0.1上のファイルシステム/workをローカルファイルシステム/mntにマウントするには こうする (あなたはかならずしも IPアドレスを使う必要はない。mountはホスト名を解決する)

# mount -o ro -t nfs 10.0.0.1:/work /mnt
ブート時にあなたのシステムにマウントをさせるには、/etc/fstab にこんな風に追加する。
10.0.0.1:/work /mnt nfs ro 0 0

行の最後に 0 0を使うと、ブート時にコンピュータはNFS ファイルシステムに対してfsckを行うとしないので重要だ。noexec と nodev、nosuidといったような 他の標準のセキュリティオプションも適用可能な場所で使われるべきだ。次のように:

10.0.0.1:/work /mnt nfs ro,nodev,nosuid 0 0
この方法なら NFSサーバ上のデバイス あるいはsetuidプログラムはNFSクライアント上でのセキュリティ対策を壊さない。あなたがNFSクライアントで動くと思っているプログラムをマウントしていないなら、noexecをこのリストに加える。

コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに

何が得られて何処へ向かうかだけを問うべき