一、目標:
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命令核實埠
本文出自 「放飛翅膀,追求夢想」 博客,請務必保留此出處http://flykite.blog.51cto.com/4721239/853237
[火星人 ] RH333 Unit 6 - Network File System(1)已經有824次圍觀