一個安全Web服務(wù)器的安裝(4)_Windows教程
作為一個一般的規(guī)則,應(yīng)該保證沒有在任何地方使用符號符號連接(Symlinks),因此要禁止FollowSymLinks選項。所有的CGI都放在cgi-bin目錄下,不允許放在其它任何地方,甚至也不允許在其它目錄下執(zhí)行。為了做到這一點,請不要使用ExecCGI配置選項。
為了禁止訪問某些文件區(qū),應(yīng)該在這些目錄下分別加入一個命名為.htaccess的文件,并在中加入下面的文本行:order deny,allow deny from all
第六步:Step 6: sudo程序與多個管理員
每一個管理員都應(yīng)該有一個自己的帳號。如果每個人都使用root身份進行操作,那么就無法知道誰做了些什么。另外,如果使用root口令輸入了一個不正確的命令可能對整個系統(tǒng)都產(chǎn)生嚴(yán)重的影響。應(yīng)該僅僅在絕對需要時才使用具有高授權(quán)的操作。先前的harden_suse腳本已經(jīng)將系統(tǒng)配置進行了必要的修改,它禁止了root用戶的直接遠(yuǎn)程登錄。僅僅以加密形式的SSH進行遠(yuǎn)程登錄才可以執(zhí)行管理任務(wù)。下一個需要做的事是配置sudo,這個程序可以幫助管理員記錄執(zhí)行過的命令。這個程序也提供了一個詳細(xì)的授權(quán)結(jié)構(gòu),例如,象oracle用戶一樣,用戶A可以被授權(quán)為可以重新啟動數(shù)據(jù)庫和查看root目錄下的系統(tǒng)日志文件,但是不能做除此以外的任何事。可用用下面的命令行為每一個管理員設(shè)置一個用戶:erde# adduser -m -g trusted username
將用戶包含在”trusted”用戶組是非常關(guān)鍵的,因為根據(jù)harden_suse所確定的安全標(biāo)準(zhǔn),sudo僅能夠被trusted組所使用。
隨后,管理員就可以利用visudo程序,在編輯器中加入允許管理員可以做任何他想做的事的腳本行如下:
username ALL=(ALL) ALL
“man 5 sudoers”
設(shè)置了一個可以限制授權(quán)的主機。
當(dāng)然,管理員應(yīng)該使用sudo并且不應(yīng)該使用”su root”命令轉(zhuǎn)換到root身份,只有這樣,才能保證讓盡量少的人知道root口令。
第七步:最后的調(diào)整
完成所有的系統(tǒng)配置之后,應(yīng)該使用tripwire程序產(chǎn)生一個包含所有文件的校驗和的數(shù)據(jù)庫:
erde# cp/usr/doc/packages/tripwire/tw.conf.example.linux
�。痸ar/adm/tripwire/tw.config
erde#/var/adm/tripwire/bin/tripwire -initialize
在連接Internet之前,產(chǎn)生文件/databases/tw.db_HOSTNAME應(yīng)該備份到一個安全的存儲介質(zhì)(如CD-ROM)上。
一旦懷疑有攻擊者已經(jīng)入侵并操作了系統(tǒng),可以用tripwire跟蹤所有的操作。但是,應(yīng)該隔一段時間就用tripware重新生成一次校驗和數(shù)據(jù)庫,因為這是對付高智商的攻擊者的最有效方法。
在連接Internet之間的最后工作是對系統(tǒng)進行備份而后reboot。
但這些還不夠,所有的系統(tǒng)管理員都應(yīng)該訂閱關(guān)于WEB安全的最重要的郵件列表:
suse-security:這是包含安全相關(guān)專題和安全公告的SuSE討論組列表,要訂閱這個列表,只需要發(fā)送一個空郵件到[email protected]郵箱就可以了;
suse-security-announce:僅僅包含安全公告,要訂閱這個列表,需要發(fā)一個空郵件到[email protected]郵箱;
bugtraq:致力于最新的安全問題的討論區(qū)列表,要訂閱這個列表,需要發(fā)送一個包含”subscribe bugtraq surname@firstname”內(nèi)容的空白郵件到:[email protected]郵箱。
其它選擇
由于沒有安裝本地入侵檢測系統(tǒng),所以只能從攻擊者留下的可以痕跡跟蹤成功入侵的黑客行為。對于這種措施,也沒有什么現(xiàn)成的解決方案,但是還是有很多人開發(fā)了針對這種工作的程序和發(fā)布了一些竅門。然而,有關(guān)這些方面的細(xì)節(jié)描述遠(yuǎn)非本文的主題所能涵蓋了。
如果Web服務(wù)器上的幾個文件需要定期更新,scp——cp函數(shù)在SSH中的安全版本——就顯得不是很好用了。一個更合適的方法是使用SSLftp,它具有FTP的功能并且象SSH一樣對數(shù)據(jù)進行了加密。
日志數(shù)據(jù)很重要,所有的從Web服務(wù)器和路由器所記錄的重要日志記錄都應(yīng)該送到一個集中管理的日志主機,這個日志主機主要用來監(jiān)視所有計算機的運行狀態(tài)。通過這種方法,攻擊者就就很難遁形滅跡了。
另外,將Solar Designer [13]設(shè)計的安全內(nèi)核補丁集成到系統(tǒng)中是個很好的主意,有了這個安全補丁,利用緩沖區(qū)溢出做手腳的攻擊方式將變得更困難。
應(yīng)該剝奪那些suid和sgid程序所具有的沒必要的過高特權(quán)。這可以通過將那些不再需要具有特權(quán)的程序逐個輸入到/etc/permissions.local然后手工去掉程序的授權(quán)(或啟動SuSEconfig)的方法實現(xiàn)。
這個工作直到?jīng)]有sgid程序并且僅僅有下面列出的少數(shù)幾個suid程序時結(jié)束:
-rwsr-xr-x 1 root shadow 27920 Mar 11 11:50 /usr/bin/passwd
-rwsr-x--- 1 root trusted 56600 Mar 11 18:41 /usr/bin/sudo
-rwsr-xr-x 1 root root 6132 Mar 11 09:36 /usr/lib/pt_chown
如果系統(tǒng)由幾個分區(qū),通過使用mount選項ro(只讀)、nodev(無設(shè)備)、nosuid (沒有高特權(quán)的suid文件)和noexec (沒有可執(zhí)行文件)顯著地提高系統(tǒng)的安全級別。
除此之外,可以使用ext2文件系統(tǒng)標(biāo)志”append-only”和”immutable”(通過chattr命令設(shè)置)定義內(nèi)核能力,這樣就可以保護日志和引導(dǎo)文件等不被篡改。
如果服務(wù)器需要具有防止本地攻擊的能力,必須為LILO引導(dǎo)裝載器配備一個口令,這可以通過在/etc/lilo.conf文件的頂端輸入下面的腳本行實現(xiàn):
password=something_difficult_to_guess
restricted
最后,Web服務(wù)器不僅僅只是Apache。通常要包括1到2個數(shù)據(jù)庫,還要引入一些附加的模塊和程序,或者需要激活其它一些服務(wù)(如Dns服務(wù)器)。Linux包過濾(參見第二步中的例子)可以方便有效地提供保護支持。一個稱為”隔離間”(”compartment”:可以從這里獲得)的程序支持chroot、特權(quán)分配以及Linux能力配置等任務(wù)。
當(dāng)然,還可以做很多其它的事情,但我所能想到的只有這些了。
- 相關(guān)鏈接:
- 教程說明:
Windows教程-一個安全Web服務(wù)器的安裝(4)
。