linux nfs,鸟哥的 Linux 私房菜 -- NFS 服务器

在 NFS 的安全性上面,有些地方是你必须要知道的喔!底下我们分别来谈一谈:

防火墙的设定问题与解决方案:

一般来说, NFS 的服务仅会对内部网域开放,不会对因特网开放的。然而,如果你有特殊需求的话,

那么也可能会跨不同网域就是了。但是,NFS 的防火墙特别难搞,为什么呢?因为除了固定的 port 111, 2049 之外,

还有很多不固定的埠口是由 rpc.mountd, rpc.rquotad 等服务所开启的,所以,你的 iptables 就很难设定规则!

那怎办?难道整个防火墙机制都要取消才可以?

为了解决这个问题, CentOS 6.x 有提供一个固定特定 NFS 服务的埠口配置文件,那就是 /etc/sysconfig/nfs 啦!

你在这个档案里面就能够指定特定的埠口,这样每次启动 nfs 时,相关服务启动的埠口就会固定,如此一来,

我们就能够设定正确的防火墙啰!这个配置文件内容很多,绝大部分的数据你都不要去更改,只要改跟 PORT 这个关键词有关的数据即可。

那么需要更改的 rpc 服务有哪些呢?主要有 mountd, rquotad, nlockmgr 这三个,所以你应该要这样改:

[root@www ~]# vim /etc/sysconfig/nfs

RQUOTAD_PORT=1001 <==约在 13 行左右

LOCKD_TCPPORT=30001 <==约在 21 行左右

LOCKD_UDPPORT=30001 <==约在 23 行左右

MOUNTD_PORT=1002 <==约在 41 行左右

# 记得设定值最左边的批注服务要拿掉之外,埠口的值你也可以自行决定。

[root@www ~]# /etc/init.d/nfs restart

[root@www ~]# rpcinfo -p | grep -E '(rquota|mount|nlock)'

100011 2 udp 1001 rquotad

100011 2 tcp 1001 rquotad

100021 4 udp 30001 nlockmgr

100021 4 tcp 30001 nlockmgr

100005 3 udp 1002 mountd

100005 3 tcp 1002 mountd

# 上述的输出数据已经被鸟哥汇整过了,没用到的埠口先挪掉了啦!

很可怕吧!如果想要开放 NFS 给别的网域的朋友使用,又不想要让对方拥有其他服务的登入功能,

那你的防火墙就得要开放上述的十个埠口啦!有够麻烦的~假设你想要开放 120.114.140.0/24 这个网域的人能够使用你这部服务器的

NFS 的资源,且假设你已经使用第九章提供的防火墙脚本,

那么你还得要这样做才能够针对该网域放行喔:

[root@www ~]# vim /usr/local/virus/iptables/iptables.allow

iptables -A INPUT -i $EXTIF -p tcp -s 120.114.140.0/24 -m multiport \

--dport 111,2049,1001,1002,30001 -j ACCEPT

iptables -A INPUT -i $EXTIF -p udp -s 120.114.140.0/24 -m multiport \

--dport 111,2049,1001,1002,30001 -j ACCEPT

[root@www ~]# /usr/local/virus/iptables/iptables.rule

# 总是要重新执行这样防火墙规则才会顺利的生效啊!别忘记!别忘记!

使用 /etc/exports 设定更安全的权限:

这就牵涉到你的逻辑思考了!怎么设定都没有关系,但是在『便利』与『安全』之间,要找到你的平衡点吶!善用

root_squash 及 all_squash 等功能,再利用 anonuid

等等的设定来规范登入你主机的用户身份!应该还是有办法提供一个较为安全的 NFS 服务器的!

另外,当然啦,你的 NFS 服务器的文件系统之权限设定也需要很留意!

不要随便设定成为 -rwxrwxrwx ,这样会造成你的系统『很大的困扰』的啊!

更安全的 partition 规划:

如果你的工作环境中,具有多部的 Linux 主机,并且预计彼此分享出目录时,那么在安装 Linux

的时候,最好就可以规划出一块 partition 作为预留之用。因为『

NFS 可以针对目录来分享』,因此,你可以将预留的

partition 挂载在任何一个挂载点,再将该挂载点 (就是目录啦!)由 /etc/exports

的设定中分享出去,那么整个工作环境中的其他 Linux 主机就可以使用该 NFS 服务器的那块预留的

partition 了!所以,在主机的规划上面,主要需要留意的只有 partition 而已。此外,由于分享的

partition 可能较容易被入侵,最好可以针对该 partition 设定比较严格的参数在 /etc/fstab 当中喔!

此外,如果你的分割做的不够好,举例来说,很多人都喜欢使用懒人分割法,亦即整个系统中只有一个根目录的 partition

而已。这样做会有什么问题呢?假设你分享的是 /home 这个给一般用户的目录好了,有些用户觉得这个 NFS 的磁盘太好用了,

结果使用者就将他的一大堆暂存数据通通塞进这个 NFS 磁盘中。想一想,如果整个根目录就因为这个 /home 被塞爆了,

那么你的系统将会造成无法读写的困扰。因此,一个良好的分割规划,或者是利用磁盘配额来限制还是很重要的工作。

NFS 服务器关机前的注意事项:

需要注意的是,由于 NFS 使用的这个 RPC 服务,当客户端连上服务器时,那么你的服务器想要关机,

那可就会成为『不可能的任务』!如果你的服务器上面还有客户端在联机,那么你要关机,

可能得要等到数个钟头才能够正常的关机成功!嗄!真的假的!不相信吗?不然你自个儿试试看!^_^!

所以啰,建议你的 NFS Server 想要关机之前,能先『关掉 rpcbind 与 nfs 』这两个东西!

如果无法正确的将这两个 daemons 关掉,那么先以 netstat -utlp 找出 PID ,然后以 kill

将他关掉先!这样才有办法正常的关机成功喔!这个请特别特别的注意呢!

当然啦,你也可以利用 showmount -a localhost 来查出来那个客户端还在联机?

或者是查阅 /var/lib/nfs/rmtab 或 xtab 等档案来检查亦可。找到这些客户端后,

可以直接 call 他们啊!让他们能够帮帮忙先! ^_^

事实上,客户端以 NFS 联机到服务器端时,如果他们可以下达一些比较不那么『硬』的挂载参数时,

就能够减少这方面的问题喔!相关的安全性可以参考下一小节的

客户端可处理的挂载参数与开机挂载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值