王俊杰 武漢傳媒學(xué)院
服務(wù)器運(yùn)行的物理安全環(huán)境是很重要的,很多人忽略了這點(diǎn)。物理環(huán)境主要是指服務(wù)器托管機(jī)房的設(shè)施狀況,包括通風(fēng)系統(tǒng)、電源系統(tǒng)、防雷防火系統(tǒng)以及機(jī)房的溫度、濕度條件等。這些因素會(huì)影響到服務(wù)器的壽命和所有數(shù)據(jù)的安全。我不想在這里討論這些因素,因?yàn)樵谶x擇IDC時(shí)你自己會(huì)作出決策。
在這里著重強(qiáng)調(diào)的是,有些機(jī)房提供專門的機(jī)柜存放服務(wù)器,而有些機(jī)房只提供機(jī)架。所謂機(jī)柜,就是類似于家里的櫥柜那樣的鐵柜子,前后有門,里面有放服務(wù)器的拖架和電源、風(fēng)扇等,服務(wù)器放進(jìn)去后即把門鎖上,只有機(jī)房的管理人員才有鑰匙打開。而機(jī)架就是一個(gè)個(gè)鐵架子,開放式的,服務(wù)器上架時(shí)只要把它插到拖架里去即可。這兩種環(huán)境對(duì)服務(wù)器的物理安全來說有著很大差別,顯而易見,放在機(jī)柜里的服務(wù)器要安全得多。
很多Windows服務(wù)器采用終端服務(wù)進(jìn)行管理,在一個(gè)機(jī)架式的機(jī)房里,你可以隨便把顯示器接在哪臺(tái)服務(wù)器上。如果你碰巧遇到某臺(tái)機(jī)器的管理員或使用者正通過終端使用這臺(tái)機(jī)器,那么他的操作你可以一覽無余。甚至,你可以把鍵盤接上去,把他killoff,然后完全控制這臺(tái)機(jī)器。當(dāng)然,這種事情比較少見,但不意味著不可發(fā)生。
在系統(tǒng)安全體系中,權(quán)限認(rèn)證體系最為關(guān)鍵。當(dāng)一個(gè)用戶訪問一個(gè)文件的時(shí)候;如果當(dāng)前用戶的UID與文件owner的UID匹配,那么就遵守第一個(gè)三位組的權(quán)限,如果不匹配那么看GID。如果當(dāng)前用戶的GID與文件group的GID匹配,那么就遵守第二個(gè)三位組的權(quán)限。如果當(dāng)前用戶的UID與GID和文件的owner與group都不匹配,那么就看第三個(gè)三位組other的權(quán)限。
默認(rèn)情況下管理員的umask 022,普通用戶的umask 002。
下面我們就以文件默認(rèn)權(quán)限是666,umask是033,來講解一下最后我們得到一個(gè)文件的權(quán)限。
1.666的權(quán)限是rw- rw- rw-,換算成 2進(jìn)制 110 110 110。
2.umask 033 權(quán)限是 --- -wx -wx ,換算成2進(jìn)制 000 011 011。
3.umask 2進(jìn)制取反 000 011 011 -------->111 100 100。
4.umask 取反后的2進(jìn)制和默認(rèn)權(quán)限做與運(yùn)算。
inux建議使用普通用戶,如果用到root之后,需要切換管理員,那么用su有安全問題,su的時(shí)候需要輸入root密碼,可能密碼太簡(jiǎn)單,站旁邊就能看到你輸入的什么密碼,有可能有鍵盤記錄木馬,所以這種情況相當(dāng)危險(xiǎn)??梢允褂胹udo,sudo用的是普通用戶的密碼,就算丟密碼也沒問題,再一個(gè)使用sudo是需要授權(quán)的。
系統(tǒng)是怎么對(duì)一個(gè)用戶的登錄過程進(jìn)行一步步驗(yàn)證的,如果驗(yàn)證的過程中不能滿足我的要求,那我們能不能設(shè)置我們自己的驗(yàn)證?
假如我是以上程序的開發(fā)人員,在寫代碼的時(shí)候,有一部分代碼是做身份驗(yàn)證的,比如使用的時(shí)候使用賬戶密碼,什么時(shí)候只要有密碼都可以登錄,那好,我加點(diǎn)功能,規(guī)定指定的時(shí)間可以登錄,問題又來了,用戶要求只想讓某臺(tái)機(jī)器登錄,這時(shí)候我又加點(diǎn)功能,這樣下去,千奇百怪的問題都會(huì)來,那我的代碼會(huì)越來越長(zhǎng)。怎么辦?
同一種花色的門,用戶對(duì)鎖有各種各樣的要求,要都生產(chǎn)的話,那生產(chǎn)的太多了,怎么辦?我在門上留鎖孔,由用戶自己去市場(chǎng)買鎖,這鎖還可換,選擇性還大。以上的道理就是:應(yīng)用與驗(yàn)證分離那么現(xiàn)在就來說下PAM ,pam就相當(dāng)于一堆鎖,用戶想用就用。
安全增強(qiáng)型Linux(SELinux)開始是由NSA(國(guó)家安全局)啟動(dòng)并加入到Linux系統(tǒng)中的一套核心組件及用戶工具,可以讓應(yīng)用程序運(yùn)行在其所需 的最低權(quán)限上。未 經(jīng)修改過的Linux系統(tǒng)是使用自主訪問控制的,用戶可以自己請(qǐng)求更高的權(quán)限,由此惡意軟件幾乎可以訪問任何它想訪問的文件,而如果你授予其root權(quán)限,那它就無所不能了。
所有DAC機(jī)制都有一個(gè)共同的弱點(diǎn),就是它們不能識(shí)別自然人與計(jì)算機(jī)程序之間最基本的區(qū)別。簡(jiǎn)單點(diǎn)說就是,如果一個(gè)用戶被授權(quán)允許訪問,意味著程序也被授權(quán)訪問,如果程序被授權(quán)訪問,那么惡意程序也將有同樣的訪問權(quán)。DAC最根本的弱點(diǎn)是主體容易受到多種多樣的惡意軟件的攻擊,MAC就是避免這些攻擊的出路,大多數(shù)MAC特性組成了多層安全模型。
工作在linux內(nèi)核中的網(wǎng)絡(luò)防火墻系統(tǒng),iptables與netfilter是一組工具,起到防火墻作用的是netfilter,它是內(nèi)核中的一個(gè)框架frame。iptables是一個(gè)能夠生成防火墻規(guī)則,并將規(guī)則加載到frame中使其生效的一個(gè)工具。
防火墻定義:對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)而言,工作在主機(jī)邊緣(網(wǎng)卡)或者網(wǎng)絡(luò)的邊緣(路由),對(duì)于進(jìn)出的各種數(shù)據(jù)報(bào)文(TCP報(bào)文、IP報(bào)文等)進(jìn)行檢查和監(jiān)控,并且能夠根據(jù)事先定義好的規(guī)則(匹配標(biāo)準(zhǔn)),對(duì)匹配到的報(bào)文做出該規(guī)則中定義好的處理方法進(jìn)行處理(管理)的一套組件或者機(jī)制就叫做防火墻(網(wǎng)絡(luò)防火墻)。
網(wǎng)絡(luò)防火墻(Linux主機(jī)),其網(wǎng)絡(luò)功能是由Linux內(nèi)核實(shí)現(xiàn),而netfilter框架上應(yīng)用的防火墻規(guī)則也應(yīng)該是加載到內(nèi)核中,由內(nèi)核執(zhí)行相應(yīng)的規(guī)則,使其具有相應(yīng)功能。具體來說,Linux內(nèi)核中,TCP/IP協(xié)議棧具體完成網(wǎng)絡(luò)通信功能實(shí)現(xiàn),而所謂的netfilter會(huì)將防火墻規(guī)則加載或者設(shè)置到TCP/IP協(xié)議棧上才能發(fā)揮具體功用。
①規(guī)則(rules):網(wǎng)絡(luò)管理員預(yù)定義的條件
②鏈(chains):是數(shù)據(jù)包傳播的路徑
③表(tables):內(nèi)置3個(gè)表filter表,nat表,mangle表分別用于實(shí)現(xiàn)包過濾網(wǎng)絡(luò)地址轉(zhuǎn)換和包重構(gòu)的功能。
另外一個(gè)問題,對(duì)每個(gè)"鏈"上都放置了一串規(guī)則,但是這些規(guī)則有些很相似,比如,A類規(guī)則都是對(duì)IP或者端口的過濾,B類規(guī)則是修改報(bào)文,那么這個(gè)時(shí)候,我們是不是能把實(shí)現(xiàn)相同功能的規(guī)則放在一起呢,必須能的。
我們把具有相同功能的規(guī)則的集合叫做"表",所以說,不同功能的規(guī)則,我們可以放置在不同的表中進(jìn)行管理,而iptables已經(jīng)為我們定義了4種表,每種表對(duì)應(yīng)了不同的功能,而我們定義的規(guī)則也都逃脫不了這4種功能的范圍,所以,學(xué)習(xí)iptables之前,我們必須先搞明白每種表的作用。
iptables為我們提供了如下規(guī)則的分類,或者說,iptables為操作者提供了如下"表"。
但是需要注意的是,某些"鏈"中注定不會(huì)包含"某類規(guī)則",就像某些"關(guān)卡"天生就不具備某些功能一樣,比如,A"關(guān)卡"只負(fù)責(zé)打擊陸地?cái)橙?,沒有防空能力,B"關(guān)卡"只負(fù)責(zé)打擊空中敵人,沒有防御步兵的能力,C"關(guān)卡"可能比較NB,既能防空,也能防御陸地?cái)橙耍珼"關(guān)卡"最屌,海陸空都能防。