当前位置:Linux教程 - Linux文化 - Suse Linux10"杀手级"组件:AppArmor

Suse Linux10"杀手级"组件:AppArmor





再过一百年,那时的历史学家将把我们描述为“超码的我”(Super Size Me)一代。但这并不仅仅表现在快餐店。我们想要更多时间、更多乐趣、更多的钱、更多的均等利益、生活中更多美好的东西。我们的社会正在追求更多的满足。当然,对于业界而言仅仅追求是不够的。人员创造更高价值、资本增值和IT投资取得更高回报直接关系到企业的生死存亡。

随着性能、扩展性、管理性、可靠性、安全性、技术支持和投资回报要求的提高,Novell以其能够满足这种需求并超出预期水平而享有卓著声誉。最新推出的SUSE Linux Enterprise 10大大超出了企业对于世界一流企业级操作系统的期待。与任何新版系统一样,这个平台的服务器组件SUSE Linux Enterprise Server与其前身相比也增加了功能。该服务器三大新功能显著提升了其满足不断增长需求的超前能力。

AppArmor安全应用程序

存储架构

服务器虚拟化

◆ 增加安全应用程序

安全性一直是Linux操作系统的优势之一。不过,有时个别应用程序的漏洞还是留下了安全隐患。SUSE Linux Enterprise全面集成AppArmor安全应用程序框架消除了这种隐患,为每个应用程序专门加了一层重要的安全保护。

AppArmor并不是SUSE Linux Enterprise Server(企业级服务器)的新功能。第9版系统包含开源内核模块和执行安全管理的组件,并且能够根据独立专用组件创建并解释策略。现在的AppArmor根据GNU通用公共授权完全公开提供,并且紧密集成在SUSE Linux Enterprise框架内。

因此,AppArmor如何保证企业级应用安全成为一个重要问题。这一功能实际采用白名单方法规定允许应用程序执行的动作。这与规定所有不允许应用程序执行的动作的黑名单技术相反。

黑名单在出现您不知道的新漏洞之前具有很好的保护作用,而出现新漏洞之后直到供应商为这些漏洞发布新补丁之前,却不能为您提供保护。

AppArmor的白名单实际上是一种策略,用以管理应用的文件和目录访问,以及应用的POSIX功能。POSIX是IEEE将根特权分成不同组合的标准。换句话说,即使服务器应用需要根特权才能正常运行,与提供未加保护的根特权允许应用运行不同,AppArmor在内核层管理应用的文件访问和POSIX功能,将应用限定在一组资源和根特权实际范围之内。

这种管理每种应用访问的白名单概念已经采用了一段时间。实际上,国家安全局开发了类似的解决方案,称作“安全增强Linux”。但由于性能的负面影响和实施中的困难,妨碍了这个解决方案的部署。而AppArmor对性能的影响很小,并且由于集成在SUSE Linux Enterprise Server中,因此部署十分方便。

◆ 即开即用保护

SUSE Linux Enterprise Server中包含一组AppArmor为通用操作系统和应用软件预定义的策略,包括Apache Web服务器、Postfix邮件服务器、Sendmail邮件服务器、OpenSSH、squid、ntpd、nscd等。除Apache外,这些策略即开即用,不必修改。对于Apache,您需要给出提示,如Web页面中主目录位置等信息。

点击YaST管理控制台中的Novell AppArmor图标,您可以通过四步流程制定AppArmor的应用策略。

◆ 服务器分析器

AppArmor为您确定系统中哪些应用需要配置AppArmor策略提供了相应的工具。在YaST的AppArmor菜单中,点击AppArmor Reports(报告)图标,运行Application Audit Report(应用审计报告)。这个自动化程序可扫描服务器中收听开放式网络端口,尚未定义AppArmor策略的应用。服务器分析器(Server Analyzer)扫描结束后,将列出可由网络外部访问需要定义策略的应用。

◆ 策略模板生成器

启动分析流程时,点击AppArmor主菜单的Add Profile Wizard(添加配置向导)图标。选择准备分析的应用,AppArmor将对选定的应用进行快速静态分析,然后生成这个应用程序专用的策略模板。

◆ 学习模式

创建策略模板之后,配置向导自动进入学习模式,大部分策略开发都需要经过这个过程。在此期间,AppArmor框架监控应用的工作状态,需要访问的目录及文件,以及访问类型。当然,学习模式运行时,您需要在正常运行状态下使用应用程序。根据应用的复杂程度,这个过程可能需要持续几小时到几天不等。

学习期间,应用程序不执行任何策略规则。因此,一定要保证在隔离的环境下运行应用程序,即保证学习良好行为期间,系统不会受到攻击:

AppArmor在内核层管理应用的文件访问和POSIX功能,将应用限定在一组资源和根特权实际范围之内。

◆ 交互式优化器

