概要
このセクションでは、NFSv4およびCIFS(SMB)のネットワークファイルシステムに関するセキュリティ、設定、および管理の知識が問われます。特に、認証・アクセス制御・セキュリティ機構についての理解と、Linuxでの実装・運用経験が重要です。
1. NFSv4(Network File System version 4)
1.1 NFSv4の特徴とセキュリティ改善
- ポート番号が固定(TCP/2049)され、ファイアウォールの設定が容易
- Kerberosによる認証サポート
- 擬似ファイルシステム(Pseudo Filesystem)の導入:クライアントに対して安全なエクスポートツリーを提供
- ACL(Access Control List)のサポート(POSIX ACLより柔軟)
1.2 NFSv4のサーバー設定手順
/etc/exports の記述例:
/exports/data 192.168.1.0/24(rw,sync,fsid=0,no_subtree_check,sec=krb5p)
fsid=0: 擬似ファイルシステムのルートsec=krb5p: Kerberos + パケット暗号化による認証
サービス起動:
systemctl enable nfs-server
systemctl start nfs-server
exportfs -rav
ファイアウォール開放:
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload
1.3 クライアント設定
マウント例:
mount -t nfs4 -o sec=krb5p server:/ /mnt/nfs
認証(Kerberos)を有効にするには:
kinit ユーザー名
1.4 NFSv4の認証方式
| 認証方式 | 内容 |
|---|---|
| sys | 従来方式(UID/GIDベース) |
| krb5 | Kerberosベースの認証 |
| krb5i | 認証+完全性保護(Integrity) |
| krb5p | 認証+暗号化(Privacy) |
1.5 NFSv4 ACLの使用
nfs4_setfacl -a A::ユーザ名:rw /mnt/nfs/test.txt
nfs4_getfacl /mnt/nfs/test.txt
2. CIFS(Common Internet File System)
2.1 CIFSの概要
- Microsoft系ファイル共有プロトコル(SMBと同義)
- Linuxでは
mount.cifsを使用 - Windowsネットワークとの連携に最適
- 認証:NTLMやKerberosが使用可能
- SID(Security Identifier)とLinux UID/GIDのマッピングが必要
2.2 CIFSクライアント設定
マウント例:
mount -t cifs //server/share /mnt/smb -o username=ユーザー,password=パスワード,sec=krb5
sec=krb5: Kerberos認証(winbind設定が必要)sec=ntlm: パスワードによる認証
セキュリティモードとパラメータ
| オプション | 説明 |
|---|---|
| uid, gid | 所有者とグループのマッピング |
| file_mode | ファイルのパーミッション設定 |
| dir_mode | ディレクトリのパーミッション設定 |
| sec | 認証モード(ntlm, kerberos など) |
2.3 CIFSのACLとSID処理
ACLの取得・設定
getcifsacl /mnt/smb/test.txt
setcifsacl -a "ACL:ユーザー:ALLOWED/0x0/FULL" /mnt/smb/test.txt
SIDマッピング(winbindによる)
apt install winbind
/etc/nsswitch.conf に以下を追加:
passwd: files winbind
group: files winbind
3. 設定ファイルとユーティリティ一覧
| ファイル・コマンド | 用途 |
|---|---|
/etc/exports | NFSのエクスポート設定 |
/etc/idmap.conf | UID/GIDと名前のマッピング設定 |
mount.cifs | CIFS共有のマウント |
getcifsacl, setcifsacl | CIFS共有におけるACL操作 |
nfs4_setfacl, nfs4_getfacl | NFSv4 ACL操作 |
winbind | Windows認証との連携 |
4. 試験対策のポイント
- NFSv4とCIFSの違いを明確に理解する。
- Kerberos認証やACLの具体的な設定手順を把握しておく。
- 実際に環境を構築し、ファイル共有→ACL設定→アクセス確認を体験しておくと理解が深まります。
章末問題(四択)
問題 1: NFSv4でKerberos認証を使用し、パケットの完全性保護を有効にするにはどのオプションを使いますか?
A. sec=sys
B. sec=krb5
C. sec=krb5i
D. sec=krb5p
解説
正解:C
krb5i はKerberos認証に加え、通信内容の整合性(Integrity)保護を提供します。
問題 2: CIFSマウントにおいて、WindowsユーザーのSIDとLinuxのUIDを関連付けるために使用されるサービスはどれですか?
A. sssd
B. winbind
C. nfs-utils
D. slapd
解説
正解:B
winbindはWindowsのSIDをLinuxのUID/GIDにマッピングするために使われます。
問題 3: NFSv4の擬似ファイルシステムのルートを指定するために必要な/etc/exportsの設定はどれですか?
A. root=yes
B. fsid=0
C. default_root=true
D. pseudofs=yes
解説
正解:B
fsid=0を指定することで、擬似ファイルシステムのルートディレクトリとして認識されます。
問題 4: NFSv4でアクセス制御リストを確認するコマンドはどれですか?
A. getfacl
B. getacl
C. nfs4_getfacl
D. showacl
解説
正解:C
nfs4_getfaclはNFSv4 ACLを確認するための専用コマンドです。
コメント