xserver
Home クッキー及びWeb ビーコンについて



DHCPサーバーの構築

NFS(Network File System)の概要

 NFS(Network File System)を使う事によって、 リモートマシンのディスクパーティションをあたかもローカルのハードディスクのようにマウントすることができるようになります。




■NFS サーバーの前準備

 まず、NFSサーバーとして動作させるためには、以下のパッケージが必要となりますので予めインストールされているかどうか確認して置いてください。

$ rpm -q portmap nfs-utils



■自動起動の設定

 システム再起動時に、自動的に起動するように設定します。

# chkconfig portmap on
# chkconfig nfslock on
# chkconfig nfs on

 上記3つのサービスは起動する順番があり、portmap→nfslock→nfs の順に起動するようになっている必要があります。以下コマンドを入力して確認しておきましょう。

# ls /etc/rc.d/rc3.d/*{portmap,nfs*}
/etc/rc.d/rc3.d/S13portmap /etc/rc.d/rc3.d/S14nfslock /etc/rc.d/rc3.d/S60nfs

■portmap、nfslock、nfsの起動

 それでは、実際に上記の順番どおり起動してみましょう。

# /etc/init.d/portmap start
Starting portmapper: [ OK ]
# /etc/init.d/nfslock start
Starting NFS statd: [ OK ]
# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]

■プロセスの起動確認

 プロセスが正しく起動されたかどうかを確認するには、rpcinfo コマンドを使用します。以下のように、rquotad、nfs、nlockmgr、mountd が表示されればOKです。

# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32771 status
100024 1 tcp 35865 status
100011 1 udp 715 rquotad
100011 2 udp 715 rquotad
100011 1 tcp 718 rquotad
100011 2 tcp 718 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100021 1 udp 32772 nlockmgr
100021 3 udp 32772 nlockmgr
100021 4 udp 32772 nlockmgr
100021 1 tcp 35866 nlockmgr
100021 3 tcp 35866 nlockmgr
100021 4 tcp 35866 nlockmgr
100005 1 udp 734 mountd
100005 1 tcp 737 mountd
100005 2 udp 734 mountd
100005 2 tcp 737 mountd
100005 3 udp 734 mountd
100005 3 tcp 737 mountd



■TCP Wrapperによるアクセス制御

 portmap は、NFSサーバーにアクセスする際に、libwrap.so を使用しているため、/etc/hosts.allow、/etc/hosts.deny を用いて、TCP Wrapperの機能を使用する事ができるようになります。LAN 内のみからのアクセスを許可する場合には、以下のように設定しておきます。

◎/etc/hosts.allow
# vi /etc/hosts.allow
portmap : 172.16.50.0/255.255.255.224

//ホストを指定する場合は、
portmap : 172.16.51.2 , 172.16.51.3

/etc/hosts.deny をに単に「ALL:ALL 」と記述する方法もありますが、この場合、明示的に許可されたホスト以外は全てのサービスを拒否する事になってしまうので、新規ソフトウェアをインストールした場合などにトラブルの元となるので、NFS 関連のデーモンをひとつづつ追加しておいた方が無難です。

◎/etc/hosts.deny
# vi /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

■/etc/exports の設定

 /etc/exports は、どのマシンに、どのディレクトリを、どのような権限でアクセス許可するかを設定するファイルです。書式は以下の通りです。

エクスポートするディレクトリ アクセスを許可するクライアント(権限)

 実際には以下のようになります。以下は、「/home/data ディレクトリを172.16.50.0/27 のネットワークに読み取りを許可する」という意味になります。

# vi /etc/exports
/home/data 172.16.50.0/255.255.255.224 ro

 なお、使用できる権限オプションを以下に記すので参考にしてください。

