由于Linux操作系统是一个开放源代码的免费操作系统,因此受到越来越多用户的欢迎。随着Linux操作系统在我国的不断普及,有关的政府部门更是将基于Linux开发具有自主版权的操作系统提高到保卫国家信息安全的高度来看待,因此我们不难预测今后Linux操作系统在我国将得到更快更大的发展。虽然Linux与UNIX很类似,但它们之间也有一些重要的差别。对于众多的习惯了UNIX和Windows NT的系统管理员来讲,如何保证Linux操作系统的安全将面临许多新的挑战。本文介绍了一系列实用的Linux安全管理经验。
  
  一、文件系统
  在Linux系统中,分别为不同的应用安装单独的主分区将关键的分区设置为只读将大大提高文件系统的安全。这主要涉及到Linux自身的ext2文件系统的只添加(只添加)和不可变这两大属性。 ●文件分区Linux的文件系统可以分成几个主要的分区,每个分区分别进行不同的配置和安装,一般情况下至少要建立/、/usr/local、/var和/home等分区。/usr可以安装成只读并且可以被认为是不可修改的。如果/usr中有任何文件发生了改变,那么系统将立即发出安全报警。当然这不包括用户自己改变/usr中的内容。/lib、/boot和/sbin的安装和设置也一样。在安装时应该尽量将它们设置为只读,并且对它们的文件、目录和属性进行的任何修改都会导致系统报警。
  
  当然将所有主要的分区都设置为只读是不可能的,有的分区如/var等,其自身的性质就决定了不能将它们设置为只读,但应该不允许它具有执行权限。
  
  ●扩展ext2使用ext2文件系统上的只添加和不可变这两种文件属性可以进一步提高安全级别。不可变和只添加属性只是两种扩展ext2文件系统的属性标志的方法。一个标记为不可变的文件不能被修改,甚至不能被根用户修改。一个标记为只添加的文件可以被修改,但只能在它的后面添加内容,即使根用户也只能如此。
  
  可以通过chattr命令来修改文件的这些属性,如果要查看其属性值的话可以使用lsattr命令。要想了解更多的关于ext2文件属性的信息,可使用命令man chattr来寻求帮助。这两上文件属性在检测***企图在现有的文件中安装***后门时是很有用的。为了安全起见,一旦检测到这样的活动就应该立即将其阻止并发出报警信息。
  
  如果你的关键的文件系统安装成只读的并且文件被标记为不可变的,***者必须重新安装系统才能删除这些不可变的文件但这会立刻产生报警,这样就大大减少了被非法***的机会。
  
  ●保护log文件当与log文件和log备份一起使用时不可变和只添加这两种文件属性特别有用。系统管理员应该将活动的log文件属性设置为只添加。当log被更新时,新产生的log备份文件属性应该设置成不可变的,而新的活动的log文件属性又变成了只添加。这通常需要在log更新脚本中添加一些控制命令。
  
  二、备份
  在完成Linux系统的安装以后应该对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法窜改过。如果发生系统文件已经被破坏的情况,也可以使用系统备份来恢复到正常的状态。
  
  ●CD-ROM备份当前最好的系统备份介质就是CD-ROM光盘,以后可以定期将系统与光盘内容进行比较以验证系统的完整性是否遭到破坏。如果对安全级别的要求特别高,那么可以将光盘设置为可启动的并且将验证工作作为系统启动过程的一部分。这样只要可以通过光盘启动,就说明系统尚未被破坏过。
  
  如果你创建了一个只读的分区,那么可以定期从光盘映像重新装载它们。即使象/boot、/lib和/sbin这样不能被安装成只读的分区,你仍然可以根据光盘映像来检查它们,甚至可以在启动时从另一个安全的映像重新下载它们。
  
  ●其它方式的备份虽然/etc中的许多文件经常会变化,但/etc中的许多内容仍然可以放到光盘上用于系统完整性验证。其它不经常进行修改的文件,可以备份到另一个系统(如磁带)或压缩到一个只读的目录中。这种办法可以在使用光盘映像进行验证的基础上再进行额外的系统完整性检查。
  
  既然现在绝大多数操作系统现在都在随光盘一起提供的,制作一个CD-ROM紧急启动盘或验证盘操作起来是十分方便的,它是一种十分有效而又可行的验证方法。
  
  三、改进系统内部安全机制
  可以通过改进Linux操作系统的内部功能来防止缓冲区溢出***这种破坏力极强却又最难预防的***方式,虽然这样的改进需要系统管理员具有相当丰富的经验和技巧,但对于许多对安全级别要求高的Linux系统来讲还是很有必要的。
  
  ●Solaris Designer的安全Linux补丁Solaris Designer用于2.0版内核的安全Linux补丁提供了一个不可执行的栈来减少缓冲区溢出的威胁,从而大大提高了整个系统的安全性。
  
  缓冲区溢出实施起来是相当困难的,因为***者必须能够判断潜在的缓冲区溢出何时会出现以及它在内存中的什么位置出现。缓冲区溢出预防起来也十分困难,系统管理员必须完全去掉缓冲区溢出存在的条件才能防止这种方式的***。正因为如此,许多人甚至包括Linux Torvalds本人也认为这个安全Linux补丁十分重要,因为它防止了所有使用缓冲区溢出的***。但是需要引起注意的是,这些补丁也会导致对执行栈的某些程序和库的依赖问题,这些问题也给系统管理员带来的新的挑战。
  
  不可执行的栈补丁已经在许多安全邮件列表(如securedistros@nl.linux.org)中进行分发,用户很容易下载到它们等。
  
  ●StackGuardStackGuard是一个十分强大的安全补丁工具。你可以使用经StackGuard修补过的gcc版本来重新编译和链接关键的应用。
  
  StackGuard进行编译时增加了栈检查以防止发生栈***缓冲区溢出,虽然这会导致系统的性能略有下降,但对于安全级别要求高的特定应用来讲StackGuard仍然是一个十分管用的工具。
  
  现在已经有了一个使用了SafeGuard的Linux版本,用户使用StackGuard将会更加容易。虽然使用StackGuard会导致系统性能下降约10~20%,但它能够防止整个缓冲区溢出这一类***。
  
  ●增加新的访问控制功能Linux的2.3版内核正试图在文件系统中实现一个访问控制列表,这要可以在原来的三类(owner、group和other)访问控制机制的基础上再增加更详细的访问控制。
  
  在2.2和2.3版的Linux内核中还将开发新的访问控制功能,它最终将会影响当前有关ext2文件属性的一些问题。与传统的具有ext2文件系统相比它提供了一个更加精确的安全控制功能。有了这个新的特性,应用程序将能够在不具有超级用户权限的情况下访问某些系统资源,如初始套接等。
  
  ●基于规则集的访问控制现在有关的Linux团体正在开发一个基于规则的访问控制(RSBAC)项目,该项目声称能够使Linux操作系统实现B1级的安全。RSBAC是基于访问控制的扩展框架并且扩展了许多系统调用方法,它支持多种不同的访问和认证方法。这对于扩展和加强Linux系统的内部和本地安全是一个很有用的。
  
  四、设置陷井和蜜罐
  所谓陷井就是激活时能够触发报警事件的软件,而蜜罐(honey pot)程序是指设计来引诱有***企图者触发专门的报警的陷井程序。通过设置陷井和蜜罐程序,一旦出现***事件系统可以很快发出报警。在许多大的网络中,一般都设计有专门的陷井程序。陷井程序一般分为两种:一种是只发现***者而不对其采取报复行动,另一种是同时采取报复行动。
  
  设置蜜罐的一种常用方法是故意声称Linux系统使用了具有许多脆弱性的IMAP服务器版本。当***者对这些IMAP服务器进行大容量端口扫瞄就会落入陷井并且激发系统报警。
  
  另一个蜜罐陷井的例子就是很有名的phf,它是一个非常脆弱的Web cgi-bin脚本。最初的phf是设计来查找电话号码的,但它具有一个严重的安全漏洞:允许***者使用它来获得系统口令文件或执行其它恶意操作。系统管理员可以设置一个假的phf脚本,但是它不是将系统的口令文件发送给***者,而是向***者返回一些假信息并且同时向系统管理员发出报警。
  
  另外一类蜜罐陷井程序可以通过在防火墙中将***者的IP地址设置为黑名单来立即拒绝***者继续进行访问。拒绝不友好的访问既可以是短期的,也可以是长期的。Linux内核中的防火墙代码非常适合于这样做。
  
  五、将***消灭在萌芽状态
  ***者进行***之前最常做的一件事情就是端号扫瞄,如果能够及时发现和阻止***者的端号扫瞄行为,那么可以大大减少***事件的发生率。反应系统可以是一个简单的状态检查包过滤器,也可以是一个复杂的***检测系统或可配置的防火墙。
  
  ●Abacus Port SentryAbacus Port Sentry是开放源代码的工具包,它能够监视网络接口并且与防火墙交互操作来关闭端口扫瞄***。当发生正在进行的端口扫瞄时,Abacus Sentry可以迅速阻止它继续执行。但是如果配置不当,它也可能允许敌意的外部者在你的系统中安装拒绝服务***。
  
  Abacus PortSentry如果与Linux中透明的代理工具一起使用可以提供一个非常有效地***防范措施。这样可以将为所有IP地址提供通用服务的未使用端口重定向到Port Sentry中,Port Sentry可以在***者采取进一步行动之前及时检测到并阻止端口扫瞄。
  
  Abacus Port Sentry能够检测到慢扫瞄(slow scan),但它不能检测到结构化***(structured attack)。这两种方式最终目的都要试图掩盖***意图。慢扫瞄就是通过将端口扫瞄分散到很长的时间内来完成,而在结构化的***中,***者试图通过扫瞄或探测多个源地址中来掩盖自己的真实***目标。
  
  正确地使用这个软件将能够有效地防止对IMAP服务大量的并行扫瞄并且阻止所有这样的***者。Abacus Sentry与Linux 2.2内核的IPChains工具一起使用时最有效,IPChains能够自动将所有的

