app教程网 学习教程 Linux十大高级安全管理技巧

Linux十大高级安全管理技巧

由于Linux操作系统是一个开源的免费操作系统,因此受到越来越多用户的欢迎。随着Linux操作系统在中国的日益普及,

政府相关部门已经把基于Linux的自主版权操作系统的发展上升到了维护国家信息安全的高度,因此不难预测未来Linux操作系统在中国的发展会更快更大。尽管Linux与UNIX非常相似,

但是它们之间有一些重要的区别。对于很多习惯了UNIX和WindowsNT的系统管理员来说,如何保证Linux操作系统的安全性将面临很多新的挑战。本文介绍了一系列实用的Linux安全管理经验。

首先,文件系统

在Linux系统中,为不同的应用程序安装单独的主分区,并将关键分区设置为只读,会大大提高文件系统的安全性。这主要涉及到Linux自带的ext2文件系统的两大属性:add-only(仅添加)和不可变。

文件分区Linux的文件系统可以分为几个主分区,每个分区的配置和安装都是不同的。一般至少要建立/、/usr/local、/var和/home分区。

/usr可以以只读方式安装,并被视为不可修改。如果/usr中的任何文件发生变化,系统将立即发出安全警报。当然,这不包括用户自己更改/usr中的内容。

/lib、/boot和/sbin的安装和设置是相同的。安装时应尽可能将它们设置为只读,对它们的文件、目录和属性的任何修改都会引起系统报警。

当然,不可能将所有主要分区都设置为只读。有些分区(如/var)本身不能设置为只读,但不应该允许它们具有执行权限。

利用ext2文件系统上add-only和immutable的文件属性,扩展ext2可以进一步提高安全级别。不变性和只添加属性只是扩展ext2文件系统属性标志的两种方式。无法修改标记为不可变的文件。

root用户甚至不能修改它。标记为仅添加的文件可以修改,但只有内容可以添加到它之后,即使是根用户也可以添加。

您可以通过chattr命令修改文件的这些属性,如果您想查看其属性值,可以使用lsattr命令。要了解关于ext2文件属性的更多信息,您可以使用命令manchattr获得帮助。

这两个文件属性对于检测试图在现有文件中安装入侵后门的黑客非常有用。为了安全起见,一旦检测到此类活动,应立即停止,并发出报警信息。

如果你的关键文件系统安装为只读,文件标记为不可变,入侵者必须重装系统删除这些不可变的文件,但这样会立刻报警,大大降低了被非法入侵的几率。

当与日志文件和日志备份一起使用时,为了保护日志文件不发生不变性,并且只添加这两个文件属性,这一点特别有用。系统管理员应将“活动日志文件”属性设置为“仅添加”。当日志更新时,

新生成的日志备份文件属性应设置为不可变,并且新的活动日志文件属性已变为仅添加。这通常需要向日志更新脚本添加一些控制命令。

第二,备份

Linux系统安装完成后,要对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法篡改过。如果系统文件已经被破坏,

您也可以使用系统备份来还原到正常状态。

光盘备份目前最好的系统备份介质是光盘。将来,系统可以定期与光盘的内容进行比较,以验证系统的完整性是否已被破坏。如果安全级别特别高,

则可以将CD设置为可引导的,并且验证工作可以是系统启动过程的一部分。所以只要能用CD启动,就说明系统没有被破坏。

如果您创建了一个只读分区,您可以定期从CD映像重新加载它们。即使像/boot、/lib和/sbin这样的分区不能以只读方式安装,你仍然可以根据CD镜像检查它们。

您甚至可以在启动时从另一个安全映像中再次下载它们。

其他备份方式虽然/etc中的很多文件经常变化,但是/etc中的很多内容还是可以放在光盘上进行系统完整性验证。其他不经常修改的文件可以备份到另一个系统(如磁带)或压缩到只读目录中。

这种方法可以在使用光盘映像进行验证的基础上进行额外的系统完整性检查。

由于现在大多数操作系统都配有光盘,所以制作一张光盘应急启动盘或者验证盘是非常方便的,是一种非常有效可行的验证方法。

第三,完善系统内部安全机制

我们可以通过改进Linux操作系统的内部功能来防范缓冲区溢出攻击,这种攻击极具破坏性,但也是最难防范的,虽然这样的改进需要系统管理员具备相当丰富的经验和技能。

但是对于很多要求高安全性的Linux系统来说是必须的。

SolarisDesigner的安全Linux补丁SolarisDesigner的安全Linux补丁2.0版内核提供了一个可执行堆栈,减少了缓冲区溢出的威胁,从而大大提高了整个系统的安全性。

缓冲区溢出很难实现,因为入侵者必须能够判断潜在的缓冲区溢出何时发生,以及它将出现在内存中的什么位置。缓冲区溢出也很难防止,

