RH333 Unit 6 - Network File System

一、目标:

    1. 回顾NFS协议及其缺陷

    2. 理解如何配置NFSv4的服务器和客户端

    3. 使用Kerbeross来保证NFS认证和传输的加密

    4. 研究SELinux和NFS之间如何影响

    5. NFS配置问题排错

    二、NFS服务配配置:

    1. 类型:System V-launched service

    2. 软件包:nfs-utils

    3. Daemons:nfsd、rpc.mountd、rpc.statd、lockd、rpc.idmapd、rpc.gssd、rpc.svcgssd

    4. 脚本:nfs、nfslock、rpcidmapd、rpcgssd、rpcsvcgssd

    5. 端口:2049/tcp和2049udp(nfsd)、其它端口随机(通过portmap(111/tcp和111/udp)映射)

    6. 配置:/etc/exports、/etc/sysconfig/nfs、/etc/idmapd.conf

    7. 额外:portmap、krb5-workstation、util-linux

    三、NFS挂载类型:

    1. NFSv2:采用UDP协议传输

    2. NFSv3:安全的异步传输、支持TCP协议、64-bit文件大小、大文件的读写、支持一部分Kerbeross特性

    3. NFSv4:支持更完整的附加协议、UTF-8文件编码、提升用户映射支持、提升了锁机制、提升了客户端的缓存、支持完整的Kerbeross功能

    四、挂载并使用NFSv3的步骤详解:

    1. 客户端询问服务器的portmap,获取rpc.mountd端口

    2. 客户端询问服务器的rpc.mountd,获取导出的文件系统和权限

    3. rpc.mountd分发给客户端访问文件系统的句柄(也就是告知客户端如何访问文件系统)

    4. 客户端使用句柄通过服务器的nfsd服务来进行访问和改变文件系统

    5. 通过lockd和rpc.statd服务来进行文件锁管理

    五、系统认证和用户认证

    1. 程序是通过挂载的NFS文件系统来访问文件的

    2. NFS客户端通过NFS请求来访问NFS服务器的时候包含了程序的UID和GID

        (1) NFS服务器相信客户端发送精确的UID/GID信息

        (2) 在服务器与客户端假设相同的用户UID和组GID信息

    3. NFS服务器使用UID/GID信息控制访问

    六、控制系统认证名字映射

    1. 如果可能,使用中心认证方式

        (1) 使用中心NIS或者LDAP服务保证服务器与客户端的UID和GUI映射的一致性

    2. 在/etc/exports使用适当的选项

        (1) root_squash:root映射UID和GID为65534(nfsnobody)

        (2) all_squash:映射所有UID和GID为65534(nfsnobody)

    七、基本共享安全

    1. 不要共享包含服务器配置文件的目录

    2. 共享全部的文件系统考虑使用subtree_check

    3. 除非必须,否则不要使用no_root_squash选项

    4. 共享文件系统时,小心使用crossmnt和nohide选项

    八、NFSv3漏洞

    1. 辅助协议使用随机端口,配置防火墙较为复杂

    2. 客户端认证是通过主机名或IP地址

    3. 服务器信任认证的客户端

    4. 明文传输协议容易导致内存篡改和窃取

    5. 以root身份运行复杂的服务

    九、NFSv3中使用静态的端口

    1. 通过设置静态端口为辅助NFS服务简单进行防火墙配置

    2. 默认情况下,nfsd使用TCP和UDP的2049端口

    3. 编辑/etc/sysconfig/nfs:

LOCKD_TCPPORT=888 


LOCKD_UDPPORT=888 


MOUNTD_PORT=889 


STATD_PORT=12001 

    4. 通过rpcinfo -p命令核实端口

相关推荐