手当たり次第に書くんだ

飽きっぽいのは本能

目次に戻る

概要

NFSを構築します。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

標準ポート番号

TCP:2049 (NFSv4)

設定

インストール

nfs-utilsをインストールします。nfs-utilsにNFSサーバーが含まれます。

[root@centos ~]# dnf install nfs-utils

/etc/idmapd.conf

idmapd.confのデフォルト値

コメント行等をしたidmapd.confは下記の通りです。

[General]

[Mapping]

[Translation]

[Static]

[UMICH_SCHEMA]
LDAP_server = ldap-server.local.domain.edu
LDAP_base = dc=local,dc=domain,dc=edu

idmapd.confの設定

[General]セクションのDomainのみ設定しています。この設定はNFSサーバーにアクセスするクライアントでも設定しておきましょう。それ以外の必要の無い空のセクションは削除しています。[UMICH_SCHEMA]セクションは内のLDAP関連設定は、[Translation]セクション内でumich_ldapが指定されていなければ不要な為、削除しています。

[root@centos ~]# vim /etc/idmapd.conf
[General]
Domain = si1230.com

/etc/nfs.conf

nfs.confのデフォルト値

コメント行等を削除したnfs.confは下記の通りです。

[general]

[exportfs]

[gssd]
use-gss-proxy=1

[lockd]

[mountd]

[nfsdcld]

[nfsdcltrack]

[nfsd]

[statd]

[sm-notify]

nfs.confの設定

本稿ではNFSv4のみ使用したい為、[nfsd]でFSv2/v3を無効化しています。それ以外の必要の無い空のセクションは削除しています。[gssd]セクションは簡単に説明できるような内容では無かったので細かい点は省略しますが、動作上は不要でしたので削除しています。

[root@centos ~]# vim /etc/nfs.conf
[nfsd]
vers2=no
vers3=no

/etc/exports

exportsはNFSが公開するディレクトリを定義する設定ファイルです。デフォルト値は空です。

[root@centos ~]# vim /etc/exports
/share/dir1 10.0.0.0/24(rw,no_root_squash)
/share/dir1
公開するディレクトリです。
10.0.0.0/24
アクセスを許可するネットワークです。
rw
アクセス権です。rwは読み込みと書き込みを許可しています。デフォルト値はroで読み込みだけが許可されます。
no_root_squash
後述します。

squashについて

squashは押しつぶす意味で、NFSではユーザーの権限を下げる(押しつぶす)意味で使われています。NFSのセキュリティ設定は主に送信元ネットワークの指定とsquashの設定になりますが、基本的にはサーバー/クライアント共に同じユーザー/グループを設定して利用することが適切だと思います。

root_squash
root権限でアクセスした際にnobodyユーザーとして扱われます。
no_root_squash
root権限でのアクセスを許可しています。
all_squash
全てのユーザーはnobodyユーザーとして扱われます。

サービス起動設定

NFSサーバーを起動します。

[root@centos ~]# systemctl enable --now nfs-server.service
[root@centos ~]# systemctl status nfs-server.service

補足

こちらからの引用です。実際に試してはいませんがexportsの書き方で下記のように挙動が変わるようです。スペース1つだけなのでかなり分かりづらいですが、確かにスペースを空けると別の設定になりますよね(同じディレクトリに対して複数のホストを許可する場合はスペース開けて設定する為)。意図しない設定をしているサーバーが結構ありそうです。

/etc/exports ファイルの形式は、特に空白の使用に関しては非常に厳格です。常にホストとエクスポートされるファイルシステムの間、およびホスト同士の間を空白で隔離することを忘れないでください。しかし、コメント行以外では、ファイル内の他の場所には空白が存在すべきではありません。

たとえば、以下の2つの行は同じ意味ではありません。

/home bob.example.com(rw) 
/home bob.example.com (rw)

最初の行は bob.example.com からのユーザーにのみ /home ディレクトリーへの読み込み/書き込みアクセスを許可します。2番目の行は bob.example.com からのユーザーにディレクトリーを読み込みのみで(デフォルト)マウントを許可して、他の人々には読み込み/書き込みでマウントすることを許可します。

目次に戻る

CentOS 8 NFS サーバー構築

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る