安装配置nfs,提升NFS服务器的安全

NFS是网络文件系统Network File
System)的简单称谓,是分布式计算系统的二个组成部分,可实现在异种互连网上分享和装配远程文件系统。NFS由Sun集团花销,近年来已经济体制校正为文件服务的风姿罗曼蒂克种标准RAV4FC1903,途锐FC1813)。其最大的功效正是可让不一致操作系统的微管理机分享数据,所以也足以将它作为是三个文本服务器。NFS提供了除SAMBA之外,Windows与Linux、Unix与Linux之间通讯的点子。

CentOS 6.7 安装配备nfs 服务

NFS是Network File
System的缩写,即网络文件系统。它功能是经过互联网让差别的机械、分歧的操作系统能够相互分享各自的数据,让应用程序在客商端通过互联网访谈坐落于服务器磁盘中的数据。

NFS在文书传送或音信传递进程中凭仗于RPC商量。RPC:远程进程调用(Remote
Procedure
Call卡塔尔(قطر‎是能使客商端推行其它系统中等射程序的风姿洒脱种机制。NFS自个儿是还未提供音讯传输的商业事务和效果的,但NFS却能让大家因此网络进行材料的享受,这是因为NFS使用了部分其余的传导公约。而那一个传输协议用到那几个RPC功用的。可以说NFS自身正是行使RPC的一个主次。也许说NFS也是四个RPC
SE途乐VERubicon。所以假若选择NFS的地点都要开动RPC服务,无论是NFS SE奥迪Q3VEGL450可能NFS
CLIENT。那样SEEvoqueVE中华V和CLIENT才具经过RPC来兑现PROGRAM
PORT的对应。可以这么清楚RPC和NFS的涉嫌:NFS是二个文件系统,而RPC是担当新闻的传导。

进而,大家要求安装八个软件包:nfs-utils和rpcbind,在centOS
5中rpcbind叫portmap,成效都以如出风流倜傥辙的,名字差异而已。

设置方式:yum安装

nfs服务端:balichvm(192.168.171.51)

客户端:balichos(192.168.171.50)

安装步骤:

1)、在balichvm上安装nfs-utils和rpcbind,使用yum安装,如下:

[[email protected]
~]# yum install –y nfs-utilsrpcbind

2)、在balichvm创建必要分享的目录和编写制定配置文件/etc/exports(这几个文件暗中同意没有)

[[email protected]
~]# mkdir –p /data/nfsdata

[[email protected]
~]#vim /etc/exports

/data/nfsdata/ 192.168.171.0/24 (rw,sync,root_squash)

此地的铺排是分享目录/data/nfsdata/;网段192.168.171.0的主机能够有读写权限、限定root权限、同步到磁盘)

/etc/exports配置文件的格式和甄选有:

格式:分享的目录分享给那么些网段的主机分享的权位

选料:(分享的权杖)

ro:——只读;

rw:——读写;

sync:——同步情势,内部存款和储蓄器中数据随即写入磁盘;

async:——不联合,把内部存款和储蓄器中数据定时写入磁盘中;

no_root_squash:——加上那些选项后,root顾客就能够对分享的目录拥有至高的权力决定,就好像对本机的目录操作相仿。不安全,不建议利用;

root_squash:——和地点的筛选对应,root顾客对分享目录的权柄不高,唯有普通客户的权柄,即限定了root;

all_squash:——不管选用NFS的客户是哪个人,他的地位都会被限定作而成为一个钦点的普通客户身份;

anonuid/anongid:——要和root_squash以及all_squash一齐使用,用于钦赐使用NFS的客商限制后的uid和gid,前提是本机的/etc/passwd中存在这里个uid和gid。

3)、在balichvm配置防火墙准则,编辑/etc/sysconfig/nfs,固定服务的端口,私下认可是注释的,必要打开。

# Port rpc.mountd should listen on.

MOUNTD_PORT=892 #把后面包车型大巴#号去掉

# Port rquotad should listen on.

RQUOTAD_PORT=875 #把前边的#号去掉

# TCP port rpc.lockd should listen on.

LOCKD_TCPPORT=32803 #把后边的#号去掉

# UDP port rpc.lockd should listen on.

LOCKD_UDPPORT=32769 #把前面的#号去掉

那几个端口是布局文件暗许的,是能够活动校正扩张内需的端口号,然后保留配置文件。

接下来运维rpdbind和nfs服务:

/etc/init.d/rpcbind restart

/etc/init.d/nfs restart

服务运营后,使用rpcinfo –p查看启用的端口。

[[email protected]
~]# rpcinfo -p

program vers proto port service

100000 4 tcp111 portmapper

100000 3 tcp111 portmapper

100000 2 tcp111 portmapper