◎オプション
 ro 読み取りのみ許可する
 rw 読み取りと書き込みを許可する
 noaccess エクスポートしたディレクトリ以下のディレクトリにアクセスできないようにする。このオプションでは、単独では意味がないので、通常は他のエントリと組み合わせて使用します。

 link_relative 絶対パスで指定されているシンボリックリンクを相対パス指定に変換する。通常はあまり使用するべきではありません。

 root_squash エクスポートされたディレクトリに対して、root 権限ではアクセスできないようにする。

 no_root_squash エクスポートされたディレクトリに対して、root 権限でアクセスできるようにする。

 squash_uids=n-m UIDがn から m のユーザーは、エクスポートされたディレクトリに対してそのままのUID ではなく、nobody ユーザーとしてしかアクセスできないようにする。

 all_squash root を含めて全てのユーザーがnobody ユーザーにマッピングされる

 以下に、簡単に設定例をあげてみます。以下、1行目では、/usr/local/src を kororo.jp ドメインのユーザーにのみ読み取りだけを許可し、0から499 までのユーザーに対しては、nobodyユーザーとしてアクセスさせています。3行目は、/export/home ディレクトリを自ネットワークのマシンのみに読み書きを許可し、0から499 までのユーザーに対しては、nobodyユーザーとしてアクセスさせる設定になっています。

# vi /etc/exports
/usr/local/src *.kororo.jp(ro,squach_uids=0-499)
# mkdir -p /export/home/admin
/export/home 172.16.50.0/255.255.255.224(rw,squach_uids=0-499)

■設定の更新 [ exportfs ]


 /etc/exports ファイルを編集しなおした場合、exportfs コマンドを使用して、設定の変更を反映させます。このコマンドを実行しない限り設定は反映されないので注意してください。

# exportfs -ra

■設定の確認

 設定を確認するには、showmount コマンドを使用します。

# showmount -e
Export list for ns1.kororo.jp:
/usr/local/src *.kororo.jp
/export/home 172.16.50.0/255.255.255.224

 -a 全てのマウントポイントを表示する
 -d 共有しているディレクトリ名のみ表示する
 -e ディレクトリを共有可能な相手を表示する



■クライアントマシンからマウントする

 クライアントマシンからマウントを実行するには、mount コマンドに-t オプションを付加し、nfs を指定します。ns1:/home/kororo は、「NFSサーバー名:エクスポートするディレクトリ」を指定します。マウントオプションを指定するには、-o オプションをつけてマウントオプションを指定します。

$ mount -t nfs -o rw ns1:/home/kororo /mnt/nfs

◎NFS特有のマウントオプション
 nolock NFSロックを無効化(ロックをサポートしていない古いNFS用)
 bg 最初のNFSマウントがタイムアウトになった場合、バックグラウンドでマウントを継続する
 fg 最初のNFSマウントがタイムアウトになった場合、フォアグラウンドでマウントを継続
 soft ソフトマウントを実行
 hard ハードマウントを実行
 retry NFSマウントの試行を中止するまでの時間を分単位で指定する。
 intr ハードマウント時に割り込みを受け付ける
 rsize 読み取りのバッファサイズをバイト単位で指定する
 wsize 書き込みのバッファサイズをバイト単位で指定する

■ソフトマウントとハードマウント



■トラブルシューティング

 マウントできない場合の主な対処方法について簡単に記しておくので参考にしてください。

1. クライアント上のUID とサーバー上のUID を一致させる

 NFSにおいては、クライアント上でのUID及びGIDがサーバー上でも利用されるため、クライアントとサーバ間でUID及びGIDの同期が取れていなければ、NFSサーバ上では別のユーザーとなってしまう可能性があります。なので、クライアントとサーバでは同じUID及びGID を使うようにしましょう。なお、NIS(Network Infomation System)を使用すると、このようなユーザー情報を統合的に扱う事ができるようになります。

2.exportfs を実行したかどうか

 /etc/exports を編集した場合は、必ず、exportfs -ra コマンドを実行して変更を反映させてあげる必要があります。

# cat /proc/fs/nfs/exports
/home/kororo ns2.kororo.jp(rw,root_squash,sync,wdelay) # 172.16.50.3







TOPに戻る

Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円~30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: