偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用chattr提高ext2文件系統(tǒng)的安全性

安全 網(wǎng)站安全
簡介:眾所周知,Linux內(nèi)核中有大量安全特征。其中有很多的特征有著廣泛的應(yīng)用,但是絕大多數(shù)的系統(tǒng)管理員(包括一些資深系統(tǒng)管理員)都忽略了EXT2文件系統(tǒng)的屬性(attribute)。Linux的這種安全特征甚至遠(yuǎn)沒有Lids和Tripwire等外部安全工具受關(guān)注。本文將詳細(xì)介紹EXT2文件系統(tǒng)的屬性已經(jīng)如何使用這個(gè)特征保護(hù)系統(tǒng)的安全。

簡介

眾所周知,Linux內(nèi)核中有大量安全特征。其中有很多的特征有著廣泛的應(yīng)用,但是絕大多數(shù)的系統(tǒng)管理員(包括一些資深系統(tǒng)管理員)都忽略了EXT2文件系統(tǒng)的屬性(attribute)。Linux的這種安全特征甚至遠(yuǎn)沒有Lids和Tripwire等外部安全工具受關(guān)注。本文將詳細(xì)介紹EXT2文件系統(tǒng)的屬性已經(jīng)如何使用這個(gè)特征保護(hù)系統(tǒng)的安全。

1.什么是ext2的屬性(attribute)

從Linux的1.1系列內(nèi)核開始,ext2文件系統(tǒng)就開始支持一些針對(duì)文件和目錄的額外標(biāo)記或者叫作屬性(attribute)。在2.2和2.4系列的內(nèi)核中,ext2文件系統(tǒng)支持以下屬性的設(shè)置和查詢:

A

Atime。告訴系統(tǒng)不要修改對(duì)這個(gè)文件的最后訪問時(shí)間。


S

Sync。一旦應(yīng)用程序?qū)@個(gè)文件執(zhí)行了寫操作,使系統(tǒng)立刻把修改的結(jié)果寫到磁盤。


a

Append Only。系統(tǒng)只允許在這個(gè)文件之后追加數(shù)據(jù),不允許任何進(jìn)程覆蓋或者截?cái)噙@個(gè)文件。如果目錄具有這個(gè)屬性,系統(tǒng)將只允許在這個(gè)目錄下建立和修改文件,而不允許刪除任何文件。


i

Immutable。系統(tǒng)不允許對(duì)這個(gè)文件進(jìn)行任何的修改。如果目錄具有這個(gè)屬性,那么任何的進(jìn)程只能修改目錄之下的文件,不允許建立和刪除文件。


d

No dump。在進(jìn)行文件系統(tǒng)備份時(shí),dump程序?qū)⒑雎赃@個(gè)文件。


c

Compress。系統(tǒng)以透明的方式壓縮這個(gè)文件。從這個(gè)文件讀取時(shí),返回的是解壓之后的數(shù)據(jù);而向這個(gè)文件中寫入數(shù)據(jù)時(shí),數(shù)據(jù)首先被壓縮之后,才寫入磁盤。


s

Secure Delete。讓系統(tǒng)在刪除這個(gè)文件時(shí),使用0填充文件所在的區(qū)域。


u

Undelete。當(dāng)一個(gè)應(yīng)用程序請(qǐng)求刪除這個(gè)文件,系統(tǒng)會(huì)保留其數(shù)據(jù)塊以便以后能夠恢復(fù)刪除這個(gè)文件。


但是,雖然文件系統(tǒng)能夠接受并保留指示每個(gè)屬性的標(biāo)志,但是這些屬性不一定有效,這依賴于內(nèi)核和各種應(yīng)用程序的版本。下表顯示每個(gè)版本支持的屬性標(biāo)志:


* 允許設(shè)置這個(gè)標(biāo)志并使設(shè)置生效
i 允許設(shè)置這個(gè)標(biāo)志但忽略其值
- 完全忽略這個(gè)標(biāo)志

1.0 1.2 2.0 2.2 2.4
A - - * * *
S * * * * *
a - * * * *
i - * * * *
d - * * * *
c i i i i i
s * * i i i
u i i i i i


雖然早期的內(nèi)核版本支持安全刪除特征,但是從1.3系列的內(nèi)核開始,開發(fā)者拋棄的對(duì)這個(gè)特征的實(shí)現(xiàn),因?yàn)樗坪踔荒軌蛱岣咭稽c(diǎn)點(diǎn)的安全性,而糟糕的是它會(huì)給不熟悉安全刪除繼承問題的用戶造成安全的假象。