学习期间,AppArmor创建应用正常及可接受行为相关活动的大型日志。AppArmor中的Interactive Optimizer(交互式优化器)分析所有活动,其方法是由分析向导向您提出一系列问题,以快速确定这个应用程序相应的策略。

例如,学习模式期间,应用可能访问某个目录中的某个文件。这时,分析向导将请您在以下选项中进行选择,确定控制访问的策略:

Allow:可以访问这个目录中指定的文件,允许根据需要运行应用。访问可以包括也可以不包括读取、写入或执行模式。

Deny:不得访问这个目录中指定的文件,防止应用程序正常运行。

Glob:这个功能取路径中最后一项,在这个位置加通配符,表明应用程序可采用规定的访问模式访问这个目录中的所有文件。当您确信应用程序访问目录中其他文件不会造成安全问题,并且的确有必要访问其他文件时,这个功能非常实用。创建这种通配符策略定义可以显著缩短交互流程,因为交互式优化器可以自动确认,不需要再询问是否允许访问这个目录中的其他文件。点击两次“全局”(Glob)按钮可将全局范围加倍。这样,应用程序可以访问这个目录及其所有子目录中的每个文件。

Glob w/Ext:这个功能与Glob相似,只是在路径最后一项处不放置完整通配符,而是放置带有扩展名的通配符。例如,您可以规定应用程序可访问这个目录中所有带某种扩展名的文件。

Edit:这个弹出式对话框供您根据需要编辑目录路径及文件名。

上述情况下,每当您对应用活动日志中有关操作的问题给出答复后,配置向导便会生成这个活动的策略规则。如果这个规则适用于日志中的其他活动,访问过程中向导会跳过这些活动。配置向导还可以确认其他应用程序的现有策略是否适用于您当前运行的应用程序。这样,当出现与现有策略相类似的活动时,向导会询问您是否对运行的应用程序采用这种策略。AppArmor配置向导的这种智能化功能可通过少量策略提问解决一千种,甚至更多活动相关的问题。

回答完问题之后,配置向导将以加色格式指导您查看编辑策略,需要关注的策略规则用黄色加亮,便于您快速分析策略)。

完成策略创建后(基本文本文件),您可以很方便地将这些策略发布给系统环境下采用同样应用程序,要求执行同样策略的其他服务器。同时,AppArmor还包含配置向导的更新功能,便于您轻松地更新现有应用策略,实施系统调整或加入新规则。应用策略生效后,AppArmor保存应用活动违背策略的日志。与配置向导一样,更新配置向导将分析日志,询问活动相关的问题,便于您完善现有策略。

◆ 全面提高存储可靠性、扩展性和可用性

SUSE Linux Enterprise Server新型存储架构致力于在企业级服务器同样环境下具有更出色的表现。以更加可靠和可管理的架构支持小型文件系统或数百万文件高达TB容量的存储。从Web应用到数据库,以更加灵活的架构为各种应用提供支持;以更高的可用性(HA)改善集群性能。提高存储架构扩展能力以并行集群文件系统的方式进行扩展。

上述能力的提升全部基于全面集成的三大存储架构组件:

HA集群资源管理器

集群卷管理器

集群并行文件系统

◆ HA集群资源管理器

存储架构的HA集群资源管理器(HA Cluster Resource Manager)就是过去的高可用性故障恢复集群。换句话说,这个集群软件可以识别发生故障的服务或服务器,并将相应的服务转移到集群中仍在运行的节点,从而保证服务器或服务的正常运行。HA集群资源管理器的重要组件是集成了新推出的Heartbeat 2。

作为高可用性Linux开源项目,与之前的Heartbeat 1相比,Heartbeat 2显著提高了集群的扩展能力。与限于两个节点的集群不同,集群可以增加到六个节点。

Heartbeat 2还新增了高级资源监控功能。这样,应用软件供应商可在其应用软件中加入小型监控代理,以便在应用软件停止正常运行时通知HA集群资源管理器。这种功能在应用软件不需要失效,但却停止运行或不能做出应有响应时非常重要。资源监控代理可以检测这种故障行为,通知HA集群资源管理器要么对应用进行重启,要么将其切换到集群中的另一服务器上。

Heartbeat 2还与SUSE Linux Enterprise Server中的其他存储构件紧密集成,彼此可以进行交互。例如,如果HA集群资源管理器恢复故障资源,也可以通过其恢复文件系统故障。如果卷上发生切换,集群卷管理器可以识别这种切换,并反映到整个集群。这种集成的另一个重要作用是使存储架构具备管理功能。SUSE Linux Enterprise Server采用基于开放式标准的通用信息模型(CIM),显著提高了存储架构的管理能力。

应用软件支持