转载于:https://blog.51cto.com/yk1688/657934

十项Linux安全管理技巧经验总结相关推荐

  1. linux 不接显示器不启动_不知道这十项Linux常识,就别说自己玩过Linux

    1.GNU和GPL GNU计划(又称革奴计划),是由Richard Stallman(理查德·斯托曼)在1983年9月27日公开发起的自由软件集体协作计划.它的目标是创建一套完全自由的操作系统.GNU ...

  2. linux怎么进入gnu grub_十项Linux常识,你知道吗?

    1.GNU和GPLGNU计划(又称革奴计划),是由Richard Stallman(理查德·斯托曼)在1983年9月27日公开发起的自由软件集体协作计划.它的目标是创建一套完全自由的操作系统.GNU也 ...

  3. gnu linux空间包括什么,不知道这十项Linux常识,就别说自己玩过Linux

    1.GNU和GPL GNU计划(又称革奴计划),是由Richard Stallman(理查德·斯托曼)在1983年9月27日公开发起的自由软件集体协作计划.它的目标是创建一套完全自由的操作系统.GNU ...

  4. 袁萌:Linux的十项重要进展

    十年以来,全球Linux界有哪些重要进展,人们应该知道?对此,人们可以有不同的看法,但是,大家总得有个大致相同的认识.实际情况怎样呢? 12月20日,IBM在庆祝Linux的10年来所取得的重要进展活 ...

  5. 视频教程- Linux命令技巧及黑客防御实战-Linux

    Linux命令技巧及黑客防御实战 资深DevOps工程师,曾经在华为,乐逗游戏工作,目前就职于知名物流公司工作 希望结合工作实践 给大家带来很多干货 周龙 ¥48.00 立即订阅 扫码下载「CSDN程 ...

  6. 职业经理十项管理技能必修课

    职业经理十项管理技能必修课 <世界商业评论>ICXO.COM ( 日期:2005-07-01 13:53) 如何成为一个能够分享企业经营理念,并带领下属实现企业远景目标的高绩效职业经理人? ...

  7. 大型高性能网站的十项规则

    在我们公司ChinaNetCloud,见 过多种不同类型的网站和系统,有好也有差.其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 :然而一般的系统都会有安全和性能上的 问题,不能良 ...

  8. 力作推荐!!!!   防线:企业Linux安全运维理念和实战(向世界500强企业学习Linux安全管理与运维之道)...

    防线:企业Linux安全运维理念和实战(向世界500强企业学习Linux安全管理与运维之道)      新书发售 http://product.dangdang.com/product.aspx?pr ...

  9. 国内十大Linux版本一览

    国内十大Linux版本一览 对于广大电脑初级用户来说,Windows就是操作系统的代名词.但"天外有天,OS外有OS",操作系统并非只有Windows一种.早在Windows诞生之 ...

  10. 做一个好管家 Linux系统管理技巧大荟萃

    做一个好管家 Linux系统管理技巧大荟萃 [上海央邦]学一送一,超值! 必读版<十一攻破RHCE6.0.OCP>安博亚威]CCIE考试通过率第一! Cisco网络技术系列讲座 试听一个月 ...

