佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > LINUX安全運(yùn)維之:文件系統(tǒng)的權(quán)限修改與安全設(shè)置

LINUX安全運(yùn)維之:文件系統(tǒng)的權(quán)限修改與安全設(shè)置

熱門(mén)標(biāo)簽:美團(tuán) 電話機(jī)器人搭建 家政服務(wù)網(wǎng)絡(luò) 外呼系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 解決方案 服務(wù)器配置 硅谷的囚徒呼叫中心

  一、鎖定系統(tǒng)重要文件

  系統(tǒng)運(yùn)維人員有時(shí)候可能會(huì)遇到通過(guò)root用戶都不能修改或者刪除某個(gè)文件的情況,產(chǎn)生這種情況的大部分原因可能是這個(gè)文件被鎖定了。在Linux下鎖定文件的命令是chattr,通過(guò)這個(gè)命令可以修改ext2、ext3、ext4文件系統(tǒng)下文件屬性,但是這個(gè)命令必須有超級(jí)用戶root來(lái)執(zhí)行。和這個(gè)命令對(duì)應(yīng)的命令是lsattr,這個(gè)命令用來(lái)查詢文件屬性。

  通過(guò)chattr命令修改文件或者目錄的文件屬性能夠提高系統(tǒng)的安全性,下面簡(jiǎn)單介紹下chattr和lsattr兩個(gè)命令的用法。

  chattr命令的語(yǔ)法格式如下:

  chattr [-RV] [-v version] [mode] 文件或目錄主要參數(shù)含義如下:

  -R:遞歸修改所有的文件及子目錄。

  -V:詳細(xì)顯示修改內(nèi)容,并打印輸出。

  其中mode部分用來(lái)控制文件的屬性,常用參數(shù)如下表所示:

  參數(shù)含義

  +在原有參數(shù)設(shè)定基礎(chǔ)上,追加參數(shù)

  -在原有參數(shù)設(shè)定基礎(chǔ)上,移除參數(shù)

  =更新為指定參數(shù)

  a即append,設(shè)定該參數(shù)后,只能向文件中添加數(shù)據(jù),而不能刪除。常用于服務(wù)器日志文件安全,只有root用戶才能設(shè)置這個(gè)屬性c即compresse,設(shè)定文件是否經(jīng)壓縮后再存儲(chǔ)。讀取時(shí)需要經(jīng)過(guò)自動(dòng)解壓操作i即immutable,設(shè)定文件不能被修改、刪除、重命名、設(shè)定鏈接等,同時(shí)不能寫(xiě)入或新增內(nèi)容。這個(gè)參數(shù)對(duì)于文件系統(tǒng)的安全設(shè)置有很大幫助s安全的刪除文件或目錄,即文件被刪除后硬盤(pán)空間被全部收回u與s參數(shù)相反,當(dāng)設(shè)定為u時(shí),系統(tǒng)會(huì)保留其數(shù)據(jù)塊以便以后能夠恢復(fù)刪除這個(gè)文件。這些參數(shù)中,最常用到的是a和i,a參數(shù)常用于服務(wù)器日志文件安全設(shè)定,而i參數(shù)更為嚴(yán)格,不允許對(duì)文件進(jìn)行任何操作,即使是root用戶lsattr用來(lái)查詢文件屬性,用法比較簡(jiǎn)單,其語(yǔ)法格式如下:

  lsattr [-adlRvV] 文件或目錄

  常用參數(shù)如下表所示。

  參數(shù)含義

  -a列出目錄中的所有文件,包括以.開(kāi)頭的文件-d顯示指定目錄的屬性

  -R以遞歸的方式列出目錄下所有文件及子目錄以及屬性值-v顯示文件或目錄版本

  在Linux系統(tǒng)中,如果一個(gè)用戶以root的權(quán)限登錄或者某個(gè)進(jìn)程以root的權(quán)限運(yùn)行,那么它的使用權(quán)限就不再有任何的限制了。因此,攻擊者通過(guò)遠(yuǎn)程或者本地攻擊手段獲得了系統(tǒng)的root權(quán)限將是一個(gè)災(zāi)難。在這種情況下,文件系統(tǒng)將是保護(hù)系統(tǒng)安全的最后一道防線,合理的屬性設(shè)置可以最大限度地減小攻擊者對(duì)系統(tǒng)的破壞程度,通過(guò)chattr命令鎖定系統(tǒng)一些重要的文件或目錄,是保護(hù)文件系統(tǒng)安全最直接、最有效的手段。

  對(duì)一些重要的目錄和文件可以加上“i”屬性,常見(jiàn)的文件和目錄有:

  chattr -R +i /bin /boot /lib /sbin

  chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbinchattr +i /etc/passwd

  chattr +i /etc/shadow

  chattr +i /etc/hosts

  chattr +i /etc/resolv.conf

  chattr +i /etc/fstab

  chattr +i /etc/sudoers

  對(duì)一些重要的日志文件可以加上“a”屬性,常見(jiàn)的有:

  chattr +a /var/log/messages

  chattr +a /var/log/wtmp

  對(duì)重要的文件進(jìn)行加鎖,雖然能夠提高服務(wù)器的安全性,但是也會(huì)帶來(lái)一些不便,例如,在軟件的安裝、升級(jí)時(shí)可能需要去掉有關(guān)目錄和文件的immutable屬性和append-only屬性,同時(shí),對(duì)日志文件設(shè)置了append-only屬性,可能會(huì)使日志輪換(logrotate)無(wú)法進(jìn)行。因此,在使用chattr命令前,需要結(jié)合服務(wù)器的應(yīng)用環(huán)境來(lái)權(quán)衡是否需要設(shè)置immutable屬性和append-only屬性。

  另外,雖然通過(guò)chattr命令修改文件屬性能夠提高文件系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能保護(hù)/、/dev、/tmp、/var等目錄。

  根目錄不能有不可修改屬性,因?yàn)槿绻夸浘哂胁豢尚薷膶傩?,那么系統(tǒng)根本無(wú)法工作:/dev在啟動(dòng)時(shí),syslog需要?jiǎng)h除并重新建立/dev/log套接字設(shè)備,如果設(shè)置了不可修改屬性,那么可能出問(wèn)題;/tmp目錄會(huì)有很多應(yīng)用程序和系統(tǒng)程序需要在這個(gè)目錄下建立臨時(shí)文件,也不能設(shè)置不可修改屬性;/var是系統(tǒng)和程序的日志目錄,如果設(shè)置為不可修改屬性,那么系統(tǒng)寫(xiě)日志將無(wú)法進(jìn)行,所以也不能通過(guò)chattr命令保護(hù)。

  雖然通過(guò)chattr命令無(wú)法保護(hù)/dev、/tmp等目錄的安全性,但是有另外的方法可以實(shí)現(xiàn),在面將做詳細(xì)介紹。

  二、文件權(quán)限檢查和修改

  不正確的權(quán)限設(shè)置直接威脅著系統(tǒng)的安全,因此運(yùn)維人員應(yīng)該能及時(shí)發(fā)現(xiàn)這些不正確的權(quán)限設(shè)置,并立刻修正,防患于未然。下面列舉幾種查找系統(tǒng)不安全權(quán)限的方法。

 ?。?)查找系統(tǒng)中任何用戶都有寫(xiě)權(quán)限的文件或目錄查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld(2)查找系統(tǒng)中所有含“s”位的程序

  find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al含有“s”位權(quán)限的程序?qū)ο到y(tǒng)安全威脅很大,通過(guò)查找系統(tǒng)中所有具有“s”位權(quán)限的程序,可以把某些不必要的“s”位程序去掉,這樣可以防止用戶濫用權(quán)限或提升權(quán)限的可能性。

 ?。?)檢查系統(tǒng)中所有suid及sgid文件

  find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;

  將檢查的結(jié)果保存到文件中,可在以后的系統(tǒng)檢查中作為參考。

 ?。?)檢查系統(tǒng)中沒(méi)有屬主的文件

  find / -nouser -o –nogroup

  沒(méi)有屬主的孤兒文件比較危險(xiǎn),往往成為黑客利用的工具,因此找到這些文件后,要么刪除掉,要么修改文件的屬主,使其處于安全狀態(tài)。

  三、/tmp、/var/tmp、/dev/shm安全設(shè)定

  在Linux系統(tǒng)中,主要有兩個(gè)目錄或分區(qū)用來(lái)存放臨時(shí)文件,分別是/tmp和/var/tmp。存儲(chǔ)臨時(shí)文件的目錄或分區(qū)有個(gè)共同點(diǎn)就是所有用戶可讀寫(xiě)、可執(zhí)行,這就為系統(tǒng)留下了安全隱患。攻擊者可以將病毒或者木馬腳本放到臨時(shí)文件的目錄下進(jìn)行信息收集或偽裝,嚴(yán)重影響服務(wù)器的安全,此時(shí),如果修改臨時(shí)目錄的讀寫(xiě)執(zhí)行權(quán)限,還有可能影響系統(tǒng)上應(yīng)用程序的正常運(yùn)行,因此,如果要兼顧兩者,就需要對(duì)這兩個(gè)目錄或分區(qū)就行特殊的設(shè)置。

  /dev/shm是Linux下的一個(gè)共享內(nèi)存設(shè)備,在Linux啟動(dòng)的時(shí)候系統(tǒng)默認(rèn)會(huì)加載/dev/shm,被加載的/dev/shm使用的是tmpfs文件系統(tǒng),而tmpfs是一個(gè)內(nèi)存文件系統(tǒng),存儲(chǔ)到tmpfs文件系統(tǒng)的數(shù)據(jù)會(huì)完全駐留在RAM中,這樣通過(guò)/dev/shm就可以直接操控系統(tǒng)內(nèi)存,這將非常危險(xiǎn),因此如何保證/dev/shm安全也至關(guān)重要。

  對(duì)于/tmp的安全設(shè)置,需要看/tmp是一個(gè)獨(dú)立磁盤(pán)分區(qū),還是一個(gè)根分區(qū)下的文件夾,如果/tmp是一個(gè)獨(dú)立的磁盤(pán)分區(qū),那么設(shè)置非常簡(jiǎn)單,修改/etc/fstab文件中/tmp分區(qū)對(duì)應(yīng)的掛載屬性,加上nosuid、noexec、nodev三個(gè)選項(xiàng)即可,修改后的/tmp分區(qū)掛載屬性類(lèi)似如下:

  LABEL=/tmp     /tmp          ext3    rw,nosuid,noexec,nodev   0 0其中,nosuid、noexec、nodev選項(xiàng),表示不允許任何suid程序,并且在這個(gè)分區(qū)不能執(zhí)行任何腳本等程序,并且不存在設(shè)備文件。

  在掛載屬性設(shè)置完成后,重新掛載/tmp分區(qū),保證設(shè)置生效。

  對(duì)于/var/tmp,如果是獨(dú)立分區(qū),安裝/tmp的設(shè)置方法是修改/etc/fstab文件即可;如果是/var分區(qū)下的一個(gè)目錄,那么可以將/var/tmp目錄下所有數(shù)據(jù)移動(dòng)到/tmp分區(qū)下,然后在/var下做一個(gè)指向/tmp的軟連接即可。也就是執(zhí)行如下操作:

  [root@server ~]# mv /var/tmp/* /tmp

  [root@server ~]# ln -s  /tmp /var/tmp

  如果/tmp是根目錄下的一個(gè)目錄,那么設(shè)置稍微復(fù)雜,可以通過(guò)創(chuàng)建一個(gè)loopback文件系統(tǒng)來(lái)利用Linux內(nèi)核的loopback特性將文件系統(tǒng)掛載到/tmp下,然后在掛載時(shí)指定限制加載選項(xiàng)即可。一個(gè)簡(jiǎn)單的操作示例如下:

  [root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs

  [root@server ~]# cp -av /tmp /tmp.old

  [root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp

  [root@server ~]# mv -f /tmp.old/* /tmp/

  [root@server ~]# rm -rf /tmp.old

  最后,編輯/etc/fstab,添加如下內(nèi)容,以便系統(tǒng)在啟動(dòng)時(shí)自動(dòng)加載loopback文件系統(tǒng):

  /dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

  為了驗(yàn)證一下掛載時(shí)指定限制加載選項(xiàng)是否生效,可以在/tmp分區(qū)創(chuàng)建一個(gè)shell文件,操作如下:

  [root@tc193 tmp]# ls -al|grep shell

  -rwxr-xr-x   1 root root    22 Oct  6 14:58 shell-test.sh[root@server ~]# pwd

  /tmp

  [root@tc193 tmp]# ./shell-test.sh

  -bash: ./shell-test.sh: Permission denied可以看出,雖然文件有可執(zhí)行屬性,但是已經(jīng)在/tmp分區(qū)無(wú)法執(zhí)行任何文件了。

  最后,再來(lái)修改一下/dev/shm的安全設(shè)置。由于/dev/shm是一個(gè)共享內(nèi)存設(shè)備,因此也可以通過(guò)修改/etc/fstab文件設(shè)置而實(shí)現(xiàn),在默認(rèn)情況下,/dev/shm通過(guò)defaults選項(xiàng)來(lái)加載,對(duì)保證其安全性是不夠的,修改/dev/shm的掛載屬性,操作如下:

  tmpfs   /dev/shm    tmpfs   defaults,nosuid,noexec,rw  0 0

  通過(guò)這種方式,就限制了任何suid程序,同時(shí)也限制了/dev/shm的可執(zhí)行權(quán)限,系統(tǒng)安全性得到進(jìn)一步提升。謝謝閱讀,希望能幫到大家,請(qǐng)繼續(xù)關(guān)注腳本之家,我們會(huì)努力分享更多優(yōu)秀的文章。

標(biāo)簽:邢臺(tái) 南昌 韶關(guān) 北海 撫州 臨沂 烏蘭察布 防城港

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《LINUX安全運(yùn)維之:文件系統(tǒng)的權(quán)限修改與安全設(shè)置》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    梅州市| 霞浦县| 湖南省| 万山特区| 延安市| 云安县| 清镇市| 江口县| 怀集县| 玛曲县| 宜章县| 阳原县| 安义县| 五莲县| 老河口市| 米泉市| 新营市| 蒲江县| 临江市| 辽中县| 介休市| 河北省| 绥化市| 马边| 阜阳市| 句容市| 巨鹿县| 南丹县| 农安县| 高陵县| 兴山县| 永清县| 敦化市| 安远县| 镇远县| 普兰店市| 安乡县| 靖宇县| 万载县| 镇安县| 临湘市|