SUSE Linux Enterprise Server 9环境中运行的,以及通常称为高级LAMP栈(Linux, Apache, MySQL和PHP/Perl/Python)上运行的现有应用软件,均可以在SUSE Linux Enterprise Server 10上运行。不能直接调用操作系统支持Java运行环境的Java应用软件同样可以在这一系统上运行,本次发布包括这种环境。

不过,调用Linux线程的应用软件需要做少量修改。在SUSE Linux Enterprise Server 10中,为有利于采用新型本机POSIX线程库(NPTL),Novell取消了老的Linux线程模型。大部分开发商可能未注意到这种变化,因为SUSE Linux Enterprise Server 9在默认设置下采用NPTL。无论应用软件采用NPTL还是Linux线程,一般都在设置LD_ASSUME_KERNEL环境变量时确定。这种情况只在应用软件需要专门编程感知Linux线程时才会成为问题。

应用软件支持方面,SUSE Linux Enterprise Server现在与桌面对等系统共享通用代码库。因此,Novell可为合作伙伴提供一套用于服务器和桌面系统的软件开发工具包(SDK),可供他们在同一环境下编码测试两种平台,简化开发工作。

重要的是,900多家软件和硬件供应商承诺共同为这一平台提供支持,从而为SUSE Linux Enterprise Server提供了可靠保障并使其不断发展。

◆ 集群卷管理器

SUSE Linux Enterprise Server所含的卷管理器与SUSE Linux Enterprise Server 9中的基本相同,包括多磁盘、设备映射器,逻辑卷管理器和逻辑卷管理器2。同时,还包括企业级卷管理系统2,这是一种可扩展的企业级卷管理器,具有插接功能和集群感知能力。新推了出的版本中,企业级卷管理系统2与HA集群资源管理器的Heartbeat 2和集群并行文件系统中的Oracle集群文件系统(OCFS 2)紧密集成。

◆ 集群并行文件系统

SUSE Linux Enterprise Server(企业级服务器)仍包括非并行,但采用集群保护的可靠文件系统ReiserFS v3、XFS和EXT3。而增加集群并行文件系统切实满足了企业提高企业级文件系统扩展性和可靠性的要求。集群并行文件系统不仅形成集群保护,而且具有集群感知能力,允许多个节点同时访问相同的卷和相同的数据。

SUSE Linux Enterprise Server在支持合作伙伴Polyserve和IBM解决方案的同时,还包含Oracle的OCFS 2成为头条新闻。虽然第9版已配置了OCFS 2,但只能由Oracle的Real Application Clusters(真正应用集群,RAC)加以支持。今年1月开始,OCFS 2包含在标准内核中,从而可与整个存储架构紧密集成,构成数据中心的管理基础。SUSE Linux Enterprise Server的OCFS 2支持已扩展到对其他应用软件和数据库的支持。Linux、Apache、MySQL及Perl和PHP栈均可以在其上运行。OCFS 2集成还是这一版本中Xen虚拟化的重要组件,集群中所有节点可访问同一虚拟图像。

◆ 虚拟增加服务器

除SUSE Linux Enterprise Server发布外,最令人兴奋的是推出服务器虚拟功能。由剑桥大学主持的基于Xen的开源项目“服务器虚拟化”从根本上消除了服务器应用软件、服务及文件系统对特定设备的绑定。

新功能

Xen服务器虚拟化、存储架构高可用性及AppArmor安全应用程序框架是SUSE Linux Enterprise Server 10目前推出的最新功能。不过,Novell最新推出的其他企业级服务器产品也丰富了新的增强功能。

在性能和可靠性方面,新推出的Linux Kernel 2.6.16最多可配置1024个 CPU。其他CPU和调度器改进包括增加了多核/超线程支持,可按执行区划分多处理器机;机器可按CPU拆分,处理器可与某些CPU关联;可插拔I/O调度器现在可根据特定的工作量进行优化,预装的内核补丁支持英特尔今后推出的网络加速技术。IPMI、电源管理、USB、固件、RAID、SAS、SATA、多径及光纤通道等,也将采用先进的开源硬件驱动程序。同时,包括iSCSI发送器和目标器,可供您采用商品化服务器硬件建立全能SAN。

管理性增强功能包括新型Novell客户中心,便于您管理预订。Novell ZENworks Linux Management功能可帮助您管理所有Linux服务器和桌面系统。利用OpenLDAP,您可以管理大型用户群及网络访问控制。您可以在Novell eDirectory环境下,以及Active Directory(活动目录)架构中全面集成SUSE Linux Enterprise Server。

除AppArmor安全外,为强化安全性还增加了MIT Kerberos 1.4.3用于验证,Snort 2.4.3版用于网络入侵检测及AIDE文件处理监控系统。在新增服务方面,SUSE Linux Enterprise Server推出SAMBA 3.0.21b, NFS v4, Cyrus IMAP Deamon Version 2.2, MySQL 5.0, PostgreSQL 8.1, Apache Web Server 2.2.0和PHP 5.1。

