{安全生产管理}加强用户网络访问权限的安全控制能力

上传人:管****问 文档编号:138128929 上传时间:2020-07-13 格式:DOCX 页数:21 大小:100.08KB
返回 下载 相关 举报
{安全生产管理}加强用户网络访问权限的安全控制能力_第1页
第1页 / 共21页
{安全生产管理}加强用户网络访问权限的安全控制能力_第2页
第2页 / 共21页
{安全生产管理}加强用户网络访问权限的安全控制能力_第3页
第3页 / 共21页
{安全生产管理}加强用户网络访问权限的安全控制能力_第4页
第4页 / 共21页
{安全生产管理}加强用户网络访问权限的安全控制能力_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《{安全生产管理}加强用户网络访问权限的安全控制能力》由会员分享,可在线阅读,更多相关《{安全生产管理}加强用户网络访问权限的安全控制能力(21页珍藏版)》请在金锄头文库上搜索。

1、M6-3 加强Linux用户网络访问权限的安全控制能力1.1场景描述1.1.1 学习目的学生通过该能力模块的学习,能够独立完成和熟练掌握安全设置NFS和SAMBA服务,从而实现文件安全访问的能力。1.1.2 学习要求理解:NFS和SAMBA基本概念。掌握:NFS与SAMBA安全配置。1.1.3 学习重点和难点1.学习重点 安全设置NFS 安全设置SAMBA2.学习难点 安全设置SAMBA:理解SAMBA服务器安全访问级别。1.2 知识准备1.2.1 NFSNFS是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统。NFS简介 NFS由SUN公司开发,目前已经成为文件服务的

2、一种标准(RFC1904,RFC1813)。其最大功能是可以通过网络让不同操作系统的计算机可以共享数据,所以也可以将其看做是一台文件服务器,如图1-1所示。NFS提供了除Samba之外,Windows与Linux及UNIX与Linux之间通信的方法。客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。NFS有属于自己的协议与使用的端口号,但是在传送资料或者其他相关信息时候,NFS服务器使用一个称为远程过程调用(Remote Procedure Call,RPC)的协议来协助NFS服务器本身的运行。

3、为何使用NFS NFS的目标是使计算机共享资源,在其发展过程中(即20世纪80年代),计算机工业飞速发展,廉价CPU及客户端/服务器技术促进了分布式计算环境的发展。然而当处理器价格下降时,大容量的存储系统相对而言价格仍居高不下。因此必须采用某种机制在充分发挥单个处理器性能的同时使计算机可共享存储资源和数据,于是NFS应运而生。 NFS协议 使用NFS,客户端可以透明地访问服务器中的文件系统,这不同于提供文件传输的FTP协议。FTP会产生文件一个完整的副本;NFS只访问一个进程引用文件部分,并且一个目的就是使得这种访问透明。这就意味着任何能够访问一个本地文件的客户端程序不需要做任何修改,就应该能

4、够访问一个NFS文件。 NFS是一个使用SunRPC构造的客户端/服务器应用程序,其客户端通过向一台NFS服务器发送RPC请求来访问其中的文件。尽管这一工作可以使用一般的用户进程来实现,即NFS客户端可以是一个用户进程,对服务器进行显式调用,而服务器也可以是一个用户进程。因为两个理由,NFS一般不这样实现。首先访问一个NFS文件必须对客户端透明,因此NFS的客户端调用是由客户端操作系统代表用户进程来完成的;其次,出于效率的考虑,NFS服务器在服务器操作系统中实现。如果NFS服务器是一个用户进程,每个客户端请求和服务器应答(包括读和写的数据)将不得不在内核和用户进程之间进行切换,这个代价太大。第

5、3版的NFS协议在1993年发布。(1)访问一个本地文件还是一个NFS文件对于客户端来说是透明的,当文件被打开时,由内核决定这一点。文件被打开之后,内核将本地文件的所有引用传递给名为本地文件访问的框中,而将一个NFS文件的所有引用传递给名为NFS客户端的框中。 (2)NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求,NFS主要使用UDP,最新的实现也可以使用TCP。 (3)NFS服务器在端口2049接收作为UDP数据包的客户端请求,尽管NFS可以被实现为使用端口映射器,允许服务器使用一个临时端口,但是大多数实现都是直接指定UDP端口2049。 (4)当NFS服务器收到一个客户端请

6、求时,它将这个请求传递给本地文件访问例程,然后访问服务器主机上的一个本地的磁盘文件。 (5)NFS服务器需要花一定的时间来处理一个客户端的请求,访问本地文件系统一般也需要一部分时间。在这段时间间隔内,服务器不应该阻止其他客户端请求。为了实现这一功能,大多数的NFS服务器都是多线程的-服务器的内核中实际上有多个NFS服务器在NFS本身的加锁管理程序中运行,具体实现依赖于不同的操作系统。既然大多数UNIX内核不是多线程的,一个共同的技术就是启动一个用户进程(常被称为nfsd)的多个实例。这个实例执行一个系统调用,使其作为一个内核进程保留在操作系统的内核中。 (6)在客户端主机上,NFS客户端需要花