在對(duì)具有A屬性的文件進(jìn)行操作時(shí),A屬性可以提高一定的性能。而S屬性能夠最大限度的保障文件的完整性。

本文將主要討論a屬性和i屬性,因?yàn)檫@兩個(gè)屬性對(duì)于提高文件系統(tǒng)的安全性和保障文件系統(tǒng)的完整性有很大的好處。同樣,一些開放源碼的BSD系統(tǒng)(如:FreeBSD和OpenBSD),在其UFS或者FFS實(shí)現(xiàn)中也支持類似的特征。

2.使用什么命令設(shè)置和顯示ext2文件系統(tǒng)的屬性


在任何情況下,標(biāo)準(zhǔn)的ls命令都不會(huì)一個(gè)文件或者目錄的擴(kuò)展屬性。ext2文件系統(tǒng)工具包中有兩個(gè)工具--chattr和lsattr,專門用來設(shè)置和查詢文件屬性。因?yàn)閑xt2是標(biāo)準(zhǔn)的Linux文件系統(tǒng),因此幾乎所有的發(fā)布都有e2fsprogs工具包。如果由于某些原因,系統(tǒng)中沒有這個(gè)工具,你可以從以下地址下載這個(gè)工具包的源代碼編譯并安裝:


http://sourceforge.net/projects/e2fsprogs


lsattr命令只支持很少的選項(xiàng),其選項(xiàng)如下:

 

-a

列出目錄中的所有文件,包括以.開頭的文件。


-d

以和文件相同的方式列出目錄,并顯示其包含的內(nèi)容。


-R

以遞歸的方式列出目錄的屬性及其內(nèi)容。


-v

列出文件版本(用于網(wǎng)絡(luò)文件系統(tǒng)NFS)。


chattr命令可以通過以下三種方式執(zhí)行:

 

chattr +Si test.txt

給test.txt文件添加同步和不可變屬性。


chattr -ai test.txt

把文件的只擴(kuò)展(append-only)屬性和不可變屬性去掉。


chattr =aiA test.txt

使test.txt文件只有a、i和A屬性。


最后,每個(gè)命令都支持-R選項(xiàng),用于遞歸地對(duì)目錄和其子目錄進(jìn)行操作。

3.ext2屬性和文件權(quán)限的區(qū)別


幾乎所有的系統(tǒng)管理員都理解UNIX風(fēng)格文件系統(tǒng)的權(quán)限和所有者以及l(fā)s命令的顯示,例如:


[root@typhoid nixe0n]# ls -al test*
-rw-rw-r-- 1 nixe0n users 0 Nov 17 17:02 test.conf
-rw-rw-r-- 1 nixe0n users 0 Nov 17 17:02 test.log
-rw-rw-r-- 1 nixe0n users 0 Nov 16 19:41 test.txt


從ls的輸出結(jié)果看,這些文件屬于用戶nixe0n,而nixe0n所在的用戶組是users。用戶nixe0n本人和users用戶組的成員尉有具有對(duì)文件的修改權(quán)限,而其他的用戶只有讀取文件的權(quán)限。下面是lsattr命令的輸出:


[root@typhoid nixe0n]# lsattr -a test*
---i-------- test.conf
----a------- test.log
------------ test.txt


輸出結(jié)果顯示,test.log只能被添加,而test.conf文件不準(zhǔn)修改。在UNIX系統(tǒng)中,如果一個(gè)用戶以root的權(quán)限登錄,文件系統(tǒng)的權(quán)限控制將無法對(duì)root用戶和以root權(quán)限運(yùn)行的進(jìn)程進(jìn)行任何的限制。這樣對(duì)于UNIX類的操作系統(tǒng),如果攻擊者通過遠(yuǎn)程或者本地攻擊獲得root權(quán)限將可能對(duì)系統(tǒng)造成嚴(yán)重的破壞。而ext2文件系統(tǒng)可以作為最后一道防線,最大限度地減小系統(tǒng)被破壞的程度,并保存攻擊者的行蹤。ext2屬性是由sys_open()和sys_truncate()等系統(tǒng)調(diào)用檢查和賦予的,不受用戶識(shí)別號(hào)和其他因素的影響,在任何情況下,對(duì)具有不可修改(immutable)屬性的文件的進(jìn)行任何修改都會(huì)失敗,不管是否是root用戶進(jìn)行的修改。

但是,還有一個(gè)問題是root權(quán)限的用戶可以通過刪除i屬性實(shí)現(xiàn)對(duì)文件的修改。這種防護(hù)只不過給獲得root權(quán)限的攻擊者加了一點(diǎn)小麻煩罷了,系統(tǒng)的安全性并沒有根本性的提高。

