LINUX下的NFS介绍
□ NFS 的网路安全的
NFS 使server上的档案能被client所取用, 乍看之下好像server 上的档案任何人都可取用没什麽保护性, 其实不是如此的. 一开始server要 exportfs 之前在 /etc/exporrc 中就已经设定了档案的使用权限, 像
/usr/src -access=engineering:accounting
就是限定只有 rcgineering 和 accounting 这两台 client 才能 mount
/usr/src
/usr/src -access=oak,root=oak
这是说只有 oak 这台 cilent 能 mount这一个路径 且只有 oak client's superuser 才能行使 read & write 的权力
另外管理者为了维护 exported 和 mounted 的安全, 一定要建立公共(public)和私人(secret)的 key(password), 然而这些安全性问题是要建立在 NIS (network infomation system) 上的, 有一个/etc/publickey档 ,里面记录了public and secret keys , 而这些key是依照 machine_name 和 user_name ,以16 进位码表示出来的, 管理者可在有NIS的机器上用
newkey -u username 给予user login 权力
newkey -h hostname 造出login 此机器时所需的password
在NFS刚安装时 user 是 "nobody" 任何人都可以进入, 所以管理者一定要做修改, 以保护资料的安全.
当使用者为 nobody 时 publickey 的内容
netname user's public key : user's secret key
nobody 3d91f44568fbbefada5a7:7675cd9b8753b5db09dabf12
在管理者给予user权力之後, user 就可使用 chkey 修改自己的secret key 创造自己的帐号路口,
willow% chkey
Generating new key for username
password : <enter password>
Sending key change request to server ...
Done.
willow%
所设定的password 是使用者位於 NIS 中的加密键 , 当我们login 时NIS 就会将此密码解开,(因为publickey中是以16进位码记录) , 存放到keyserv 里加以保管, 再将加密键传给client , 当client 发出请求时,此键会附在每个NFS 请求上一起送到 NFS server 上, 当加密键和server上所保存的keyserv核对无错後, 请求就会被接受
□ When fail to mount server
1. 用 rpcinfo -p server_name 去查看此server是否存在
2. 用 rpcinfo -u server_name mount 查看mountd daemon 是否有在server上执行
3. 假如server 都没问题,检查 server 和 client 之间的Ethernet connetions
4. 在client 上 用 ps ax 看portmap and several biod daemons running or not !
(rpcinfo : 用来对 RPC server 做 RPC 呼叫,回传远端程序呼叫过程中的讯息)
一些mount 失败的错误讯息
1. /etc/mtab : No such file or directory mtab 这一个路径或是档案必须存在,在mount之前
2. mount : ... Block device required 远端的机器名称可能打错了
3. mount: ... not found in /etc/fstab fstab 一定要存在,client 上 /etc下
4. ... not in hosts database /etc/hosts 没有这一个 hosts database , 或是NIS 的daemon, ypbind 没有在执行
5. Must be root to use mount 一般都只有 root 才能mount ,所以mount之前先成为superuser
6. Stale NFS file handle 当我们已经mount 上的file or directory ,在server上突然被remove or unexport ,就会出现此讯息