100000 4 udp111 portmapper

100000 3 udp111 portmapper

100000 2 udp111 portmapper

100005 1 udp892 mountd

100005 1 tcp892 mountd

100005 2 udp892 mountd

100005 2 tcp892 mountd

100005 3 udp892 mountd

100005 3 tcp892 mountd

100003 2 tcp2049 nfs

100003 3 tcp2049 nfs

100003 4 tcp2049 nfs

100227 2tcp 2049 nfs_acl

100227 3 tcp2049 nfs_acl

100003 2 udp2049 nfs

100003 3 udp2049 nfs

100003 4 udp2049 nfs

100227 2 udp2049 nfs_acl

100227 3 udp2049 nfs_acl

100021 1 udp32769 nlockmgr

100021 3 udp32769 nlockmgr

100021 4 udp32769 nlockmgr

100021 1 tcp32803 nlockmgr

100021 3 tcp32803 nlockmgr

100021 4 tcp32803 nlockmgr

[[email protected]
~]#

将那些启用的端口(tcp和udp)写到iptables防火墙里面(vim
/etc/sysconfig/iptables),允许通过,如下:

-A INPUT -m state –state NEW -m tcp -p tcp–dport 111 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 892 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 2049 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 32769 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp–dport 32803 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 111 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 892 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 2049 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 32769 -j ACCEPT

-A INPUT -m state –state NEW -m udp -p udp–dport 32803 -j ACCEPT

下一场重启iptables服务:/etc/init.d/iptables restart

4)、在客商端balichos上,安装nfs-utils,并且挂载balichvm分享的nfsdata目录,查看某台主机分享的nfs使用命令showmount–e
ip(主机名卡塔尔。

[[email protected]
~]# yum install –y nfs-utils

[[email protected]
~]# showmount -e192.168.171.51 ##查阅分享的nfs

Export list for 192.168.171.51:

/data/nfsdata 192.168.171.0/24

[[email protected]
~]#

[[email protected]
~]# mount -t nfs192.168.171.51:/data/nfsdata/ /mnt/

[[email protected]
~]# df -h

Filesystem Size Used Avail Use% Mountedon

/dev/sda3 18G 5.9G 11G 36% /

tmpfs 495M 0 495M 0% /dev/shm

/dev/sda1 190M 36M 145M 20% /boot

192.168.171.51:/data/nfsdata/ 18G 3.8G 13G 24% /mnt

今后就已经挂载了多个文件系统,不过出于在balichvm上/data/nfsdata的权柄是755,其余客户不有所写的权能,而在nfs配置文件/etc/exports上又限制了root客商权限,暗中同意是运用别的的客商的记名,全体不可能写入数据,唯有读取的权杖。

纵然急需有写入的权位,能够改良权限。

6.7 安装配备nfs 服务 NFS是Network File
System的缩写,即互联网文件系统。它功效是因此网络让不相同的机械、区别的操作系统能够互相分享各…

此外互联网服务器都会有安全主题素材,NFS也不例外。由于设计方面包车型地铁因素,NFS服务器不容许相对安全。平常的话,不应该将NFS服务器运行在相比较敏感的系统或许唯有类同防火墙的机械上,应该尽大概将其放置防火墙之后。配置安全的NFS服务器,可以从限定RCP服务的访问和操纵文件系统的导出权限双方面入手。

NFS服务器面临的安全隐患

因为NFS在互联网上圈套面传输全数音讯,依据暗许设置,NFS共享把根客户改成客商nfsnobody,它是一个不持有特权的客户账号。那样,全数根客户创建的文本都会被客户nfsnobody全部,从而防备了设置setuid的次第被上传到系统。假如利用了no_root_squash,远程客户就可见转移分享文件系统上的别的公文,把设置了Troy木马的程序留给其余顾客,在无意识中施行。

NFS服务器安全战术

1)使用TCP_Wrappers

portmap和rpc.nfsd结合起来,使NFS服务器上的文书就算未有任何权力也能便于获得。能够选用访谈调控保证互联网安全,在接受NFS时最棒结合TCP_Wrappers来约束使用范围。

2)注意布置文件语法错误

NFS服务器通过/etc/exports文件来支配要导出哪些文件系统,以至把这一个目录导出到哪些主机上。编辑这些文件的时候要特地小心,不要增多额外的空格。

诸如:/etc/exports文件的以下行会使主机bob.example.com
能够分享/tmp/nfs/目录。

/tmp/nfs/ bob.example.com(rw)

可是 /etc/exports 文件中那风流罗曼蒂克行的动静却现在和过去十分不相通。它分享同一目录,让主机
bob.example.com
具备只读权限,却给全局以读写权限。那全部都以由主机后边的三个空格形成的。