在2.1之前的內(nèi)核版本中,存在一個(gè)安全層(securelevel)的特征。使用安全層可以解決上述問題,因?yàn)槿绻到y(tǒng)的安全層大于0,內(nèi)核將不允許對(duì)任何文件的i屬性進(jìn)行修改。這些版本的內(nèi)核由sysctl命令的"kernel.securelevel"變量進(jìn)行控制。如果在啟動(dòng)時(shí),這個(gè)變量的值被設(shè)置為1或者更大的值,內(nèi)核將不允許對(duì)具有i屬性和a屬性文件進(jìn)行修改,除非國旗動(dòng)到單用戶狀態(tài)。

但是,由于引入了更為靈活的內(nèi)核能力特征(kernel capabilities),以后的內(nèi)核不再支持安全層。使用內(nèi)核能力,也可以實(shí)現(xiàn)類似的限制。工具lcap用來查詢和調(diào)整內(nèi)核能力約束集(kernel capabilities bounding set)。在啟動(dòng)腳本中加入以下命令,就可以實(shí)現(xiàn)對(duì)具有i屬性和a屬性文件的保護(hù):


lcap CAP_LINUX_IMMUTABLE
lcap CAP_SYS_RAWIO


第一個(gè)命令刪除任何用戶(包括超級(jí)用戶)對(duì)i標(biāo)志的修改能力。第二個(gè)命令刪除任何用戶(主要針對(duì)超級(jí)用戶)對(duì)塊設(shè)備的原始訪問(raw access)能力,防止一些技術(shù)高超的攻擊者直接修改文件系統(tǒng)索引節(jié)點(diǎn)的immutable域。BTW,在系統(tǒng)啟動(dòng)時(shí),CAP_SYS_RAWIO能力應(yīng)該直接刪除,這個(gè)能力是一個(gè)非常大的潛在威脅。高明的攻擊者獲得了超級(jí)用戶權(quán)限之后,通過/dev/kmem設(shè)備可以直接修改內(nèi)核內(nèi)存。通過這種方式,可以破壞系統(tǒng)的內(nèi)核能力約束集(kernel capabilities bounding)。如果沒有任何參數(shù),會(huì)列出內(nèi)核支持的能力和目前生效的內(nèi)核能力。

一旦一個(gè)內(nèi)核能力被刪除,就只有在系統(tǒng)重新啟動(dòng),進(jìn)入到單用戶模式才能刪除能力限制。

感興趣的讀者,可以從下面的連接中獲得更為詳細(xì)的能力方面的知識(shí):


LCAP - Linux內(nèi)核能力約束集編輯器(Linux Kernel Capabilities Bounding Set Editor)
http://pw1.netcom.com/~spoon/lcap/

4.我們應(yīng)該使用chattr做什么?


主機(jī)直接暴露在Internet或者位于其它危險(xiǎn)的環(huán)境,有很多shell帳戶或者提供HTTP和FTP等網(wǎng)絡(luò)服務(wù),一般應(yīng)該在安裝配置完成后使用如下命令:


chattr -R +i /bin /boot /etc /lib /sbin
chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
chattr +a /var/log/messages /var/log/secure (...)


如果很少對(duì)帳戶進(jìn)行添加、變更或者刪除,把/home本身設(shè)置為immutable屬性也不會(huì)造成什么問題。在很多情況下,整個(gè)/usr目錄樹也應(yīng)該具有不可改變屬性。實(shí)際上,除了對(duì)/usr目錄使用chattr -R +ii /usr/命令外,還可以在/etc/fstab文件中使用ro選項(xiàng),使/usr目錄所在的分區(qū)以只讀的方式加載。另外,把系統(tǒng)日志文件設(shè)置為只能添加屬性(append-only),將使入侵者無法擦除自己的蹤跡。

當(dāng)然,如果使用這種安全措施,需要系統(tǒng)管理員修改管理方式。

4.1.安裝、升級(jí)軟件

由于軟件管理程序需要加入和刪除某些文件和目錄,因此在進(jìn)行軟件安裝和升級(jí)之前需要?jiǎng)h除某些目錄和文件的immutable和append-only屬性。對(duì)于Linux系統(tǒng),我們一般使用rpm管理軟件包,你可以使用以下命令查看要安裝或者升級(jí)的軟件包都有哪些文件:


rpm -qipl foopackage.rpm