当您利用虚拟技术在单个计算服务器上运行多个独立虚拟机时,可以充分体会虚拟化的强大功能。(计算服务器是一种没有I/O功能的并行处理器,而是通过总线或其他前端处理器连接线路处理磁盘、终端、网络等设备的I/O。)这样可以隔离工作量,不必在同一胖操作系统(fat OS)上运行多个应用软件,而是将每一应用软件分开来在各自的虚拟机上运行。如果某个应用软件失效,由于采取隔离方式,因此不会影响计算服务器各自虚拟机上运行的其他服务和应用。而且,由于虚拟机仅运行单个应用或服务,因此您只需要安装这个应用所需的操作系统服务和组件。同时,独立软件开发商和集成商可以自己提供的解决方案开发高度定制的虚拟机。

服务器虚拟化将高可用性提高到一个新的水平,发生故障的服务可以自动重启。这意味着,缩短了应用或服务因故障停止运行的时间,尽管持续时间一般不足以造成生产问题。虚拟机移植功能可将虚拟机上运行的应用或服务,由集群中的一个物理机转移到另一物理机,不需要进行重启。移植过程中不会造成停机,保持应用完整的运行状态。这对于生产期间系统例行维护十分有利。

超虚拟化(Paravirtualization)是一种采用软件连接虚拟机的虚拟技术,类似于底层硬件连接,但又不完全相同。

在服务器合并方面,由于单个计算服务器可运行多个虚拟机,虚拟机也可运行不同客户机操作系统,从而减轻了合并的工作量。尽管SUSE Linux Enterprise Server是服务器虚拟的主机操作系统,但虚拟机也可运行不同的超虚拟化客户机操作系统。(超虚拟化是一种采用软件连接虚拟机的虚拟技术,类似于底层硬件连接,但又不完全相同。)因此,需要在原有操作系统上运行的应用软件可包含在虚拟机中,合并到单个计算服务器上。采用AMD和英特尔即将推出的硬件技术,SUSE Linux Enterprise Server可支持全虚拟。

域:域(Domain)是独立虚拟机的容器。

管理程序:管理程序(Hypervisor)是Xen的核心,在物理层最高特权级硬件保护环路上运行,负责为域分配资源, 以域的本机架构虚拟视图表示域。

域0:作为特权级域,域0(Domain 0)安装Xen虚拟化管理框架。这是管理程序导入时启动的第一个域。这个域管理所有其他域。域0可安装其他虚拟机所需的所有物理驱动器。SUSE Linux Enterprise Server可以作为主机OS在域0中运行,也可以作为客户机在同一物理硬件上运行。

非特权域:非特权域(Unprivileged Domain)指除域0之外的任何域,有时称作DomU。

驱动域:可授权域0之外的域访问特定硬件I/O设备,这种访问不需要域0调度。这些驱动域(Driver Domain)选装时,可减轻域0的工作量,提高系统性能。

超虚拟化:经过超虚拟化(paravirtualized)的客户机操作系统是一种经过修改能够识别其在管理序之上运行的操作系统,以提高系统性能。

全虚拟化:全虚拟化(Fully virtualized)操作系统不知道已被虚拟化,因此管理程序需要俘获和仿真每个I/O及硬件指令。

在即开即用方面,SUSE Linux Enterprise Server将提供全虚拟化和超虚拟化客户机操作系统为其本身提供支持。今年晚些时候,Novell计划为SUSE Linux Enterprise Server 9 SP3增加超虚拟化支持,并支持NetWare在“开放式企业级服务器”环境下运行。

虽然已正式宣布支持,但开源社区已配置的内核仍以超虚拟客户机的形式基于Xen运行,包括Linux 2.4、Linux 2.6、NetWare 6.5、NetBSD、FreeBSD、Plan9和OpenSolaris。即使对客户机宣布的支持有限,但Novell使基于Xen的SUSE Linux Enterprise Server成为最佳虚拟化平台的坚定承诺十分明确,因此未来将值得您更多的期待。

◆ 更多,更多,更多

如果您要的就是炸薯条、饮料加汉堡,那么到汽车窗口对售货员说来份套餐好了。但是,如果要求水平提高了,要的是汽车或房子超出了您想象的现有企业服务器的支持能力, SUSE Linux Enterprise Server可以满足您的需求。

AppArmor社区

为进一步方便组织利用AppArmor安全应用程序从中受益,Novell发起了一个开源项目,邀请您及其他社区成员共同推动AppArmor今后的发展,并提交您根据自己的应用所开发的AppArmor方案。这个项目的目标是建立安全应用程序预定策略大型知识库,帮助您及开源社区中的其他成员快速方便地实际应用AppArmor,保护IT投资。