7、一定的时间来处理一个用户进程的请求。NFS客户端向服务器主机发出一个RPC调用,然后等待服务器的应答。为了给使用NFS的客户端主机上的用户进程提供更多的并发性,在客户端内核中一般运行着多个NFS客户端,同样具体实现也依赖于操作系统。NFS服务器面临的安全隐患因为NFS在网络上明文传输所有信息,按照默认设置,NFS共享把根用户改成用户nfsnobody,它是一个不具备特权的用户账号。这样,所有根用户创建的文件都会被用户nfsnobody所有,从而防止了设置setuid的程序被上传到系统。如果使用了no_root_squash,远程用户就能够改变共享文件系统上的任何文件,把设置了特洛伊木马的程序留

8、给其他用户,在无意中执行。 NFS服务器安全策略 (1)使用TCP_Wrappers portmap和rpc.nfsd结合起来,使NFS服务器上的文件即使没有任何权限也能容易得到。可以使用访问控制保障网络安全,在使用NFS时最好结合TCP_Wrappers来限制使用范围。 (2)注意配置文件语法错误 NFS服务器通过/etc/exports文件来决定要导出哪些文件系统,以及把这些目录导出到哪些主机上。编辑这个文件的时候要特别小心,不要添加额外的空格。 例如:/etc/exports文件的以下行会使主机 能够共享/tmp/nfs/目录。 /tmp/nfs/ (rw) 但是 /etc/export

9、s 文件中这一行的情况却不同。它共享同一目录,让主机 拥有只读权限,却给全局以读写权限。这全是由主机后面的一个空格造成的。 /tmp/nfs/ (rw) 使用 showmount 命令来校验哪些目录被共享,从而检查NFS共享配置是一个好习惯。showmount格式为: showmount -e (3)使用iptables防火墙因为NFS在网络上明文传输所有信息,所以让NFS服务器在防火墙后、在一个分段的安全网络上运行就很重要。无论何时在不安全的网络上传递NFS信息都有被截取的危险。从这个角度讲,谨慎制定网络计划就有助于防御重要的安全破坏。限制RCP服务访问的办法一般是使用防火墙,除了TCP

10、-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 DROPiptables -t filter -A INPUT -p udp -d 127.0.0.1 -dport 2049 -j DROPiptables -t filter -A INPUT

11、 -p udp -s trusted_client -d this_server_ip -dport 2049 jACCEPTiptables -t filter -A INPUT -p udp -s not_trusted_client -d this_server_ip dport 2049 -j DROP (4)把开放目录限制为只读权限 可以在/etc/exports文件中设定权限选项ro,通常需要把NFS服务器对客户开放的任何目录或文件系统设置为只读访问: /app (ro) 这样,网络中的客户只能对/app目录进行只读访问。 (5)禁止对某些目录的访问 当开放一个完整的文件系统或者一

12、个目录时,缺省情况下它的子目录会自动开放访问权限。如果希望限制对其子目录的访问可以使用noaccess访问选项,例如希望开放/pub目录权限但是禁止访问/pub/staff-only子目录: /pub weblab-? (ro) /pub/staff-only weblab-? (noaccess) 注意: “?”代表任意字符。 (6)root squashing访问问题 按照默认设置,root用户的用户ID和组群ID都是0。root权限压缩(Root squashing)把用户ID0和组群ID0映射为匿名的用户和组群ID,因此客户上的根用户就不会在NFS服务器上具备根特权。如果这个选项被选,

13、root用户就不会被映射为匿名用户,客户上的root用户就会对导出的目录拥有根特权。选择这个选项会大大降低系统的安全性。除非绝对必要,请不要选择它。为了明确执行该规则,可以修改文件/etc/exports: /(rw, root_squash) 这样如果客户端的UID0(root)用户想要访问(读、写、删除)一个NFS文件系统,服务器端会用UID代替服务器的nobody账户。这样客户端的root用户不能修改和访问服务器端root用户才能访问和修改的文件。 (7)使用nosuid和noexec选项 SUID(Set User ID)或SGID(Set Group ID)程序可以让普通用户以超过自

14、己权限的形式执行。很多SUID/SGID可执行程序是必须的,比如上面提到的passwd。SUID/SGID程序会被一些恶意的本地用户利用,获取本不应有的权限。运行以下命令可以找到所有具有这一属性的程序: #find / ( -perm -4000 -o -perm -2000 ) 使用者必须查看这一列表,尽量减少那些所有者是root或是在root组中却拥有SUID/SGID属性的文件,删除或对其属性进行更改。使用nosuid选项禁止set-UID程序在 NFS服务器上运行,可以修改文件/etc/exports加入一行: /(rw, root_squash, nosuid) 上面的例子说明:/w

15、ww目录在上可以登录,的用户可以读取/www中的文件和目录,但是不能运行set- UID程序。 /(rw, root_squash, noexec) 上面的例子说明/www目录在上可以登录,的用户可以读取/www中的文件和目录,但是禁止所登录文件系统中文件的执行。 NFS是非常重要的网络协议,许多企业通过NFS协议共享硬盘和其它设备。把能登录NFS目录设置为只读访问、提高portmap服务的安全性、squashing root访问、使用on set-UID 和non executable文件设置可以提高NFS服务器的安全。1.2.2 SAMBASamba 简介Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号