十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
随着开源系统Linux的盛行,其在大中型企业的应用也在逐渐普及,很多企业的应用服务都是构筑在其之上,例如Web服务、数据库服务、集群服务等等。因此,Linux的安全性就成为了企业构筑安全应用的一个基础,是重中之重,如何对其进行安全防护是企业需要解决的一个基础性问题,基于此,本文将给出十大企业级Linux服务器安全防护的要点。 1、强化:密码管理 设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。 目前密码破解程序大多采用字典攻击以及暴力攻击手段,而其中用户密码设定不当,则极易受到字典攻击的威胁。很多用户喜欢用自己的英文名、生日或者账户等信息来设定密码,这样,黑客可能通过字典攻击或者是社会工程的手段来破解密码。所以建议用户在设定密码的过程中,应尽量使用非字典中出现的组合字符,并且采用数字与字符相结合、大小写相结合的密码设置方式,增加密码被黑客破解的难度。而且,也可以使用定期修改密码、使密码定期作废的方式,来保护自己的登录密码。 在多用户系统中,如果强迫每个用户选择不易猜出的密码,将大大提高系统的安全性。但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与Linux系统的/etc/passwd密码文件或/etc/shadow影子文件相比较,如果发现有吻合的密码,就可以求得明码了。在网络上可以找到很多密码破解程序,比较有名的程序是crack和john the ripper.用户可以自己先执行密码破解程序,找出容易被黑客破解的密码,先行改正总比被黑客破解要有利。 2、限定:网络服务管理 早期的Linux版本中,每一个不同的网络服务都有一个服务程序(守护进程,Daemon)在后台运行,后来的版本用统一的/etc/inetd服务器程序担此重任。Inetd是Internetdaemon的缩写,它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。由于受inetd的统一指挥,因此Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上“#”号。 一般来说,除了http、smtp、telnet和ftp之外,其他服务都应该取消,诸如简单文件传输协议tftp、网络邮件存储及接收所用的imap/ipop传输协议、寻找和搜索资料用的gopher以及用于时间同步的daytime和time等。还有一些报告系统状态的服务,如finger、efinger、systat和netstat等,虽然对系统查错和寻找用户非常有用,但也给黑客提供了方便之门。例如,黑客可以利用finger服务查找用户的电话、使用目录以及其他重要信息。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。Inetd除了利用/etc/inetd.conf设置系统服务项之外,还利用/etc/services文件查找各项服务所使用的端口。因此,用户必须仔细检查该文件中各端口的设定,以免有安全上的漏洞。 在后继的Linux版本中(比如Red Hat Linux7.2之后),取而代之的是采用xinetd进行网络服务的管理。 当然,具体取消哪些服务不能一概而论,需要根据实际的应用情况来定,但是系统管理员需要做到心中有数,因为一旦系统出现安全问题,才能做到有步骤、有条不紊地进行查漏和补救工作,这点比较重要。 3、严格审计:系统登录用户管理 在进入Linux系统之前,所有用户都需要登录,也就是说,用户需要输入用户账号和密码,只有它们通过系统验证之后,用户才能进入系统。 与其他Unix操作系统一样,Linux一般将密码加密之后,存放在/etc/passwd文件中。Linux系统上的所有用户都可以读到/etc/passwd文件,虽然文件中保存的密码已经经过加密,但仍然不太安全。因为一般的用户可以利用现成的密码破译工具,以穷举法猜测出密码。比较安全的方法是设定影子文件/etc/shadow,只允许有特殊权限的用户阅读该文件。 在Linux系统中,如果要采用影子文件,必须将所有的公用程序重新编译,才能支持影子文件。这种方法比较麻烦,比较简便的方法是采用插入式验证模块(PAM)。很多Linux系统都带有Linux的工具程序PAM,它是一种身份验证机制,可以用来动态地改变身份验证的方法和要求,而不要求重新编译其他公用程序。这是因为PAM采用封闭包的方式,将所有与身份验证有关的逻辑全部隐藏在模块内,因此它是采用影子档案的最佳帮手。 此外,PAM还有很多安全功能:它可以将传统的DES加密方法改写为其他功能更强的加密方法,以确保用户密码不会轻易地遭人破译;它可以设定每个用户使用电脑资源的上限;它甚至可以设定用户的上机时间和地点。 Linux系统管理人员只需花费几小时去安装和设定PAM,就能大大提高Linux系统的安全性,把很多攻击阻挡在系统之外。 4、设定:用户账号安全等级管理 除密码之外,用户账号也有安全等级,这是因为在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。 在Linux系统中的部分文件中,可以设定允许上机和不允许上机人员的名单。其中,允许上机人员名单在/etc/hosts.allow中设置,不允许上机人员名单在/etc/hosts.deny中设置。此外,Linux将自动把允许进入或不允许进入的结果记录到/var/log/secure文件中,系统管理员可以据此查出可疑的进入记录。 每个账号ID应该有专人负责。在企业中,如果负责某个ID的职员离职,管理员应立即从系统中删除该账号。很多入侵事件都是借用了那些很久不用的账号。 在用户账号之中,黑客最喜欢具有root权限的账号,这种超级用户有权修改或删除各种系统设置,可以在系统中畅行无阻。因此,在给任何账号赋予root权限之前,都必须仔细考虑。 Linux系统中的/etc/securetty文件包含了一组能够以root账号登录的终端机名称。例如,在RedHatLinux系统中,该文件的初始值仅允许本地虚拟控制台(rtys)以root权限登录,而不允许远程用户以root权限登录。最好不要修改该文件,如果一定要从远程登录为root权限,最好是先以普通账号登录,然后利用su命令升级为超级用户。 5、谨慎使用:“r系列”远程程序管理 在Linux系统中有一系列r字头的公用程序,比如rlogin,rcp等等。它们非常容易被黑客用来入侵我们的系统,因而非常危险,因此绝对不要将root账号开放给这些公用程序。由于这些公用程序都是用。rhosts文件或者hosts.equiv文件核准进入的,因此一定要确保root账号不包括在这些文件之内。 由于r等远程指令是黑客们用来攻击系统的较好途径,因此很多安全工具都是针对这一安全漏洞而设计的。例如,PAM工具就可以用来将r字头公用程序有效地禁止掉,它在/etc/pam.d/rlogin文件中加上登录必须先核准的指令,使整个系统的用户都不能使用自己home目录下的。rhosts文件。 6、限制:root用户权限管理 Root一直是Linux保护的重点,由于它权力无限,因此最好不要轻易将超级用户授权出去。但是,有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用其他工具让这类用户有部分超级用户的权限。sudo就是这样的工具。 sudo程序允许一般用户经过组态设定后,以用户自己的密码再登录一次,取得超级用户的权限,但只能执行有限的几个指令。例如,应用sudo后,可以让管理磁带备份的管理人员每天按时登录到系统中,取得超级用户权限去执行文档备份工作,但却没有特权去作其他只有超级用户才能作的工作。 sudo不但限制了用户的权限,而且还将每次使用sudo所执行的指令记录下来,不管该指令的执行是成功还是失败。在大型企业中,有时候有许多人同时管理Linux系统的各个不同部分,每个管理人员都有用sudo授权给某些用户超级用户权限的能力,从sudo的日志中,可以追踪到谁做了什么以及改动了系统的哪些部分。 值得注意的是,sudo并不能限制所有的用户行为,尤其是当某些简单的指令没有设置限定时,就有可能被黑客滥用。例如,一般用来显示文件内容的/etc/cat指令,如果有了超级用户的权限,黑客就可以用它修改或删除一些重要的文件。 7、追踪黑客踪迹:日志管理 当用户仔细设定了各种与Linux相关的配置(最常用日志管理选项),并且安装了必要的安全防护工具之后,Linux操作系统的安全性的确大为提高,但是却并不能保证防止那些比较熟练的网络黑客的入侵。 在平时,网络管理人员要经常提高警惕,随时注意各种可疑状况,并且按时检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如: 正常用户在半夜三更登录; 不正常的日志记录,比如日志只记录了一半就切断了,或者整个日志文件被删除了; 用户从陌生的网址进入系统; 因密码错误或用户账号错误被摈弃在外的日志记录,尤其是那些一再连续尝试进入失败,但却有一定模式的试错法; 非法使用或不正当使用超级用户权限su的指令; 重新开机或重新启动各项服务的记录。 上述这些问题都需要系统管理员随时留意系统登录的用户状况以及查看相应日志文件,许多背离正常行为的蛛丝马迹都应当引起高度注意。 8、横向扩展:综合防御管理 防火墙、IDS等防护技术已经成功地应用到网络安全的各个领域,而且都有非常成熟的产品。 在Linux系统来说,有一个自带的Netfilter/Iptables防火墙框架,通过合理地配置其也能起到主机防火墙的功效。在Linux系统中也有相应的轻量级的网络入侵检测系统Snort以及主机入侵检测系统LIDS(Linux Intrusion Detection System),使用它们可以快速、高效地进行防护。 需要提醒注意的是:在大多数的应用情境下,我们需要综合使用这两项技术,因为防火墙相当于安全防护的第一层,它仅仅通过简单地比较IP地址/端口对来过滤网络流量,而IDS更加具体,它需要通过具体的数据包(部分或者全部)来过滤网络流量,是安全防护的第二层。综合使用它们,能够做到互补,并且发挥各自的优势,最终实现综合防御。 9、评测:漏洞追踪及管理 Linux作为一种优秀的开源软件,其自身的发展也日新月异,同时,其存在的问题也会在日后的应用中慢慢暴露出来。黑客对新技术的关注从一定程度上来说要高于我们防护人员,所以要想在网络攻防的战争中处于有利地位,保护Linux系统的安全,就要求我们要保持高度的警惕性和对新技术的高度关注。用户特别是使用Linux作为关键业务系统的系统管理员们,需要通过Linux的一些权威网站和论坛上尽快地获取有关该系统的一些新技术以及一些新的系统漏洞的信息,进行漏洞扫描、渗透测试等系统化的相关配套工作,做到防范于未然,提早行动,在漏洞出现后甚至是出现前的最短时间内封堵系统的漏洞,并且在实践中不断地提高安全防护的技能,这样才是一个比较的解决办法和出路。 10、保持更新:补丁管理 Linux作为一种优秀的开源软件,其稳定性、安全性和可用性有极为可靠的保证,世界上的Linux高手共同维护着个优秀的产品,因而起流通渠道很多,而且经常有更新的程序和系统补丁出现,因此,为了加强系统安全,一定要经常更新系统内核。 Kernel是Linux操作系统的核心,它常驻内存,用于加载操作系统的其他部分,并实现操作系统的基本功能。由于Kernel控制计算机和网络的各种功能,因此,它的安全性对整个系统安全至关重要。早期的Kernel版本存在许多众所周知的安全漏洞,而且也不太稳定,只有2.0.x以上的版本才比较稳定和安全(一般说来,内核版本号为偶数的相对稳定,而为奇数的则一般为测试版本,用户们使用时要多留意),新版本的运行效率也有很大改观。在设定Kernel的功能时,只选择必要的功能,千万不要所有功能照单全收,否则会使Kernel变得很大,既占用系统资源,也给黑客留下可乘之机。 在Internet上常常有最新的安全修补程序,Linux系统管理员应该消息灵通,经常光顾安全新闻组,查阅新的修补程序。
创新互联建站网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都网站设计、成都做网站、外贸网站建设,成都网站设计,1元广告,成都做网站选创新互联建站,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
安全问题对于it管理员来说是需要长期关注的。主管们需要一套框架来对操作系统的安全性进行合理的评估,包括:基本安全、网络安全和协议,应用协议、发布与操作、确信度、可信计算、开放标准。在本文中,我们将按照这七个类别比较微软windows和linux的安全性。最终的定性结论是:目前为止,linux提供了相对于windows更好的安全性能,只有一个方面例外(确信度)。 无论按照什么标准对windows和linux进行评估,都存在一定的问题:每个操作系统都不止一个版本。微软的操作系统有windows98、windows nt、 windows 2000、 windows 2003 server和windows ce,而linux的发行版由于内核(基于2.2、2.4、2.6)的不同和软件包的不同也有较大的差异。我们本文所使用的操作系统,都是目前的技术而不是那些"古老"的解决方案。
用户需要记住:linux和windows在设计上就存在哲学性的区别。windows操作系统倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合;而linux不同于windows,它的内核空间与用户空间有明显的界限。根据设计架构的不同,两者都可以使操作系统更加安全。
linux和windows安全性的基本改变
对于用户来说,linux和windows的不断更新引发了两者之间的竞争。用户可以有自己喜欢的系统,同时也在关注竞争的发展。微软的主动性似乎更高一些――这是由于业界"冷嘲热讽"的"激励"与linux的不断发展。微软将在下几个月对windows安全进行改观,届时微软会发布windows xp的service pack2。这一服务包增强了windows的安全性,关闭了原先默认开放的许多服务,也提供了新的补丁管理工具,例如:为了避免受到过多无用的信息,警告服务和信使服务都被关闭。大多数情况下,关闭这些特性对于增强系统安全性是有好处的,不过很难在安全性与软件的功能性、灵活性之间作出折衷。
最显著的表现是:微软更加关注改进可用性的同时增强系统的安全性。比如:2003年许多针对微软的漏洞攻击程序都使用可执行文件作为电子邮件的附件(例如mydoom)。service pack2包括一个附件执行服务,为outlook/exchange、 windows messenger和internet explorer提供了统一的环境。这样就能降低用户运行可执行文件时感染病毒或者蠕虫的威胁性。另外,禁止数据页的可执行性也会限制潜在的缓冲区溢出的威胁。不过,微软在service pack2中并没有修改windows有问题的架构以及安全传输的部分,而是将这部分重担交给了用户。
微软的重点显然是支持应用程序的安全性。service pack2中增强的许多方面都是以outlook/exchange和internet explorer作为对象的。例如:internet explorer中有一个智能的mime类型检查,会对目标的内容类型进行检查,用户可以获悉该内容中是否存在潜在的有害程序。不过这一软件是不是能将病毒与同事的电子数据表区分开来呢?
service pack2的另一个新特性是能够卸载浏览器的多余插件,这需要终端用户检查并判断需要卸载哪些插件。outlook/exchange可以预览电子邮件消息,因此用户可以在打开之前就将电子邮件删除。另一个应用安全的增强,防火墙在网络协议栈之前启动。对于软件开发者来说,远方过程调用中权限的改变,使得安全性差的代码难以工作正常。
service pack2也为windows用户提供了许多华丽的新特性,但是问题仍然存在:这些特性会不会对管理员甚至是终端用户造成负担?是不是在增加了windows操作系统代码安全性的同时让系统变得更加复杂?
开放源代码、共享源代码
微软的共享源代码计划政策属于"可看但不可修改",例外的情况是windows ce共享源代码许可证计划。对于公司来说,可以将基于windows ce的设备和解决方案推向市场。这是微软共享源代码计划下,源设备制造商(oem)、半导体提供商、系统集成商可以完全访问windows ce源代码的唯一项目。所有许可证持有者都有对源代码的完全访问权,当然可以修改代码,但只有oem才能发布对基于wince设备的修改。所有其他的共享源代码许可证持有者,如果要访问该项目不允许的源代码,需要向redmond.wash的微软总部请示。
某些用户认为共享源代码计划对于调试程序会有帮助,微软要求编译的时候必须在微软总部,这不得不说是一个很大的限制。尽管微软想尽力增加透明,如果无法编译,就很难确定源代码在真实的it环境中是否能正常工作。限制用户修改并编译windows的源代码,降低了人们访问windows共享源代码并寻找安全漏洞的热情。
数据中心和桌面下linux的安全收益
在未来的12个月里,linux将加强在数据中心的份额,并试图冲击微软在桌面上的垄断。这很大程度上是受益于linux2.6版内核的新特性与新功能。有了linux v2.6,安全框架现在已经模块化了。在这种模型下,linux内核的所有方面都提供了细粒度的用户访问控制,而以前的版本的内核允许超级用户完全控制。现在的实现仍然支持root完全访问系统,但完全可以创建一个不遵循该模型的liinux系统。
linux v2.6内核的一个主要变化,就是新增的linux安全模块(lsm),用户不需要打内核补丁就能为linux增加更多的安全机制。新版内核,在lsm上建立了多个访问控制机制,其中包括美国国安局(nsa)的securiy enhanced linux(selinux)。由于国安局对操作系统安全与强制访问控制的兴趣,产生了selinux。国安局的研究人员正在开发linux的安全模块,可以支持2.6内核的类型加强、基于脚色的访问控制、多层次安全。selinux使用了命为"域类型强制"的安全模型,可以将应用程序互相隔离,同时也与基本的操作系统隔离,从而限制入侵后程序或者网络服务造成的影响。
linux的2.6内核中已经加入了对selinux的细粒度布尔值标签的支持,其他的厂商也开始利用国安局的selinux。例如,immunix提供了一些列产品,包括stackguard和子域stackguard模块,可以配置进程只使用某些系统调用。redhat声称selinux将在redhat企业服务器4.0的安全架构上起重要的作用。
今天,linux的内核中已经有一个功能强大、灵活的强制访问控制子系统。这个系统强制隔离有机密和完整性要求的数据,因此任何潜在的破坏,即时是由超级用户进程所造成的,都被linux系统限制起来了。
linux v2.6还提供了对加密安全的支持,包括了ipsec使用的加密api。这样,在网络和存储加密时就可以使用多种算法(例如:sha-1、des、三重des、md4、hmac、ede、和blowfish)。linux对ipsec ipv4和ipv6协议的支持是一个很大的进步。由于安全抽象到了协议层,用户程序对潜在攻击程序的脆弱性有所降低。密码加密模块目前还不是linux内核的一部分,如果linux真的实现了这样的特性,就可以阻止未签名的模块被内核访问。
现在仍然困扰windows用户的一个问题就是缓冲区溢出。linux用户从2.6内核开始就会收益于exec-shield补丁。exec-shield可以阻止许多漏洞攻击程序覆盖数据结构并向这些结构中插入代码的企图。由于不需要重新编译应用程序就能使exec-shield补丁奏效,实现起来很方便。
另外,2.6内核中的抢占式内核,也减少了延迟,使得linux不但可以应用到数据中心,甚至可以在有软实时要求的应用程序使用。许多linux用户使用的是硬件厂商和系统提供商的不开源的驱动程序(二进制模块)。问题在于:虽然添加这些驱动和模块有用,对于linux系统并不一定有益。例如,一个未开源的驱动模块有可能控制系统调用并修改系统调用表。2.6的内核提供了特殊的保护措施,可以对限制未开源驱动或者模块对内核的访问。这一特性增加了稳定性,但从安全角度并没有增加新的限制,也不能阻止黑客编写恶意模块。
许多linux用户来说,最有创造性的特性就是用户模式linux了(uml),uml是linux内核的一个补丁,可以允许可执行二进制文件在linux宿主主机上编译并运行。使用uml有很多好处,最有用的特性就是虚拟机。由于对uml的操作不会影响宿主主机,可以把它作为测试软件、运行不稳定发行版、检查有威胁活动的平台。uml最终会创建一个安全架构上完全虚拟的环境。
linux与windows安全性能的重要结论
对操作系统的安全性进行定性分析,很容易包含主观意见,得到的结论会由于过去和现在的经验而有很大的不同。本文的目标是给用户提供一个框架,让他们更多的理解windows和linux的安全性能。下面的分析并不全面,只是终端用户进行评估的起点。linux和windows在技术上不断进步,究竟哪个系统更安全的结论也会不断变化。本文分析的结果:linux提供了比windows更好的安全特性。
基本安全
微软和linux都提供了对验证、访问控制、记帐/日至、受控的访问保护实体、加密的支持。不过linux的表现更好一些,因为linux还提供了linux安全模块、selinux和winbind。linux用户不需对内核打补丁就能增加额外的安全机制。
linux在lsm之上构建了多种访问控制机制,例如:为应用程序建立了单独的空间,使它们之间相互分离,也与基本的操作系统隔离,这样即使应用程序出现了安全问题也不会影响操作系统。linux的基本安全也可以通过应用程序增强,比如tripwire(可以定期对系统进行关键文件的完整性检查,如果文件的内容或者属性有变化就通知系统管理员)。
windows的限制在于基本安全是依靠mscapi的,在代码签名时信任多个密钥。微软的模型重点在于可以同时对一个产品使用弱加密或者强加密。尽管模块不是以相同的密钥进行签名,mscapi却信任许多根验证机构,代码签名也信任多个密钥。因此只要有一个密钥被泄露就会使整个系统异常脆弱。密钥泄漏的情况:授权的代码签名者不小心纰漏了自己的私钥,或者签名机构错误的签发了一个证书。这些情况曾经发生,有一次verisign错误的以微软的名义签发了两个证书,并将这些证书的控制权交给了未授权的个人。
网络安全与协议
linux与windows对网络安全和协议的支持都很不错。两者都支持ipsec,这是一个运行于ip层的开放的基于加密的保护方式。ipsec能够识别终端主机,同时能够对网络传输数据和加密数据的过程中的修改作出判断。linux下使用openssh、openssl和openldap,分别对应微软系统下闭合源码的ssh、ssl和ldap。
应用安全
由于微软iis和exchange/outlook不断出现的安全问题,linux显得更胜一筹。apache和postfix都是跨平台的应用程序,比微软的相应产品更加安全。由于linux有内建的防火墙使得其安全性有所增强,snort也是一个优秀的入侵检测系统。关于基于x86系统的linux内核,一个很重要的特性就是ingomolnar的exec-shield,可以保护系统不受缓冲区或者函数指针溢出的攻击,从而对那些通过覆盖数据结果或者插入代码的攻击程序有所防护。exec-shield补丁使攻击者很难实现基于shell-code的攻击程序,因为exec-shield的实现对于应用程序是透明的,因此不需要应用程序的重新编译。
微软正在大刀阔斧的重新设计产品的安全架构,并为已安装的系统提供补丁。不过旧版本的windows产品仍然存在安全问题,这使得任务变得复杂。许多微软用户正面临安全威胁,而补丁在发布之前必须做好文档。另外,微软倾向于将应用程序的数据和程序代码混合在一起,比如activex,这使得系统外的不可信数据也能被使用,甚至是利用不可信数据执行任意代码。某些情况下,windows甚至允许外部系统提供数据签名的代码,这就意味着本地的系统管理员也不能审查代码,不过他仍然知道是谁对代码签的名。
在点虐 框架下,微软应用程序的安全性有所改进。当然,对于那些异构平台,例如linux、windows、unix尤其是建立在java平台下的应用程序,微软的产品是有很大局限性的。
分发和操作
关于分发和操作,linux与微软的侧重点不同,linux下大部分的管理都通过命令行接口。linux的发行商也提供了各种安装和配置工具,例如:up2date、yast2和webmin。bastille linux是一个支持red hat、debian、mandrake、suse和turbolinux的加固工具。相比之下,windows的系统管理员使用简单易用的gui工具,配置的时候也很容易出错误。尽管一些人认为,一个周之内将任何人都可能成为windows的系统管理员,问题是他们到底对管理了解多少?微软的安全问题,绝大多数都是由于发布与操作时的拙劣配置。windows自带安装和配置工具,微软也为加固域控制器、架构服务器、文件服务器、打印服务器、ias服务器、证书服务器和堡垒主机提供了向导,不过加固架构与加固操作系统还是有区别的。
确信度
定义操作系统确信度的标准是公共标准(cc),这是iso标准(iso 15408)。关于确信度的等级有一个层次结构 ―― 从eal1到eal7。只有在特定的软件、硬件和系统配置下,公共标准的评估才是有效的。windows的eal比linux要高,达到了eal4,而linux目前只达到了eal3。suse正计划在年底达到eal4。政府机构大部分都需要cc的确信度。即使只有政府客户(甚至特指美国国防部)才需要确信度,商业产品满足这一要求也是一件好事。不过大部分的用户都不需要达到国防部的标准。
可信计算
可信计算是一种架构,可以避免对应用程序的修改,与厂商的通信也是安全的。许多厂商,比如intel、微软和ibm,都在欢迎这项新兴的技术。目前,这一功能只供展示,现实中并没有可用的系统,因此linux和windows都不能胜任。微软的可信计算与数字权力管理有关,而开源社区目前没有可信计算的项目。
开放标准
linux要优于windows,因为它支持所有的开放标准(尽管windows也支持许多相同的开放便准,如ipsec、ike和ipv6,也乐意扩展标准)。对于使用异构系统并有互操作需求的公司,"标准"如果代有私有代码,就使得对缺陷的检测和错误的修正更困难、耗费的时间也更多。一个例子就是微软对kerberos标准协议的扩展。微软提供了对kerberos票据的授权功能,尽管kerberos一开始也是按照这个目的设计的,这一功能却一直没有使用。微软扩展了kerberos标准,在处理过程中也期望其它程序共享票据的授权数据字段。因此,微软的kerberos版本与标准不能完全交互。it经理会发现:在一个异构的it环境中,使用微软kerberos会使得整个环境难以管理,它们需要完全的windows it架构。
开源
如果安全操作系统的标准就是开源,那么linux显然要优于windows。微软的共享源代码计划就是为了满足用户对源代码的需要。不过,该计划的大部分内容都是"可看但不可修改"的情况。俄罗斯、英国、中国和北约参与了微软的政府安全计划。尽管该计划的目标是增加透明度和加强合作,如果某组织需要访问微软的源代码,需要遵守各种各样的要求。例如:并不是所有的windows源代码都可以在线查看,因此如果用户需要编译并测试应用程序,必须亲自访问微软的总部。
推荐
linux和windows的安全性必定会引起持续的争论,到底是开源的操作系统好,还是封闭源代码的操作系统好?业界的逻辑是:基于开放标准与开放源代码的操作系统,能提供更好的互用性,更好的错误发现和修正机制,这要比通过隐藏来达到安全的模型优秀。开源也促使linux的发行提供商对生产过程完全透明。每一步对于用户来说都是可再现的,因此能够逐渐的增强安全。而windows的源代码并不易获得,因此不能提供等价的透明。
linux提供了至少不逊于windows的安全性能。linux系统的安全取决于对linux发行版的选择、使用的内核版本、实现与支持系统的it员工的水平。一旦你选定了产品,实现并维护操作系统的安全就完全依靠it员工了,你需要对他们进行培训,让他们掌握足够的专业技能,完成分发、管理和故障排除的任务。要让it经理和系统管理员明白如何应用这些惯例。
我们推荐各种机构首先了解自己的功能需要,然后熟悉一下操作系统关键性的安全性能,这样就能减少使用操作系统的风险,确保一致性。
如果你正考虑移植到另一个操作系统或者是升级目前的产品,你需要按照安全性能的要求来选择操作系统的环境。把你的商业需要与对操作系统安全性的理解相结合,就能在实现功能的同时,兼顾一致性与风险最小化。
表一:linux和windows操作系统重要的安全特性
分类
特性
linux
windows
定性得分
基本安全
验证、访问控制加密、记帐/日至
可插入的认证模块、插件模块、kerberos、pki、winbind、 acls、 lsm、selinux、 受控的访问保护实体检测、内核加密
kerberos、pki、 访问控制列表、受控的访问保护实体检测、微软的应用程序加密程序接口。
linux 更加出色
网络安全与协议
验证、层、网络层
openssl、open ssh、openldap、 ipsec
ssl、 ssh、 ldap、 ad、 ipsec
两者都很不错
应用安全
防病毒、 防火墙、 入侵检测软件、 web服务器、 email、 智能卡支持
openav、 panda、 trendmicro、 内核内建的防火墙功能、 snort、 apache、 sendmail、 postfix、 pkcs 11、 exec-shield
mcafee、 symantec、 check point、 iis、 exchange/outlook、 pcks 11
linux略胜一筹
分发与操作
安装、 配置、 加固、 管理、 漏洞扫描器
安装与配置工具、 bastille、大部分的管理通过命令行完成、 nessus、 发行版相关的up2date、 yast、 webmin
windows自带的安装和配置工具、没有特定的加固工具、 管理gui、 使用默认安装的配置。
两者都很不错
确信度
常见的公共标准证书、 缺陷处理
linux达到了 eal3,有较好的缺陷处理能力
windows 达到了 eal4,有较好的缺陷处理能力
windows更加出色
可信计算
可信平台的模块、可信计算软件栈、工具、验证
由ibm开发的基于可信平台模块的开源驱动程序、可信计算组的软件栈可望在2005年推出
下一代安全计算基础、有可能在2006年的longhorn中出现。
两者都不够出色
开放标准
ipsec、 posix、 传输层安全、 常见标准
linux 遵循所有的开放标准
microsoft也参与了开放标准,但仍有一些私有标准。
linux更加出色
和信云桌面的3V架构都可以部署在linux上,已经多年稳定运行。可以兼容CentOS、Ubuntu等国外linux,也兼容麒麟、UOS等主流国产化服务器操作系统。终端也兼容国内外linux。