如何加固linux NFS 服务安全的方法

NFS(Network File System)是 FreeBSD 支持的一种文件系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。不正确的配置和使用 NFS,会带来安全问题。

概述

NFS 的不安全性,主要体现于以下 4 个方面:

  • 缺少访问控制机制
  • 没有真正的用户验证机制,只针对 RPC/Mount 请求进行过程验证
  • 较早版本的 NFS 可以使未授权用户获得有效的文件句柄
  • 在 RPC 远程调用中, SUID 程序具有超级用户权限

加固方案

为有效应对以上安全隐患,推荐您使用下述加固方案。

配置共享目录(/etc/exports)

使用 anonuid,anongid 配置共享目录,这样可以使挂载到 NFS 服务器的客户机仅具有最小权限。不要使用 no_root_squash。

使用网络访问控制

使用 安全组策略 或 iptable 防火墙限制能够连接到 NFS 服务器的机器范围。

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT

账号验证

使用 Kerberos V5 作为登录验证系统,要求所有访问人员使用账号登录,提高安全性。

设置 NFSD 的 COPY 数目

Linux 中,NFSD 的 COPY 数目定义在启动文件 /etc/rc.d/init.d/nfs 中,默认值为 8。

最佳的 COPY 数目一般取决于可能的客户机数目。您可以通过测试来找到 COPY 数目的近似最佳值,并手动设置该参数。

选择传输协议

对于不同的网络情况,有针对地选择 UDP 或 TCP 传输协议。传输协议可以自动选择,也可以手动设置。

mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR

UDP 协议传输速度快,非连接传输时便捷,但其传输稳定性不如 TCP,当网络不稳定或者黑客入侵时很容易使 NFS 性能大幅降低,甚至导致网络瘫痪。一般情况下,使用 TCP 的 NFS 比较稳定,使用 UDP 的 NFS 速度较快。

  • 在机器较少,网络状况较好的情况下,使用 UDP 协议能带来较好的性能。
  • 当机器较多,网络情况复杂时,推荐使用 TCP 协议(V2 只支持 UDP 协议)。
  • 在局域网中使用 UDP 协议较好,因为局域网有比较稳定的网络保证,使用 UDP 可以带来更好的性能。
  • 在广域网中推荐使用 TCP 协议,TCP 协议能让 NFS 在复杂的网络环境中保持最好的传输稳定性。

限制客户机数量

修改 /etc/hosts.allow 和 /etc /hosts.deny 来限制客户机数量。

/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny

改变默认的 NFS 端口

NFS 默认使用的是 111 端口,使用 port 参数可以改变这个端口值。改变默认端口值能够在一定程度上增强安全性。

配置 nosuid 和 noexec

SUID (Set User ID) 或 SGID (Set Group ID) 程序可以让普通用户以超过自己权限来执行。很多 SUID/SGID 可执行程序是必须的,但也可能被一些恶意的本地用户利用,获取本不应有的权限。

尽量减少所有者是 root,或是在 root 组中却拥有 SUID/SGID 属性的文件。您可以删除这样的文件或更改其属性,如:

使用 nosuid 选项禁止 set-UID 程序在 NFS 服务器上运行,可以在 /etc/exports 加入一行:

/www www.abc.com(rw, root_squash, nosuid)

使用 noexec 禁止直接执行其中的二进制文件。

原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/10030162.html

时间: 2024-08-30 14:23:09

如何加固linux NFS 服务安全的方法的相关文章

linux系统NFS服务端配置方法

1.修改 /etc/exports,增加共享目录 /var/upload 172.16.101.63(rw) 2.启动与停止NFS服务 /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的) /etc/rc.d/init.d/nfs start 启动NFS服务 /etc/rc.d/init.d/nfs stop 停止NFS服务 3.linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享 # mkdir –p /var/

linux nfs服务安装

nfs为网络文件系统也可理解为文件共享,方式为服务器上安装nfs服务,客户端通过挂在的方式把服务器上的目录挂载到本地,实现文件共享 1.查看有没有安装nfs rpm -qa |grep nfs 2.安装nfs yum -y install nfs-utils 3.开启服务 /etc/init.d/nfs start /etc/init.d/rpcbind start 4.配置exports vi/etc/exports /home/zuzhao 192.168.1.0  255.255.254.

Linux NFS 服务部署

系统环境:Oracle Linux 5.7 服务端:192.168.1.111 客户端:192.168.1.171 一.服务端配置 1.依次启动portmap和nfs服务 service portmap start service nfs start [[email protected] ~]# service portmap status portmap (pid 2543) is running... [[email protected]-ASM ~]# service nfs status

Linux NFS服务 服务端

[[email protected] /]# cat /etc/redhat-release       #########查看系统 CentOS release 6.5 (Final) [[email protected] /]# uname -m                      #########查看系统是32位还是64位.这里是64位 x86_64 [[email protected] /]# uname -r                      #########查看内核

Linux nfs服务讲解

nfs服务介绍 nfs(Network File System) 网络文件系统,能使用户访问服务器的文件系统,就像访问自己的本机的文件系统一样,并且多个 客户端共享访问该文件系统. 目前nfs服务,较为流行的两个nfs的组件为:nfsd,nfs-ganesha.前者linux为系统自带的内核态的文件系统,后者是开源的用户空间的文件 系统.因为nfs-ganesha运行在用户态,nfsd运行在内核态,所以nfs-ganesha具有内存分配灵活,可移植性更好,更方便扩展等优势. 缺点是nfs-gan

Linux nfs服务介绍

nfs服务介绍 nfs(Network File System) 网络文件系统,能使用户访问服务器的文件系统,就像访问自己的本机的文件系统一样,并且多个 客户端共享访问该文件系统. 目前nfs服务,较为流行的两个nfs的组件为:nfsd,nfs-ganesha.前者linux为系统自带的内核态的文件系统,后者是开源的用户空间的文件 系统.因为nfs-ganesha运行在用户态,nfsd运行在内核态,所以nfs-ganesha具有内存分配灵活,可移植性更好,更方便扩展等优势. 缺点是nfs-gan

NFS服务配置固定端口

#Linux NFS服务 固定端口及防火墙配置# 1.在Linux上正常安装NFS服务 2.修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)    # Local services    mountd 1011/tcp #rpc.mountd    mountd 1011/udp #rpc.mountd    rquotad 1012/tcp #rpc.rquotad    rquotad 1012/udp #rpc.rquotad 3.重起nfs服务  ser

【转】Linux 的NFS服务的配置

原文链接 http://blog.chinaunix.net/uid-26642180-id-3167544.html 1.首先安装nfs rpm -ivh nfs-utils-1.0.9-16.rpm rpm -qa|grep portmap 查看是否安装了portmap端口映射器 portmap默认监听TCP和UDP的111端口 netstat -anp |grep :111 必须强调的是portmap只是一个端口映射器,真正提供NFS服务的是另外两个守护进程,rpc.nfsd和prc.mo

linux文件共享之NFS服务

NFS(network file system)网络文件系统,允许linux主机之间通过网络来共享文件,客户端可以像使用本地文件一样对远程文件进行读写等操作! 1.安装NFS yum install nfs-utils #其他依赖会自动安装 2.配置NFS nfs只有一个配置文件即/etc/exports格式: 共享目录    主机(权限)/home/test      *(rw,sync,no_root_squash)例1:vi /etc/exports 编辑配置文件,加入以下内容/home/