Linux十大高级安全管理技巧
由于【yóu yú】Linux操作系【cāo zuò xì】统是一【tǒng shì yī】💙个开放【gè kāi fàng】源代码的免费【de miǎn fèi】🌽操作系【cāo zuò xì】统,因此受【yīn cǐ shòu】到越来【dào yuè lái】越多用【yuè duō yòng】户的欢迎【yíng】。随着Linux操作系【cāo zuò xì】统在我💓国的不🥇断普及,有关的🌍政府部⏺门更是🌊将基于【jiāng jī yú】😭Linux开发具【kāi fā jù】🔃有自主版权的【bǎn quán de】操作系【cāo zuò xì】统提高到保卫国家信👼息安全的高度来看待,因此我【yīn cǐ wǒ】们不难预测今【yù cè jīn】后Linux操作系【cāo zuò xì】统在我💓国将得到更快🤠更大的发展🎠。虽然【suī rán】Linux与🆎UNIX很类似,但它们🐊之间也有一些重要的差别🦁。对于众🏮多的习【duō de xí】惯了【guàn le】UNIX和WindowsNT的系统管理员【guǎn lǐ yuán】来讲🍕,如何保✂证【zhèng】Linux操作系【cāo zuò xì】统的安全将面临许多新的挑战【zhàn】。本文介【běn wén jiè】🚍绍了一系列实🤜用的【yòng de】Linux安全管🎼理经验。
一、文件系统
在Linux系统中,分别为不同的🙆应用安装单独的主分【de zhǔ fèn】区将关【qū jiāng guān】键的分区设置👫为只读🚙将大大提高文件系【wén jiàn xì】统的安全📐。这主要【zhè zhǔ yào】🌱涉及到🎖Linux自身的ext2文件系【wén jiàn xì】统的只添加【zhī tiān jiā】🐞(只添加【zhī tiān jiā】🐞)和不可【hé bú kě】👼变这两【biàn zhè liǎng】大属性。
文件分区【qū】🍾Linux的文件系统可🚭以分成几个主【jǐ gè zhǔ】➕要的分区【qū】🍾,每个分区分别【qū fèn bié】🏪进行不【jìn háng bú】同的配【tóng de pèi】置和安😉装💺,一般情况下至【kuàng xià zhì】少要建立/、/usr/local、/var和👂/home等分区【děng fèn qū】🍾。/usr可以安🍤装💺成只读👣并且可以被【yǐ bèi】🈚认为是🎠不可修改的。如果【rú guǒ】/usr中有任何文件发生了改变,那么系📤统将立🥏即发出【jí fā chū】安全报🚒警🍤。当然这【dāng rán zhè】不包括【bú bāo kuò】用户自己改变【jǐ gǎi biàn】/usr中的内容。/lib、/boot和👂/sbin的安装⬅和设置【hé shè zhì】🍓也一样【yě yī yàng】。在安装💺时应该【shí yīng gāi】尽量将它们设置为只读👣,并且对【bìng qiě duì】它们的【tā men de】🙃文件、目录和😾属性进行的任【háng de rèn】何修改【hé xiū gǎi】都会导致系统报警🍤。
当然将【dāng rán jiāng】所有主🎹要的分区【qū】🍾都设置为只读👣是不可【shì bú kě】能的【néng de】🚼,有的分【yǒu de fèn】🐽区如【qū rú】🐖/var等,其自身的性质【de xìng zhì】就决定【jiù jué dìng】🎷了不能将它们设置为只读👣,但应该不允许它具有执行权限。
扩展【kuò zhǎn】ext2使用🍤ext2文件系统上的只添加【zhī tiān jiā】和不可变【bú kě biàn】这两🎫种文件属性可【shǔ xìng kě】以进一【yǐ jìn yī】步提高【bù tí gāo】安全级别📿。不可变【bú kě biàn】和只添🎮加属性只是两种扩展【kuò zhǎn】ext2文件系统的属🚰性标志【xìng biāo zhì】的方法。一个标【yī gè biāo】🔊记为不可变【bú kě biàn】的文件不【wén jiàn bú】能被修改【gǎi】📦,甚至不能被根🚣用户修💵改【gǎi】📦。一个标【yī gè biāo】🔊记为只添加【zhī tiān jiā】的文件可以被修改【gǎi】📦,但只能【dàn zhī néng】💘在它的后面添🍑加内容,即使根用户也🎋只能如【zhī néng rú】🔴此【cǐ】。
可以通过chattr命令【mìng lìng】🏒来修改【lái xiū gǎi】文件的这【zhè】📳些属性【xiē shǔ xìng】,如果要查看其🌽属性值的话可以使用lsattr命令【mìng lìng】🏒。要想了【yào xiǎng le】解更多的关于ext2文件属😇性的信🥪息,可使用命令【mìng lìng】🏒manchattr来寻求【lái xún qiú】🏬帮助。这两上【zhè liǎng shàng】文件属😇性在检【xìng zài jiǎn】测黑客【cè hēi kè】企图在现有的文件中🚈安装入侵后门🍚时是很🥌有用的。为了安⛱全起见🍕,一旦检🥫测到这【cè dào zhè】样的活动就应该立即【gāi lì jí】👢将其阻【jiāng qí zǔ】止并发【zhǐ bìng fā】出报警😤信息。
如果你的关键【de guān jiàn】的文件【de wén jiàn】系统安🚅装成只读的并且文件被标记为不可【wéi bú kě】🚷变的【biàn de】,入侵者必须重【bì xū chóng】新安装系统才⬇能删除【néng shān chú】这些不【zhè xiē bú】可变的【biàn de】🐲文件但❕这会立【zhè huì lì】刻产生报警✴,这样就🐉大大减📗少了被非法入🐡侵的机会【huì】。
保护【bǎo hù】📄log文件当【wén jiàn dāng】与😤log文件和log备份一【bèi fèn yī】🔪起使用【qǐ shǐ yòng】时不可【shí bú kě】变和只【biàn hé zhī】添加这【tiān jiā zhè】🐐两种文😪件属性【jiàn shǔ xìng】特别有用。系统管【xì tǒng guǎn】理员应该将活动的【huó dòng de】🔏log文件属💀性设置为只添加。当【dāng】log被更新🏔时,新产生的🐗log备份文件属💀性应该设🤞置成不可变的✳,而新的🚒活动的【huó dòng de】🔏log文件属💀性又变成了只添加。这通常【zhè tōng cháng】需要在🥍log更新脚本中添加一些控制命【kòng zhì mìng】🎪令。
二、备份
在完成🦖Linux系统的安装以后应该对整个🔽系统进🌯行备份🤩,以后可【yǐ hòu kě】以根据🚩这个备🍭份来验证系统的完整【de wán zhěng】🔰性【xìng】,这样就【zhè yàng jiù】可以发现系统文件是🌿否被非⛷法窜改【fǎ cuàn gǎi】过【guò】。如果发生系统文件已经被破【jīng bèi pò】🕉坏的情【huài de qíng】况【kuàng】,也可以【yě kě yǐ】使用系统备份来恢复到正常的状态。
CD-ROM备份当【bèi fèn dāng】前最好的系统【de xì tǒng】🍹备份介质就是【zhì jiù shì】CD-ROM光盘【guāng pán】,以后可【yǐ hòu kě】🤜以定期将系统与光盘【guāng pán】内容进行比较以验证系统的🤛完整性⤴是否遭到破坏😐。如果对安全级别的要🏗求特别【qiú tè bié】高🕠,那么可以将光盘【guāng pán】设置为可启🛂动的并【dòng de bìng】且将验【qiě jiāng yàn】证工作💳作为系🚤统启动【tǒng qǐ dòng】过程的👞一部分【yī bù fèn】。这样只要可以【yào kě yǐ】😌通过光盘【guāng pán】启动,就说明【jiù shuō míng】系统尚未被破坏过🏯。
如果你🐴创建了一个只【yī gè zhī】读的分区✔,那么可🕓以定期从光盘映像重👎新装载【xīn zhuāng zǎi】它们【tā men】。即使象【jí shǐ xiàng】💥/boot、/lib和【hé】/sbin这样不能被安📹装成只读的分区✔,你仍然【nǐ réng rán】可以根【kě yǐ gēn】🖌据光盘【jù guāng pán】映像来🌀检查它们【tā men】,甚至可以在启🥈动时从【dòng shí cóng】另一个安全的🤒映像重👎新下载【xīn xià zǎi】它们【tā men】。
其它方👓式的备💐份虽然【fèn suī rán】/etc中的许【zhōng de xǔ】🎗多文件经常会变化【biàn huà】🚹,但【dàn】/etc中的许【zhōng de xǔ】🎗多内容【duō nèi róng】仍然可以放到【yǐ fàng dào】🍉光盘上【guāng pán shàng】用于系统完【xì tǒng wán】整性验证。其它不经常进🍸行修改的文件🔛,可以备份到另🎮一个系统(如磁带)或压缩到一个【dào yī gè】只读的【zhī dú de】目录中🔶。这种办法可以在使用【zài shǐ yòng】光盘映🛏像进行🚘验证的基础上再进行【zài jìn háng】👳额外的系统完【xì tǒng wán】整性检查😐。
既然现在绝大多数操作系统现在都♿在随光【zài suí guāng】🐽盘一起提供的,制作一个CD-ROM紧急启动盘或【dòng pán huò】😐验证盘🎚操作起【cāo zuò qǐ】⏭来是十⛅分方便【fèn fāng biàn】的,它是一种十分【zhǒng shí fèn】有效而【yǒu xiào ér】又可行的验证【de yàn zhèng】🚓方法。
三、改进系统内部安全机制
可以通过改进Linux操作系🔟统的内部功能来防止【lái fáng zhǐ】缓冲区【huǎn chōng qū】溢出攻击这种【jī zhè zhǒng】破坏力【pò huài lì】🤥极强却又最难😷预防的【yù fáng de】攻击方式,虽然这样的改🚿进需要🛡系统管理员具【lǐ yuán jù】有相当【yǒu xiàng dāng】丰富的😤经验和技巧,但对于🍶许多对安全级别要求【bié yào qiú】高的🚂Linux系统来【xì tǒng lái】👻讲还是很有必😊要的【yào de】。
SolarisDesigner的安全🗒Linux补丁SolarisDesigner用于2.0版内核【bǎn nèi hé】的安全🗒Linux补丁提【bǔ dīng tí】💢供了一🏃个不可执行的【zhí háng de】栈来减少缓冲【shǎo huǎn chōng】区溢出【qū yì chū】的威胁🚷,从而大大提高🕸了整个系统的【xì tǒng de】👉安全性。
缓冲区💪溢出实施起来🚈是相当困难【kùn nán】的,因为入侵者必😘须能够【xū néng gòu】判断潜【pàn duàn qián】在【zài】的缓冲区💪溢出何时会出现【chū xiàn】以及它🚨在内存【zài nèi cún】😐中的什【zhōng de shí】么位置出现【chū xiàn】。缓冲区💪溢出预😴防起来【fáng qǐ lái】也十分困难【kùn nán】,系统管【xì tǒng guǎn】理员必须完全去掉缓冲区💪溢出存在【zài】🌗的条件才能防【cái néng fáng】止这种方式的🎉攻击。正因为如此【rú cǐ】,许多人甚至包括😮LinuxTorvalds本人也✌认为这【rèn wéi zhè】个安全Linux补丁十👅分重要,因为它🏯防止了【fáng zhǐ le】所有使【suǒ yǒu shǐ】用缓冲🛵区溢出【qū yì chū】🌥的攻击🍻。但是需要引起⛅注意的【zhù yì de】🥈是,这些补丁也会🧥导致对执行栈【zhí háng zhàn】🎪的某些【de mǒu xiē】程序和库的依👸赖问题,这些问题也给【tí yě gěi】系统管【xì tǒng guǎn】理员带来的新【lái de xīn】🚓的挑战。
不可执行的栈补丁已Ⓜ经在许【jīng zài xǔ】多安全邮件列【yóu jiàn liè】表【biǎo】(如securedistros@nl.linux.org)中进行分发🈶,用户很🐭容易下载到它【zǎi dào tā】💮们等【men děng】👗。
StackGuardStackGuard是一个【shì yī gè】十分强大的安🏕全补丁【quán bǔ dīng】工具。你可以【nǐ kě yǐ】使用经🤵StackGuard修补过【xiū bǔ guò】的📯gcc版本来重新编【chóng xīn biān】译和链接关键🚎的应用🗜。
StackGuard进行编👖译时增【yì shí zēng】加了栈检查以【jiǎn chá yǐ】防止发生栈攻💧击缓冲【jī huǎn chōng】区溢出,虽然这会导致【huì dǎo zhì】系统的性能略🤠有下降,但对于【dàn duì yú】🦏安全级【ān quán jí】🐞别要求【bié yào qiú】高的特定应用🔺来讲StackGuard仍然是✴一个十分管用的工具。
现在已经有了一个使🐨用了【yòng le】🦅SafeGuard的【de】ⓂLinux版本【bǎn běn】,用户使【yòng hù shǐ】用StackGuard将会更【jiāng huì gèng】🔥加容易。虽然使用StackGuard会导致【huì dǎo zhì】系统性👒能下降约【yuē】10~20%,但它能🦉够防止😿整个缓冲区溢出这一类攻击。
增加新【zēng jiā xīn】的访问🏽控制功能Linux的2.3版内核【bǎn nèi hé】正试图【zhèng shì tú】✝在文件系统中实现一个访问【gè fǎng wèn】🏀控制列🥈表,这要可【zhè yào kě】以在原🎣来的三😁类(owner、group和【hé】other)访问控制机制🥉的基础【de jī chǔ】上再增加更详细的访【xì de fǎng】💃问控制。
在2.2和2.3版的【bǎn de】Linux内核中还将开💝发新的访问控制功能【gōng néng】🦒,它最终【tā zuì zhōng】🥛将会影【jiāng huì yǐng】响当前【xiǎng dāng qián】有关ext2文件属【wén jiàn shǔ】性的一🐾些问题🧜。与传统的具有ext2文件系统相比【tǒng xiàng bǐ】它提供了一个🐟更加精【gèng jiā jīng】🛑确的安全控制【quán kòng zhì】功能【gōng néng】🦒。有了这【yǒu le zhè】个新的🕎特性🤚,应用程序将能【xù jiāng néng】♑够在不🖇具有超级用户【jí yòng hù】权限的情况下访问某些系统⏪资源,如初始套接等。
基于规则集的🍐访问控【fǎng wèn kòng】制【zhì】🐪现在有关的Linux团体正在开发一个基于规则的访问控【fǎng wèn kòng】制【zhì】🐪(RSBAC)项目【xiàng mù】,该项目【gāi xiàng mù】声称能【shēng chēng néng】够使👇Linux操作系✳统实现【tǒng shí xiàn】B1级的安全【quán】。RSBAC是基于访问控【fǎng wèn kòng】制【zhì】🐪的扩展框架并【kuàng jià bìng】且扩展了许🏡多系统调用方🧐法【fǎ】,它支持【tā zhī chí】多种不同的访🧐问和认证方法【fǎ】✂。这对于🏉扩展和加强🐊Linux系统的内部和【nèi bù hé】🖍本地安全是一【quán shì yī】➖个很有【gè hěn yǒu】🔱用的。
四、设置陷井和蜜罐
所谓陷井就是📄激活时能够触【néng gòu chù】发报警事件的【shì jiàn de】🐞软件🔈,而蜜罐(honeypot)程序是【chéng xù shì】😹指设计【zhǐ shè jì】来引诱【lái yǐn yòu】有入侵✅企图者触发专门的报警的陷【jǐng de xiàn】井程😠序。通过设【tōng guò shè】置陷井和蜜罐程序,一旦出【yī dàn chū】🆘现入侵【xiàn rù qīn】事件系统可以很快发出报警。在许多大的网⛵络中🕋,一般都【yī bān dōu】⌚设计有【shè jì yǒu】专门的陷井程😠序。陷井程😠序一般【xù yī bān】🌅分为两【fèn wéi liǎng】种:一种是🏈只发现入侵【xiàn rù qīn】者而不对其采取报【cǎi qǔ bào】复行动【fù háng dòng】🍇,另一种🍯是同时♊采取报【cǎi qǔ bào】复行动【fù háng dòng】🍇。
设置蜜【shè zhì mì】罐的一种常用😷方法是【fāng fǎ shì】故意声【gù yì shēng】📡称【chēng】Linux系统使🍺用了具【yòng le jù】有许多脆弱性的IMAP服务器【fú wù qì】版本。当入侵🏎者对这些💝IMAP服务器【fú wù qì】进行大容量端📫口扫瞄🌥就会落【jiù huì luò】入陷井【rù xiàn jǐng】并且激发系统🔁报警。
另一个【lìng yī gè】🕡蜜罐陷【mì guàn xiàn】🤤井的【de】例👢子就是【zǐ jiù shì】很有名的【de】phf,它是一个非常【gè fēi cháng】脆弱的【cuì ruò de】📈Webcgi-bin脚本【jiǎo běn】。最初的【de】phf是设计来查找电话号🎈码的【de】🏴,但它具【dàn tā jù】有一个严重的【de】🎠安全漏洞:允许入🎖侵者🦗使用它来获得系统口【xì tǒng kǒu】令🌖文件或【wén jiàn huò】执行其【zhí háng qí】它恶意【tā è yì】💾操作。系统管【xì tǒng guǎn】理员可以设置【yǐ shè zhì】👡一个假的【de】phf脚本【jiǎo běn】,但是它不是将系统的【de】口令文件发送【jiàn fā sòng】给入侵🦂者🦗,而是向🈳入侵者🦗返回一【fǎn huí yī】些假信息并且🕸同时向系统管【xì tǒng guǎn】理员发出报警🌦。
另外一类蜜罐【lèi mì guàn】🙄陷井程序可以【xù kě yǐ】通过在💡防火墙中将入🛃侵者的【de】🍎IP地址设【dì zhǐ shè】🌑置为黑名单来【míng dān lái】立即拒【lì jí jù】绝入侵者继续进行访问。拒绝不🌯友好的【yǒu hǎo de】🥎访问既可以是短期的【duǎn qī de】😝,也可以是长期的【de】😝。Linux内核中的【de】😝防火墙代码非常适合【cháng shì hé】于这样做【zuò】☝。
五🛂、将入侵消灭在【xiāo miè zài】萌芽状态【tài】📳
入侵者进行攻📁击之前🔜最常做的一件事情就📹是端号【shì duān hào】扫🤕瞄,如果能【rú guǒ néng】够及时【gòu jí shí】发现和【fā xiàn hé】阻止入🦕侵者的🛅端号扫🤕瞄行为,那么可🚰以大大减少入侵事件🚠的发生率。反应系【fǎn yīng xì】统可以【tǒng kě yǐ】是一个简单的【jiǎn dān de】🌷状态检查包过滤器,也可以【yě kě yǐ】是一个复杂的【fù zá de】🧦入侵检【rù qīn jiǎn】🏿测系统或可配【huò kě pèi】置的防【zhì de fáng】火墙。
AbacusPortSentryAbacusPortSentry是开放🌳源代码🆓的工具【de gōng jù】🎭包,它能够【tā néng gòu】监视网【jiān shì wǎng】⏩络接口【luò jiē kǒu】并且与【bìng qiě yǔ】防火墙交互操🙋作来关【zuò lái guān】📯闭端口【bì duān kǒu】扫瞄😋攻击。当发生【dāng fā shēng】正在进行的端【háng de duān】口扫瞄😋时,AbacusSentry可以迅速阻止它继续执行🥟。但是如果配置不当【bú dāng】,它也可能允许敌意的外部者【wài bù zhě】在你的系统中🕣安装拒📼绝服务🕜攻击。
AbacusPortSentry如果与【rú guǒ yǔ】Linux中【zhōng】透明🍬的代理【de dài lǐ】工具一起使用可以提💧供一个非常有效地入【xiào dì rù】👒侵防范【qīn fáng fàn】措施。这样可以将为所有🚃IP地址提【dì zhǐ tí】供通用【gòng tōng yòng】服务的未使用端口重【duān kǒu chóng】定向到PortSentry中【zhōng】🌑,PortSentry可以在🐲入侵者【rù qīn zhě】采取进一步行动之前及时检👘测到并阻止端🏠口扫瞄🗞。
AbacusPortSentry能够检测到慢扫瞄【màn sǎo miáo】🚟(slowscan),但它不能检测➖到结构化攻击(structuredattack)。这两种方式最【fāng shì zuì】终目的【zhōng mù de】都要试【dōu yào shì】🛂图掩盖【tú yǎn gài】🔀攻击意图【tú】。慢扫瞄【màn sǎo miáo】🚟就是通【jiù shì tōng】过将端【guò jiāng duān】口扫瞄🖐分散到🎟很长的🍭时间内🍹来完成,而在结构化的攻击中【gōng jī zhōng】🏻,攻击者🐺试图通【shì tú tōng】过扫瞄或探测多个源地址中来掩盖自己的【zì jǐ de】真实攻击目标⛪。
正确地【zhèng què dì】😢使用这个软件【gè ruǎn jiàn】将能够有效地【yǒu xiào dì】
关键词🌴:Linux,安全管🐀理
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1