最新文章

  1. jQuery之Ajax应用
  2. html如何与py_Web项目如何做单元测试?
  3. 2010英语WCDMA,希望你也和一样!
  4. sealos包管理使用
  5. windows sharepoint service 3.0 wss3 URL 映射问题,差点把网站废掉
  6. 阿里云ARMS重磅推出小程序监控,助力小程序稳定运行
  7. Linux系统压缩及解压缩
  8. 设计模式笔记十六:解释器模式
  9. 【Kafka】Kafka 如果 动态 不停止的情况下 修改 消费组 offset
  10. ZOJ 2527题解
  11. 20191112每日一句
  12. windows7系统安装中文语言包汉化问题
  13. 遍历文件夹下的所有文件(os.listdir())
  14. Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表
  15. 免费二级域名分发企业备案域名 阿里云备案域名
  16. 【转载】2021互联网行业术语@20210311
  17. 自学python接单_用Python在网上接单,兼职也可以月薪过万
  18. java 二维表格_实现二维表
  19. GitOps与ChatOps的落地实践
  20. 怎么用matlab求兔子繁衍,习题4-11 兔子繁衍问题 (15 分)

热门文章

  1. Python+lxml+selenium爬虫-爬取豆瓣电影网电影信息
  2. 抛弃建立ext方式统一版本依赖,拥抱更方便的统一版本信息和依赖库版本号的新方式
  3. C++学习笔记20220701002
  4. 【C++】引用变量相关
  5. 被误解的WiFi以及高保真
  6. Ubuntu 14.04环境下 HUSTOJ安装
  7. 计算机组装后检查与调试,刍议高职计算机的组装维护与上机实验
  8. 【LeetCode】851.喧闹与富有(思路+题解)
  9. 手把手带你学会Odoo OWL组件开发(7):OWL项目实战使用
  10. java invokevirtual_java7(1)——反编译深入理解增强的switch