然后曲調(diào)有關(guān)目錄和文件的immutable和append-only屬性。大多數(shù)軟件包需要rpm命令對(duì)以下目錄的一個(gè)或者多個(gè)進(jìn)行寫操作:


/bin
/sbin
/usr/bin
/usr/sbin
/usr/man
/lib
/etc


注意,如果你需要升級(jí)/usr/sbin/someprogram,你應(yīng)該去掉someprogram文件以及目錄/usr/sbin的immutable屬性。


4.2.管理用戶和用戶組

如果要進(jìn)行用戶和用戶組,以下的目錄和文件需要能夠被讀寫:


/etc
/etc/.pwd.lock
/etc/passwd
/etc/passwd-
/etc/shadow
/etc/shadow-
/etc/group
/etc/group-
/etc/gshadow
/etc/gshadow-


passwd(1)、 chsh(1)、chfn(1)、vipw(8)、vigr(8)和useradd(8)等命令需要在/etc目錄下建立臨時(shí)的拷貝,修改這個(gè)拷貝,然后刪除原始文件,最后把新拷貝。

 

5.不能使用chattr命令的目錄


雖然屬性能夠提高系統(tǒng)的安全性,但是它并不適合所有的目錄。如果在系統(tǒng)中濫用chattr,可能造成很多問題,甚至使系統(tǒng)無法工作。


/

很顯然,根分區(qū)不能有immutable屬性。如果根分區(qū)具有immutable屬性,系統(tǒng)將根本無法工作。


/dev

在啟動(dòng)時(shí),syslog需要?jiǎng)h除并重新建立/dev/log套接字設(shè)備。如果對(duì)/dev/目錄設(shè)置了immutable和append-only屬性,就可能出現(xiàn)問題,除非在啟動(dòng)syslogd時(shí)使用-p選項(xiàng)指定其它的套接字,例如:/var/run/syslog.sock。即使這樣也還存在一些問題,syslog客戶程序需要/dev/log套接字設(shè)備,因此需要建立一個(gè)自相真正套接字的符號(hào)連接??偠灾?,為了減少麻煩,這個(gè)目錄還是不要設(shè)置immutable和append-only屬性。


/tmp

有很多應(yīng)用程序和系統(tǒng)程序需要在這個(gè)目錄下建立臨時(shí)文件,因此這個(gè)目錄也不能設(shè)置immutable和append-only屬性。


/var

這個(gè)目錄不能設(shè)置immutable屬性。對(duì)append-only屬性的使用要根據(jù)實(shí)際情況。例如,為var/log目錄下的日志文件設(shè)置了append-only屬性,會(huì)使日志輪換(logrotate)無法進(jìn)行,但不會(huì)造成太大問題,你需要權(quán)衡是否使用日志輪換的利弊,以絕對(duì)是否對(duì)日志文件設(shè)置append-only屬性。再比如,sendmail程序會(huì)定時(shí)地截?cái)嗷蛘吒采w/var/log/sendmail.st文件,因此也不能設(shè)置append-only屬性。

總結(jié)

雖然ext2文件系統(tǒng)的屬性已經(jīng)出現(xiàn)了很長時(shí)間,但是對(duì)它的應(yīng)用和系統(tǒng)的介紹卻不是很多。很里地使用文件系統(tǒng)的屬性,對(duì)提高系統(tǒng)的安全性有很大好處。

責(zé)任編輯:Oo小孩兒 來源: linuxeden.com
相關(guān)推薦

2009-10-22 12:09:57

linux文件系統(tǒng)

2017-11-23 09:30:01

Linux文件系統(tǒng)sudo命令

2010-12-17 09:37:13

ext4文件系統(tǒng)

2009-08-04 08:28:10

2009-10-27 12:47:29

linux Ext3文

2010-12-28 09:51:06

ext4文件系統(tǒng)

2012-07-30 10:07:01

2012-05-21 09:48:58

Ext4

2012-08-22 10:27:16

2018-09-12 15:48:35

ext4Linux文件系統(tǒng)

2023-07-11 10:38:24

區(qū)塊鏈文件驗(yàn)證安全

2010-01-11 18:21:12

Fedora reis

2021-05-27 07:12:20

Ext2路徑Linux

2010-08-17 14:36:55

2012-05-21 10:42:02

Ext4

2010-07-29 11:24:31

DB2文件系統(tǒng)已滿

2024-09-25 08:46:31

2010-07-29 14:15:21

2011-06-21 16:39:09

Linux安全

2022-08-03 14:33:21

數(shù)據(jù)安全數(shù)據(jù)泄露漏洞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)