1、操作系统安全,第八章 Unix/Linux 操作系统安全技术,第八章 Unix/Linux操作系统安全技术,8.1 账户安全管理 8.2 口令安全与访问控制 8.3 文件系统安全 8.4 日志查看与分析 8.5 网络服务安全 8.6 备份与恢复,Unix安全模型,UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。因为安全可靠,高效强大的特点,其在服务器领域得到了广泛的应用。图8-1为Unix操作系统的一个安全模型:,8.1 账户安全管理,8.1.1 root账户的管理在UnixLinux系统中,root账号就是一个超级用户账户。以超级用户可以
2、对系统进行任何操作。 1超级用户 而UnixLinux超级用户账户可以不止一个。 在Unix系统中,只要将用户的UID和GID设置为0就可以将其变成超级用户,但并不是所有的超级用户都能很容易的登录到Unix系统中,这是因为,Unix系统使用了可插入认证模块(PAM)进行认证登录,PAM要求超级用户只能在指定的终端上进行访问,这种指定的终端是可以保证安全的。 2root账户的安全 root用户账户也是有密码的,这个密码可以对那些通过控制台访问系统的用户进行控制,即使是使用su命令的用户也不例外。,8.1.3 PAM认证机制,8.1.3 PAM认证机制 嵌入式认证模块(PAM)机制采用模块化设计和
3、插件功能,使得管理员可以轻易地在应用程序中插入新的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松,因为鉴别机制与应用程序之间相对独立。 应用程序可以通过PAM API(由pam.conf控制)方便的使用PAM提供的各种鉴别功能,而不必了解太多的底层细节。,PAM认证机制,8.2 口令安全与访问控制,Unix中常用的口令机制 用户口令技术 影子口令机制 一次性口令机制,8.3 文件系统安全,文件和目录的权限 文件系统完整性检查,8.3.1 文件和目录的权限,Unix系统中的每个文件和目录都有访问许可权限,文件或目录的访问权限分为三种: 只读 只写 可执
4、行 有三种不同类型的用户可对文件或目录进行访问: 文件所有者 同组用户 其他用户 每一文件或目录的访问权限有三组,每组用三位表示,分别为 文件属主的读、写和执行权限; 与属主同组的用户的读、写和执行权限; 系统中其他用户的读、写和执行权限。,8.3.1 文件和目录的权限,确定了一个文件的访问权限后,用户可以利用系统提供的的命令对权限进行设置 chmod命令来重新设定不同的访问权限。 chown命令来更改某个文件或目录的所有者。 chgrp命令来更改某个文件或目录的用户组,8.3.2文件系统完整性检查,对于庞大的系统文件,管理员对每一个文件都进行检查室难以想象的,而Tripwire能够提供这种帮
5、助,它不是为了抵御攻击者而设计的,然而它能够帮助判断系统的一些重要文件是否被攻击者修改,即系统完整性检查工作。Tripwire是目前最为著名的UNIX下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,并保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。,8.3.3 NFS简介及相关安全性问题,1.NFS的基本工作原理 NFS由服务器端和客户机端两部分组成。 NFS是通过RPC即远程过程调用来实现的,使得远程的计算机节点执行文件的操作命令就像执行本地文件的操作命令一样,可以执行创建文件、创建目录、删除文件、删除目录
6、等文件操作命令。,8.3.3 NFS简介及相关安全性问题,2.NFS安全性的实现 Linux所做的第一个安全措施就是启用防火墙。 Linux所做的第二个安全措施是服务器的导出选项。相关的导出选项有如下几类: (1)读写服务器访问; (2)UID与GID挤压; (3)端口安全; (4)锁监控程序; (5)部分挂接与子挂接。,8.4 日志查看与分析,Unix系统中,主要分为以下3种形式的日志系统: (1)记录连接时间的日志系统中多个进程运行时,把记录写入到varlogwtmp和varrunutmp,这两个文件的更新由login等进程完成,以便于管理员跟踪谁在何时登录了系统。 (2)进程统计由系统内
7、核执行。进程的执行和终止,都将被记录到统计文件pacct和acct中。该系统的目的是为系统中的基本服务提供命令使用情况统计。 (3)错误日志由syslog(8)执行各种系统守护进程、用户程序和内核通过syslog(3)向文件varlogmessages报告值得注意的事件。,日志文件及其功能说明,8.4.1 日志查看技术,8.4.1 日志查看技术 wtmp和utmp文件都是二进制文件,他们不能被诸如tail、cat命令进行剪贴或合并。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。,8.5 网络服务安全,Unix系统之间安全通信的实现 Kerberos认证机制 安全
8、外壳协议(SSH)。,Unix系统之间的安全通信主要是是靠UUCP实现的。UUCP,Unix-to-Unix Copy的缩写,UUCP系统主要完成远程文件传输,包括各种文件的远程复制、执行系统之间的命令、维护系统使用情况的统计等等。 UUCP是UNIX操作系统上最广泛使用的网络实用系统,在Internet兴起之前是UNIX系统之间连网的主要方式。主要是因为: (1)UUCP是各UNIX版通用的唯一标准网络系统 (2)通过UUCP建立网络系统简单,,8.5.1 Unix系统之间安全通信的实现,8.5.1 Unix系统之间安全通信的实现,8.5.2 Kerberos认证机制,8.5.2 Kerbe
9、ros认证机制,当用户输入用户名和密码后,计算机将用户名发送给 KDC。KDC 包含一个主数据库,该数据库保存了其领域内每个安全主体独有的长期密钥,KDC 查找用户的主密钥(KA),主密钥基于用户的密码。然后,KDC 创建两项:一个与用户共享的会话密钥(SA)和一张票证授予式票证(TGT,Ticket-Granting Ticket)。TGT 包含 SA、用户名和过期时间的第二个副本。KDC 使用它自身的主密钥(KKDC)加密此票证,此主密钥只有 KDC 知道,目标服务器,KDC,用户,客户端计算机从 KDC 接收到信息,并通过单向哈希函数加密用户的密码,这样就将密码转换成了用户的 KA。客户
10、端计算机现在有一个会话密钥和一个 TGT,这样就可以与 KDC 安全通信了,当 Kerberos 客户端需要访问同一域中的成员服务器上的资源时,它会联系 KDC。客户端将提供 TGT 和用已经与 KDC 共享的会话密钥加密的时间戳,接着,KDC 创建一对票证,一张给客户端,另一张给客户端需要访问的资源所在的服务器,KDC 获取服务器的票证,并使用服务器主密钥(KB)加密它。然后 KDC 将服务器的票证嵌套在客户端的票证内,这样,客户端的票证也含有该 KAB,Kerberos 身份验证的工作原理,8.5.2 Kerberos认证机制(课本),Kerberos协议把身份认证的任务集中在身份认证服务
11、器(AS)上执行。AS中保存了所有用户的口令。 在Kerberos认证体制中,还增加了另外一种授权服务器TGS(Ticket-Granting Server)。首先用户申请票证授权证,AS验证C的访问权限后,准备好票证Tickettgs和C与TGS用户会话密钥Kc,tgs,并用口令导出的Kc加密后回送票证授权证。然后用户请求服务授权证,工作站要求用户输入口令,并用它导出密钥Kc,以Kc对所得消息进行解密的Kc,tgs,用户将Tickettgs连同个人信息发给TGS,TGS实现对C的认证后,准备好服务授权证Ticketv及会话密钥Kc,v用Kc,tgs加密后发给用户C,用户C将获得的Ticket
12、v连同个人信息发送给服务器V,服务器对信息认证后,给用户提供相应的服务,图8-4 Kerberos认证过程,8.5.2 Kerberos认证机制(课本),8.5.3 SSH协议,SSH的英文全称是Secure Shell。 通过使用SSH,你可以把所有传输的数据进行加密,这样入侵者的攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。,8.5.3 SSH协议,1.基于口令的安全验证 只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器。,8.5.3 SSH协议,2.基于密匙的安全验证 需要依靠密匙,就是说用户必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果用户要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用用户的密匙进行安全验证。服务器收到请求之后,先在用户所在的服务器的家目录下寻找公用密匙,然后把它和用户发送过来的公用密匙进行比较。如果一致,服务器就用公用密匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用私人密匙解密再把它发送给服务器。 用这种方式,用户必须知道自己密匙的口令。与第一种级别相比,第二种级别不需要在网络上传送口令。,