/tmp/nfs/

bob.example.com (rw)

选拔 showmount
命令来校验哪些目录被分享,进而检查NFS共享配置是三个好习贯。showmount格式为:

showmount -e

3)使用iptables防火墙

因为NFS在互连网上公然传输所有新闻,所以让NFS服务器在防火墙后、在二个分层的辽阳互联网上运维就很首要。无论曾几何时在不安全的网络上传递NFS新闻都有被截取的安危。从这几个角度讲,谨严制订互联网布置就推动堤防重大的安全破坏。节制RCP服务拜候的方式日常是采用防火墙,除了TCP-Wrapper还应该有ipchians和iptalbes的防火墙。在圆满应用Linux
2.4或更加高版本内核的几天前,精通iptables这种防火墙方法也就够用了。
缺省的场所下,portmap使用111端口,而NFS使用2049端口,能够通过iptables来限定对该端口的访谈:

iptables -t filter -A INPUT -p udp -d 127.0.0.1 –dport 111 -j DROP
iptables -t filter -A INPUT -p udp -d 127.0.0.1 –dport 2049 -j DROP
iptables -t filter -A INPUT -p udp -s trusted_client -d
this_server_ip –dport \2049 -j
ACCEPTiptables -t filter -A INPUT -p udp -s not_trusted_client -d
this_server_ip -dport
\2049 -j DROP

4)把开放目录范围为只读权限

能够在/etc/exports文件中设定权限选项ro,平时需求把NFS服务器对客户开放的别的目录或文件系统设置为只读访问:

/app devpc.nitec.com(ro卡塔尔国那样,devpc.nitec.com网络中的顾客只能对/app目录举办只读访谈。

5)防止对有个别目录的造访

当开放叁个完完全全的文件系统也许一个索引时,缺省景观下它的子目录会自动开放访问权限。固然希望约束对其子目录的拜会能够选择noaccess访谈选项,举个例子希望开放/pub目录权限可是禁止访问/pub/staff-only子目录:

/pub weblab-??.nitec.com (ro)
/pub/staff-only weblab-??.nitec.com (noaccess)

注意: “??”代表专擅字符。

6)root squashing访问难题

根据私下认可设置,root顾客的客商ID和组群ID都以0。root权限压缩Root
squashing)把客商ID0和组群ID0映射为佚名的客商和组群ID,由此客商上的根客户就不会在NFS服务器上有所根特权。假如那么些选项被选,root客商就不会被映射为佚名顾客,客商上的root客商就能够对导出的目录具备根特权。选取那么些选项会大大降低系统的安全性。除非相对必要,请不要选用它。为了明显实施该准绳,能够纠正文件/etc/exports:

/www www1.nitec.com(rw, root_squash)

与此相类似大器晚成旦客商端的UID0root)客户想要访谈读、写、删除)三个NFS文件系统,服务器端会用UID代替服务器的nobody账户。这样客商端的root客户无法改改和拜访服务器端root客商工夫访问和订正的文本。

7)使用nosuid和noexec选项

SUIDSet User ID)或SGIDSet Group
ID)程序能够让普通客商以超越本人权力的款型实行。超多SUID/SGID可执路程序是必须的,比方上边提到的passwd。SUID/SGID程序会被有个别恶心的本地顾客利用,获取本不应有的权能。运营以下命令能够找到全体具有那意气风发性质的前后相继:

#find / \( -perm -4000 -o -perm -2000 \)

使用者必需查看这一列表,尽量减弱这么些全部者是root或是在root组中却有所SUID/SGID属性的文件,删除或对其本性举办改动。使用nosuid选项幸免set-UID程序在
NFS服务器上运营,能够改良文件/etc/exports到场大器晚成行:

/www www1.nitec.com(rw, root_squash, nosuid)

下面的例证说明:/www目录在www1.nitec.com上得以登陆,www1.nitec.com的客户能够读取/www中的文件和目录,可是无法运作set-
UID程序。

/www www1.nitec.com(rw, root_squash, noexec)

地方的事例表达/www目录在www1.nitec.com上能够登入,www1.nitec.com的客商能够读取/www中的文件和目录,可是禁绝所登陆文件系统汉语件的进行。

NFS是至极关键的网络公约,好些个集团通过NFS公约分享硬盘和别的设备。把能登入NFS目录设置为只读访问、进步portmap服务的安全性、squashing
root访谈、使用on set-UID 和non
executable文件设置可以巩固NFS服务器的安全。

File
System)的简单的称呼,是布满式总结系统的二个组成都部队分,可实将来异种网络上分享和装配远程文件系统。NFS由Sun公司…

发表评论

电子邮件地址不会被公开。 必填项已用*标注