网络安全与防火墙技术5-UNIX安全性及防护课件.ppt
-
资源ID:73597006
资源大小:2.61MB
全文页数:42页
- 资源格式: PPT
下载积分:9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
网络安全与防火墙技术5-UNIX安全性及防护课件.ppt
5 UNIX安全性及防护 5.1 UNIX的安全机制5.1.1 UNIX系统简介 5.1.2 UNIX系统的安全机制 1)文件许可权 文件权限是UNIX文件系统的关键。UNIX系统使用两个编号把文件许可权与它们对应的用户和工作组连接起来。User ID(UID,用户身份号)是分配给系统上每个登录名的惟一编号。Group ID(GID,工作组身份号)是识别每个工作组的惟一编号。当一个文件存储到系 统上时,同时存储了用户的UID和GID,UNIX系统就可以对文件的访问权限加以限制。有两个文件用来存储UID和GID信息,它们是/etc/passwd,识别每个用户的UID和用户所属主工作组的GID;/etc/group,识别每个工作组的GID,并列出每个用户除主工作组外的其余组名。文件许可权设置为三个不同级别:文件所有者(owner)、工作组(group)和普通用户(everyone),管理员可以为一个文件设定自己拥有的访问权限、与用户同组的其他用户对文件的访问权限和所有除上述用户外的其他用户对文件的访问权限。权限设置为读、写和执行。2)账户管理UNIX系统中的用户都有一个用户名username(有时称为login name,即登录名)来标志该用户。当把一个新的账户加入系统中时,系统管理员给该账号指定一个惟一的用户标识符(UID)。UID是系统内部一个用户的标志。系统管理员同时也把用户加入一个或多个组(group)。每个组都有一个类似于UID的组标识符(GID),它是系统内部一个组的标志。一个用户的UID和GID决定该用户对文件和其他系统资源拥有的权限。在账户管理中,涉及到对口令文件、GROUP文件的管理,下面分别介绍口令文件、口令字段、影子口令、GROUP文件与SUID和SGID。口令文件(/etc/passwd)所有用户授权验证请求都使用口令文件/etc/passwd进行验证。口令字段从前面的passwd文件输出信息中可以看到,各加密口令的密文清晰明了,这是因为用户需要能够对passwd文件具有读取的能力,以执行授权验证过程。5.2 UNIX安全策略 5.2.1 系统管理安全 1)防止未授权存取这是网络环境中重要的安全问题,要防止未被授权使用系统的用户进入系统,由系统管理员和用户配合建立良好的口令管理机制,登录活动记录、审计和报告,用户和网络活动的周期检查等,这些都是防止未授权访问的关键。2)文件系统管理 系统管理人员要重点保护上述文件和目录的安全性,经常检查系统文件和目录的许可权限和所有者。系统管理员可做一个程 序 根 据 系 统 提 供 的 规 则 文 件(在/etc/permlist文件中)所描述的文件所有者和许可权规则检查各文件。要建立和应用系统的安全机制,例如,修改“shell”,使其在等待了一定时间并且无任务时会自动终止运行;修改“1ogin”,使其能输出用户登录的最后时间,且3次无效登最后将其挂起;确保不让root在除控制台外的任何地方登录。对于在UNIX系统中的暂存目录(/tmp和/usr/tmp),程序员和许多系统命令都使用它们,如果用这些目录存放暂存文件,别的用户可能会破坏这些文件,必须要将其屏蔽起来或者建立自己的暂存目录:“$HOME/tmp”。而不要将重要文件存放于公共的暂存目录。UNIX系统上有一独特的情形是“设备文件”,要特别注意设备文件的存取许可。UNIX系统与连接在系统上的各种设备之间的通讯是通过设备文件来实现的,所有连接到系统上的设备都在/dev目录中有一个文件与其对应。当在这些文件上执行I/O操作 为关键词,并且最好在加密前用pack或compress命令对文件进行压缩后再加密。作为用户要经常检查自己的口令和文件,例如可用“ls-a”命令列出当前目录中的全部文件,包括文件名以“.”开头的文件,查看所有文件的存取许可方式和文件所有者,任何不属于自己的但存在于自己目录中的文件都应检查一下。用户不要让自己的文件或目录可被他人写。如“.profile”文件,它是用户HOME目录下的文件,在用户登录时就被执行,若该文件对其他人也是可写的,则系统的任何用户都能修改此文件并使其按自己的意愿工作,从而可使其他用户具有与该用户相同的权限,所以要确保自己的“.profile”除自己外对他人都不可读写。如不信任本组其他用户,可将umask设置为“022”;若不想其他用户读自己的文件或目录,就将umask设置为“006/007”;若不允许同组用户存取自己的文件和目录,则将uamsk设置为“077”。暂存文件按当前umask设置,存放重要数据的暂存文件也要注意确保对其他用户不可读。拷贝和移动文件时,要注意文件的存取许可的“变异”和“继承”。用“cp”命令拷贝文件时,若目的文件不存在则将同时拷贝源文件5.2.2 安全检查UNIX系统中有一些检查程序,如find和secure等。它们能搜索文件系统,寻找出SUID(系统用户ID)/SGID(系统用户组)文件、设备文件、任意可写的系统文件、有相同UID/GID的用户等。这些文件对系统安全至关重要,如两个特殊的命令程序SUID和GUID,它们的主要特点是:执行SUID程序的账户会在本程序终止前拥有与该程序的所有者相同的UID,与此类似执行GUID程序的账户会在本程序终止前,拥有与该程序的所有者相同的GID。因为在UNIX系统中,检查账户权限的惟一根据就是该账户的UID或GID,所以这两种程序往往会被黑客们所利 进程开始执行与结束的时间,CPU时间和实际消耗的时间,该进程是否是root进程等,这将有助于系统管理员了解系统中的用户在干什么。acctcon命令可以列出一天的账目表,表明系统中有多个记账数据文件。在accton的输出中可查找一个用户过多的登录过程,如果有这样的情况,则说明可能有人在尝试登录、猜测口令、企图非法进入系统。还有其他一些检查命令可以检查用户对文件系统的使用情况,报告整个文件系统当前的空间使用情况,检查当前系统中正在运行的所有进程,告诉系统管理员系统中工作的进展情况及检查用户的登录时间、登录终端,记录用户企图破译root口令进入root的无效操作信息等。系统管理员可定期(如每星期)或不定期地随机抽选一个用户,将该用户的安全检查结果(用户的登录情况简报和SUID/SGID文件列表等)发送给他的管理部门和他本人,这样做可以使用户考虑安全问题,拥有大量可写文件的用户将每星期得到一次邮件,直到他们取消文件的写许可为止。此外,列出用户的SUID程序将引起用户注意自己有SUID程序,使用户注意检查是否有不是自己建立的SUID程序。在未检查用户文件系统的SUIDSGID程序和设备文件之前,不要安装用户文件系统。如SUID/SGID程序确有必要,应建立一个新用户供该软件运行,而不要让这些程序具有系统的SUID或SGID。2)网络配置对 于 旧 的 Linux系 统,配 置/etc/inetd.conf,去掉不用的服务,对于较新的系统,则应当配置xinetd.conf以及/etc/xinetd.d/,建议配置时,先备份原有配置,然后去掉所有的服务,然后再根据需要添加。避免域名欺骗,修改“/etc/host.cof”文件。3)系统配置 禁止Control-Alt-Delete关闭系统命令/etc/lilo.con配置 因为LILO对Linux系统非常重要,所以要尽可能地保护好它。LILO最重要的配置文件是“/etc”目录下的“lilo.conf”文件。用这个文件可以配置或提高LILO程序以及Linux系统的安全性。下面是LILO程序的3个重要的选项设置。加入:timeout=00。这项设置设定LILO为引导默认的系统之前,等候用户输入的时间。C2安全等级规定这个时间间隔必须设成0,因为多重引导会使系统的安全措施形同虚设。除非想用多重引导,否则最好把这项设成0。加入:restricted。当LILO引导的时候,输入参数Linux single,进入单用户(single)模式。因为单用户模式没有口令验证,所以可以在LILO引 导 时,加 上 口 令 保 护。“restricted”选项只能和“password”合起来用。注意要给每个内核都要加上口令保护。加入:password。用单用户模式启动Linux系统的时候,系统要求用户输入这个口令。注意:口令是大小写敏感的,要让“/etc/lilo.conf”文件除了root之外,其他用户没有读的权限,这样也就看不到口令了。4)常见服务的安全防护随着WWW服务器使用的日益广泛,WWW服务器的访问控制和安全性能保障也就成了一个重要的内容。WWW服务器的安全配置,一个是对网页的访问进行访问权限控制,另外一个是防止服务器受到拒绝服务攻击的影响。以下主要针对Apache,讨论如何进行安全配置。Apache可以很好地解决上述问题。Apache实现身份认证的基本原理是:当系统管理员启动身份认证功能后,可以在要限制的目录下添加一个默认名为“.btaccess”的文件。当用户访问该路径下的资源时,系统就会弹出一 个对话框,要求用户输入“用户名/口令”。也就是说,它的身份认证功能不是人为由程序控制,而是由系统直接控制的。这样就避免了用户记录需要认证的资源的超级链接,不会下次直接访问资源。不仅如此,Apache的身份认证的限制有多种,可以限定某个目录的读取权,针对IP地址进行的限制,以及一个目录下各子目录的不同限制。以下具体进行说明。5.4 UNIX安全漏洞及防护 5.4.1 RPC服务缓冲区溢出1)描述 检查是否运行了下面3个被广泛利用的RPC服务中的一个:rpc.ttdbserverdrpc.cmsdrpc.statd这些服务通常被缓冲区溢出攻击成功利用,因为RPC程序不进行合适的错误检查。缓冲区溢出允许攻击者发送程序不支持的数据,因为程序不进行合理的错误检查,数据被继续传递和处理。3)抵御攻击按照下面步骤保护系统避免受到该类攻击:只要允许,在可以从Internet直接访问的机器上关闭或删除这些服务。在必须运行该服务时,安装最新的补丁,以下是各个系统补丁下载网址。Solaris Software补丁:IBM AIX Software补丁:SGI Software补丁:Compaq(Digital Unix)补丁:定期搜索供应商的补丁库查找最新的补丁并立刻安装。关闭使用的RPC端口(port 111)。关 闭 RPC“loopback”端 口,32770-32789(TCP and UDP)。5.4.2 Sendmail漏洞1)描述 3)确认是否受影响Sendmail有很多的易受攻击的弱点,必须定期的更新和打补丁。检查Sendmail最新版本和补丁版本,如果你没有更新版本或安装补丁文件,你可能就受此条影响。4)抵御攻击可以采取下列步骤来保护Sendmail:更新Sendmail到最新版本或安装相应的补丁文件,可以到以下网址获得相关信息。-97.05.sendmail.html 在不是邮件服务器和代理服务器上,不要在daemon模式下(关闭 the-bd开关)运行 Sendmail。5.4.3 BIND脆弱性1)描述Berkeley Internet Name Domain(BIND)是域名服务(DNS,Domain Name Service)用得最多的软件包。DNS非常重要,利用它在Internet上通过机器的名字(如)找到机器而不必知道机器的IP地址。这使它成为攻击的目标。根据1999年的调查,连接在Internet上的50%的DNS服务器运行的都是易受攻击的版本。在一个典型的BIND攻击的例子里,入侵者删除了系统日志并安装了工具来获取管理员的权限,然后安装了IRC工具和网络扫描工具,扫描了12个B类网来寻在所有不是DNS服务器的机器上,取消BIND name daemon(称为“named”)。以非特权的用户身份运行BIND以免远程控制的攻击。然而DNS要求只有作为root才有权配置1024以下的端口并运行该程序。因此必须配置BIND使其与端口捆绑后改变用户ID。在chroot目录下运行BIND以免受到远程控制攻击。除了对授权的用户外取消区域转换功能。取消递归和粘合以保护DNS缓冲区位置。2)隐藏版本字符串5.4.4 R命令1)描述在UNIX世界里,相互信任关系到处存在,特别是在系统管理方面。公司里经常指定一个管理员管理几十个区域或者甚至上百台机器。管理员经常使用信任关系和UNIX的R命令从一个系统方便的切换到另一个系统。R命令允许一个用户登录远程机器而不必提供口令。取代询问用户名和口令,远程机器认可来自可信赖IP地址的任何用户。如果攻击者获得了可信任网络里的任何一台的机器,就能登录任何信任该IP的任何机器。下面命令经常用到:rlogin remote login,远程登录。rsh remote shell,远程shell。rcp remote copy,远程拷贝。2)影响的系统UNIX包括 Linux的大部分版本。信任关系通过设置两个文件来建立的,通过检测/etc/hosts.equiv或/.rhosts来确认该UNIX系统是否设置了信任关系。3)怎样抵御攻击 不要允许以IP为基础的信任关系,不要使用R命令。基于IP地址的认证太容易被跳过,认证应该基于更安全的方式像tokens或者至少是口令。如果使用R命令,应限制它的登录范围,小心的控制可触及的网络的范围。不要把“rhost”文件放在“root”用户下。可以经常使用“find”命令来查找由用户生成的任何“rhost”文件。5.4.5 LPD1)描述 UNIX里,in.lpd为用户提供了与本地打印机交互的服务。lpd侦听TCP 515端口的请求。程序员在写代码时犯了一点错误,使得当打印工作从一台机器传到另一台机器时会导致缓冲区溢出的漏洞。如果在较短的时间里接受了太多的任务,后台程序就会崩溃或者以更高的权限运行任意的代码。2)影响的系统受影响的系统有:Solaris 2.6 for SPARC;Solaris 2.6 x86;Solaris 7 for SPARC;Solaris 7 x86;Solaris 8 for SPARC;Solaris 8 x86;Linux 的多个版本。3)确认是否受影响运行一个漏洞扫描程序来查找这个漏洞或者进行手工检查。最简单的办法是查看系统是否运行LDP以及它的版本。如果使用的是该软件容易受攻击的版本并且没有打补丁,那么系统就将易受到影响。4)抵御攻击可以将补丁文件安装在受影响的机器上以防此类漏洞。同时,还有其他的一些方法防止利用这个漏洞进行的攻击:如果对远程的打印处理不是必要的,在/etc/inetd.conf中关闭打印设备。打 开 noexec_user_stack,可 以 在 /etc/system文件里加入下面的行,然后重启来打开该功能:set noexec_user_stack=1set noexec_user_stack_log=1限制到 port 515/tcp的连接。配置安装tcpwrappers,它是tcpd-7.6软件包的一部分,可以从下载。5.4.6 Sadmind and Mountd1)描述Sadmind允许远程登录到Solaris系统进行管理,并提供了一个系统管理功能的图形用户接口。Mountd控制和判断安装在UNIX主机上的NFS的连接。由于软件开发人员的错误导致的这些应用的缓冲区溢出漏洞可能被攻击者利用获取root的存取权限。2)影响的系统UNIX的多个版本。3)确认是否受影响 可以使用漏洞扫描器查看这些服务是否在运行以及它们是否易于攻击。可采取一定措施防御该类攻击。4)抵御攻击下面的措施会保护 NFS漏洞,包括Sadmind和Mountd:如果可能,在直接与Internet连接的机器上关闭或者删除Sadmind和Mountd。安装最新的补丁。使用基于 host/ip的输出清单。把输出文件系统设置成只读或者没有suid。使用 nfsbug扫描漏洞。5.4.7 缺省SNMP字串1)描述 简单网络管理协议(SNMP,Simple Network Management Protocol)是管理员广泛使用的协议,用来管理和监视各种各样与网络连接的设备,从路由器到打印机到计算机。SNMP使用没有加密的公共字符串作为惟一的认证机制。绝大部分SNMP设备使用的公共字符串还是“public”,只有少部分设备供应商为了保护敏感信息把字符串改为“private”。攻击者可以利用这个SNMP中的漏洞远程重新配置或关闭设备。被监听的SNMP通讯能泄漏很多关于网络结构的信息,以及连接在网络上的设备。入侵者可以使用这些信息找出目标并实施他们的攻击。2)影响的系统所有的UNIX系统和网络设备。3)确认是否受影响检查你的设备是否运行了SNMP协议。如果是,检查配置文件找到公共漏洞。缺省的和空白的 SNMP community名字。容易猜测的 SNMP community名字。隐藏 SNMP community字符串。4)抵御攻击抵御SNMP漏洞的攻击的步骤如下:如果不需要 SNMP,关闭它。如 果 一 定 要 使 用 SNMP,对 社 团 号(Community Names)使用和口令一样的策略;确保它们难于猜测和破解,并定期改变。使用snmpwalk命令验证和检验社团号。除非必须从本地网外部访问和管理设备,否则在边界路由器或防火墙处过滤掉SNMP(Port 161/UDP)。只要可能,设置MIB(管理信息结构)为只读。