Linuxなどのメモ書き
リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

 

検索

Adsense

nfs設定


Rev.6を表示中。最新版はこちら

1. 概要

NFSの設定に関するメモ。iptablesでファイアウォールを動作させている時のポートの固定の仕方など。

2. 前提

Fedora Core 6環境で行ったので、RedHat系以外だと設定ファイルなどが異なる場合がある。nfs-utils,autofsはインストール済みであるものとする。

3. 構成

図1に示すような構成にする。


図1 ネットワーク構成

  • NFSサーバーはserv00
  • serv00は/exportを公開する
  • 接続を許すホストは192.168.0.0/24のホスト
  • nfsはTCP接続を使用する


4. NFSサーバー(serv00)の設定

4.1 公開ディレクトリの設定

NFSで公開するディレクトリを/etc/exportsに追加する。

/etc/exports

#<公開するディレクトリ>  <接続を許すホスト><オプション>
/export     192.168.0.0/24(rw,all_squash,sync)

編集したら'/usr/sbin/exportfs -r'として、設定を反映させる。現在の設定は'/usr/sbin/exportfs -v'で確認できる。

4.2 接続ホストの指定

NFS接続を許すホストを指定する。指定したホストだけに接続を許可するため、/etc/hosts.denyで全てのアクセスを拒否する設定を行い、/etc/hosts.allowでNFSに関連するデーモンについて192.168.0.0/24からのアクセスを許可する。

/etc/hosts.deny
ALL: ALL
/etc/hosts.allow
portmap lockd rquotad mountd statd: 192.168.0.0/255.255.255.0

4.3 NFSの動作開始

NFSのサービスを開始する。

# /etc/init.d/nfs start

起動時に自動でNFSサービスが起動するように設定する。

# /sbin/chkconfig --level 345 nfs on
# /sbin/chkconfig --list nfs
nfs             0:off   1:off   2:off   3:on    4:on    5:on    6:off

以上でサーバー側の設定は完了。ただし、iptablesでファイアウォールを動かしている場合はNFS関連の通信を通すように設定する必要がある(4.4参照)。

4.4 ファイアウォール環境の場合

NFSサーバーでiptablesを設定している場合はNFS関連の通信を通すように設定する必要がある。iptablesで通信を許可するにはNFS関連のデーモンで使用するポートを指定する必要がある

表1 各プロセスを使用ポート
プロセス
使用ポート
nfsd

portmap

rpc.mountd item
rpc.statd



/etc/sysconfig/nfs

/etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -s 192.168.0.0/24 -m tcp -p tcp \
     -m multiport --dports 111,2049,2050,2051,2052 -j ACCEPT
<== 追加行
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
青字以外のエントリはFedora Core6インストール時に「ファイアウォール有り」を指定した時の設定のまま。

iptablesの設定を読み込む。
# /etc/init.d/iptables restart

5. NFSクライアント(client00)の設定

5.1 静的mount

client00:/serv00をserv00:/exportにマウントするには以下のようにする。(/serv00ディレクトリは作成しておくこと)

# mount -t nfs serv00:/export /serv00/
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda1             99188468  46142908  47925648  50% /
/dev/shm                500504         0    500504   0% /dev/shm
/dev/hda3            135325776   4109968 124230748   4% /home
serv00:/export       234443424  19734272 202607936   9% /serv00
<== mountされている

起動時に自動でmountさせるには/etc/fstabにエントリを追加しておけばよい。

/etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
LABEL=/home             /home                   ext3    defaults        1 2
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda2         swap                    swap    defaults        0 0
skylancer00:/export     /serv00                 nfs     tcp,hard        0 0

5.2 autofsによる動的mount

5.1の方法だと/serv00にアクセスしなくても常時mountされている状態になる。アクセスのあった時に動的にマウントさせたい場合はautofsを使用する。

/etc/auto.masterに既に登録すみのauto.miscを修正して、client00:/misc/serv00からserv00へNFSマウントする場合、以下のエントリをauto.miscに追加する。

/etc/auto.misc

serv00          -fstype=nfs,tcp,hard    serv00:/export
設定ファイルを修正したら設定を反映させる。
# /etc/init.d/autofs reload

以上で/misc/backup以下にアクセスすると自動でNFSマウントされるようになる。
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda1             99188468  46142908  47925648  50% /
/dev/shm                500504         0    500504   0% /dev/shm
/dev/hda3            135325776   4109980 124230736   4% /home
<== マウントされていない
# ls /misc/backup/
<== アクセス発生
# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda1             99188468  46142908  47925648  50% /
/dev/shm                500504         0    500504   0% /dev/shm
/dev/hda3            135325776   4109980 124230736   4% /home
skylancer00:/backup/tank
                     234443424  19734336 202607872   9% /misc/backup
<== マウントされている
#



最終更新 2007/01/16 14:34:59 - kztomita
(2007/01/16 13:28:51 作成)
添付ファイル
nfs_env.png - kztomita