系统管理员必须完全消除缓冲区溢出的情况,以防止这种方式的攻击。正因为如此,很多人,包括LinuxTorvalds本人,都认为这个安全的Linux补丁非常重要,因为它阻止了所有利用缓冲区溢出的攻击。

但需要注意的是,这些补丁也会导致对执行栈中一些程序和库的依赖,这也会给系统管理员带来新的挑战。

不可执行的栈补丁已经在很多安全邮件列表中分发(比如securedistros@nl.linux.org),用户可以轻松下载。

StackGuardStackGuard是一个非常强大的安全补丁工具。可以用StackGuard打补丁的gcc版本重新编译链接关键应用。

StackGuard增加了堆栈检查,防止编译时堆栈攻击缓冲区溢出。虽然这样会导致系统性能略有下降,但对于安全性要求较高的特定应用,StackGuard仍然是非常有用的工具。

现在有了使用SafeGuard的Linux版本,用户使用StackGuard会更容易。虽然使用StackGuard会使系统性能下降10 ~ 20%左右,但可以防止整个缓冲区溢出攻击。

增加新的访问控制功能Linux的2.3版本内核正在尝试在文件系统中实现一个访问控制列表,它可以在原有的三类访问控制机制(所有者、组和其他)的基础上增加更详细的访问控制。

在Linux内核2.2和2.3版本中会开发新的访问控制功能,最终会影响当前一些关于ext2文件属性的问题。与使用ext2的传统文件系统相比,它提供了更精确的安全控制功能。有了这个新功能,

应用程序将能够在没有超级用户权限的情况下访问一些系统资源,例如初始套接字。

基于规则集的访问控制现在相关的Linux社区正在开发一个基于规则的访问控制(RSBAC)项目,号称可以让Linux操作系统达到B1级的安全性。

RSBAC是一个基于访问控制的扩展框架,扩展了许多系统调用方法。它支持许多不同的访问和认证方法。这对于扩展和加强Linux系统的内部和本地安全性是非常有用的。

第四,设置陷阱和蜜罐

所谓陷阱,就是被激活时可以触发报警事件的软件,蜜罐程序是指为引诱入侵者触发特殊报警而设计的陷阱程序。通过设置陷阱和蜜罐程序,系统可以在入侵时快速报警。

在许多大型网络中,一般会设计专门的陷阱程序。陷阱程序一般分为两种:一种是发现入侵者不采取报复行动,另一种是同时采取报复行动。

一种常见的设置蜜罐的方式是故意宣称Linux系统使用的是漏洞很多的IMAP服务器版本。当入侵者扫描这些IMAP服务器寻找大容量端口时,就会落入陷阱,触发系统报警。

蜜罐陷阱的另一个例子是著名的phf,这是一个非常脆弱的Webcgi-bin脚本。最初的phf是为查找电话号码而设计的。

但它具有一个严重的安全漏洞:允许入侵者使用它来获得系统口令文件或执行其它恶意操作。系统管理员可以设置一个假的phf脚本,但是它不是将系统的口令文件发送给入侵者,

而是向入侵者返回一些假信息并且同时向系统管理员发出报警。

另外一类蜜罐陷井程序可以通过在防火墙中将入侵者的IP地址设置为黑名单来立即拒绝入侵者继续进行访问。拒绝不友好的访问既可以是短期的,也可以是长期的。Linux内核中的防火墙代码非常适合于这样做。

五、将入侵消灭在萌芽状态

入侵者进行攻击之前最常做的一件事情就是端号扫瞄,如果能够及时发现和阻止入侵者的端号扫瞄行为,那么可以大大减少入侵事件的发生率。反应系统可以是一个简单的状态检查包过滤器,

也可以是一个复杂的入侵检测系统或可配置的防火墙。

AbacusPortSentryAbacusPortSentry是开放源代码的工具包,它能够监视网络接口并且与防火墙交互操作来关闭端口扫瞄攻击。当发生正在进行的端口扫瞄时,

AbacusSentry可以迅速阻止它继续执行。但是如果配置不当,它也可能允许敌意的外部者在你的系统中安装拒绝服务攻击。

AbacusPortSentry如果与Linux中透明的代理工具一起使用可以提供一个非常有效地入侵防范措施。这样可以将为所有IP地址提供通用服务的未使用端口重定向到PortSentry中,

PortSentry可以在入侵者采取进一步行动之前及时检测到并阻止端口扫瞄。

AbacusPortSentry能够检测到慢扫瞄(slowscan),但它不能检测到结构化攻击(structuredattack)。这两种方式最终目的都要试图掩盖攻击意图。

慢扫瞄就是通过将端口扫瞄分散到很长的时间内来完成,而在结构化的攻击中,攻击者试图通过扫瞄或探测多个源地址中来掩盖自己的真实攻击目标。

正确地使用这个软件将能够有效地

本文来自网络,不代表本站立场,转载请注明出处:https: