如何保證安全的最大化呢?量體裁衣,有的放矢,取舍得當(dāng)是關(guān)鍵。現(xiàn)從以下幾個方面加以詳述。
控制文件的屬性和權(quán)限
密切關(guān)注文件的屬性和權(quán)限設(shè)置是保證主機(jī)文件系統(tǒng)完整性的至關(guān)緊要的操作。
兩種特殊的文件訪問權(quán)限分別是SUID(八進(jìn)制為4000)和SGID(八進(jìn)制為2000)。設(shè)置這兩種權(quán)限的文件,將使其它用戶在執(zhí)行它們時擁有所有者的權(quán)限。也就是說,如果一個設(shè)置為SUID的程序,即使是普通用戶使用也是作為root來運(yùn)行的。因此,SUID/SGID文件是安全的隱患。
SUID和SGID攻擊方式的預(yù)防:
1.嚴(yán)格審查系統(tǒng)內(nèi)的文件權(quán)限?梢哉页鱿到y(tǒng)內(nèi)使用SUID/SGID的文件,列出清單保存,做到心中有數(shù)。命令如下:
[root#] find / -type f -perm +6000 -ls | less
[root#] find / -type f -perm +6000 > Suid-Sgid.txt
2.對于一部分程序必須設(shè)置為SUID的,可以讓它們自成一組,集中管理。但是絕對不允許在用戶的家目錄下有SUID程序存在。
3.確保重要的SUID腳本不可寫。命令如下:
[root#] find / -perm -2 ! -type l -ls
4.對于并非絕對需要被設(shè)置成SUID的程序,改變它們的訪問權(quán)限或者卸載程序。如:
[root#] chmod -s [program]
5.查找系統(tǒng)內(nèi)所有不屬于任何用戶和組的文件。因?yàn)檫@些文件很容易被利用來獲得入侵主機(jī)的權(quán)限,造成潛在的威脅。命令如下:
[root#] find / -nouser -o -nogroup
6.善于使用lsattr和chattr這兩個ext2/3的屬性命令。本文將主要討論a屬性和i屬性,因?yàn)檫@兩個屬性對于提高文件系統(tǒng)的安全性和保障文件系統(tǒng)的完整性有很大的好處。a屬性(Append-only),系統(tǒng)只允許在這個文件之后追加數(shù)據(jù),不允許任何進(jìn)程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統(tǒng)將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。i屬性(Immutable),系統(tǒng)不允許對這個文件進(jìn)行任何的修改。如果目錄具有這個屬性,那么任何進(jìn)程只能修改目錄之下的文件,不允許建立和刪除文件。
如果主機(jī)直接暴露在因特網(wǎng)或者位于其它危險(如其它非管理員亦可接觸服務(wù)器)環(huán)境,有很多Shell賬戶或提供HTTP和FTP等網(wǎng)絡(luò)服務(wù),一般應(yīng)該在安裝配置完成后使用如下命令,便于保護(hù)這些重要目錄:
[root#] chattr -R +i /bin /boot /etc /lib /sbin
[root#] chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
[root#] chattr +a /var/log/messages /var/log/secure......
如果很少對賬戶進(jìn)行添加、變更或刪除操作,把/home本身設(shè)置為Immutable屬性也不會造成什么問題。
在很多情況下,整個/usr目錄樹也應(yīng)該具有不可改變屬性。實(shí)際上,除了對/usr目錄使用chattr -R +i /usr/命令外,還可以在/etc/fstab文件中使用ro選項(xiàng),使/usr目錄所在的分區(qū)以只讀的方式加載。
另外,把系統(tǒng)日志文件設(shè)置為只能添加屬性(Append-only),將使入侵者無法擦除自己的蹤跡,以便于執(zhí)法人員取證、分析。文件系統(tǒng)的完整性檢查
完整性是安全系統(tǒng)的核心屬性。管理員需要知道是否有文件被惡意改動過。攻擊者可以用很多方法破壞文件系統(tǒng),例如,可以利用錯誤配置獲得權(quán)限,也可以修改文件植入特洛伊木馬和病毒。Linux中常用如下工具進(jìn)行校驗(yàn)檢查。
1.md5sum
md5sum 命令可以用來創(chuàng)建長度為128位的文件指紋信息。通過md5sum -c命令可以反向檢查文件是否被修改過。黑客進(jìn)入到系統(tǒng)后,會用修改后的文件來取代系統(tǒng)上某些特定的文件,如netstat命令等。于是當(dāng)使用 netstat -a命令查看系統(tǒng)狀態(tài)時,不會顯示系統(tǒng)攻擊者存在的信息。攻擊者還可能會替代所有可能泄露其存在的文件,一般來說包括:/bin/ps、/bin/netstat、/bin/login、/bin/ls、
/usr/bin/top、/usr/bin/passwd、/usr/bin/top、
/sbin/portmap、/etc/xinetd.conf、/etc/services。
這些文件都是替代的對象。由于這些文件已經(jīng)被取代,那么簡單地利用ls命令是查看不出這些文件有什么破綻的。因此你需要用md5sum工具在系統(tǒng)安裝前期為這些文件做好指紋認(rèn)證并保存,以備日后檢測所用。
2.RPM安裝包
如果使用的是基于RPM的安裝包(Red Hat公司開發(fā)并包含在其Linux產(chǎn)品之中的多功能軟件安裝管理器,現(xiàn)有多種版本的Linux使用此管理器,如Red Hat、 TurboLinux),它可以用來建立、安裝、查詢、檢驗(yàn)、升級和卸載獨(dú)立的軟件包。一個完整的RPM包包括壓縮文件和包信息。當(dāng)使用RPM安裝軟件時,RPM為每個被安裝的文件向數(shù)據(jù)庫中添加信息,包括MD5校驗(yàn)和、文件大小、文件類型、擁有者、組和權(quán)限模式。當(dāng)RPM以-verify標(biāo)志運(yùn)行時,將把初始文件的值與當(dāng)前安裝的文件進(jìn)行比較并報告差異。例如,下面是對一個被黑站點(diǎn)的運(yùn)行結(jié)果:
# rpm -qf /bin/ps(或# rpm -qf /usr/bin/top 查看命令隸屬哪個RPM包)
procps.2.0.2-2
# rpm -V procps(-V MD5檢驗(yàn))
SM5..UGT /bin/ps
SM5..UGT /usr/bin/top(有消息表示此文件已被修改)
由上可以看出,攻擊者已經(jīng)入侵到系統(tǒng)中,并且用自己的ps及top命令替代了原來系統(tǒng)中的命令,從而使管理員看不到其運(yùn)行的進(jìn)程。RPM的使用方法很多,具體操作方法參見man rpm文檔。
3.Tripwire
Tripwire是一個用來檢測整個系統(tǒng)是否存在惡意代碼和檢驗(yàn)文件完整性的有用工具。它采用MD5算法生成128位的“指紋”,通過命令自動保存系統(tǒng)快照,再產(chǎn)生相應(yīng)的MD5數(shù)值以供日后比較判斷。
使用Tripwire可以定義哪些文件/目錄需要被檢驗(yàn)。一般默認(rèn)設(shè)置能滿足大多數(shù)的要求。該工具運(yùn)行在四種模式下:數(shù)據(jù)庫生成模式、數(shù)據(jù)庫更新模式、文件完整性檢查模式、互動式數(shù)據(jù)庫更新模式。當(dāng)初始化數(shù)據(jù)庫生成的時候,它生成對現(xiàn)有文件各種信息的數(shù)據(jù)庫文件。為預(yù)防以后系統(tǒng)文件或者配置文件被意外地改變、替換或刪除,它將每天基于原始數(shù)據(jù)庫對現(xiàn)有文件進(jìn)行比較,以發(fā)現(xiàn)哪些文件被更改、是否有系統(tǒng)入侵等意外事件發(fā)生。當(dāng)然,如果系統(tǒng)中的配置文件或程序被更改,則需要再次生成數(shù)據(jù)庫文件,保持最新的系統(tǒng)快照。此軟件功能強(qiáng)大,使用方便。具體的安裝和使用,可以通過Google搜索獲得。有效控制服務(wù)器運(yùn)行的后臺進(jìn)程
服務(wù)進(jìn)程(Daemon)是Linux操作系統(tǒng)的核心程序,是外界與主機(jī)互相交互的主要途徑,同時也是連接因特網(wǎng)的大門。正因?yàn)檫\(yùn)行了不同的服務(wù)進(jìn)程,Linux系統(tǒng)才能夠提供不同的服務(wù),網(wǎng)絡(luò)才變得豐富多彩。一個稱職的管理員必須掌握以下幾個要領(lǐng):
1. 要對自己的服務(wù)器有足夠的了解,清楚每臺服務(wù)器的所有后臺進(jìn)程,了解哪臺主機(jī)運(yùn)行了哪些服務(wù),開放了哪些端口。我們可以用以下方法得到服務(wù)器的配置:# ntsysv (或 setup) (列出所有的服務(wù)清單,可以選擇安裝/卸載)
# less /etc/services (列出所有服務(wù)運(yùn)行的端口)
# ps -auxf > daemons.txt(推薦使用,把所有后臺打印列表)
# cd /var/run/|ls -al(查看啟動服務(wù)的進(jìn)程號文件)
2. 對每個服務(wù)都要做好軟件版本號的登記歸檔,密切注意各服務(wù)軟件的漏洞,盡快升級或打補(bǔ)丁。如bind軟件在8.X存在安全漏洞,應(yīng)該盡快升級到9.X。
3.尤其要注意的是,新手們總是認(rèn)為把服務(wù)運(yùn)行起來工作就已經(jīng)做完了,其實(shí)這是不對的。當(dāng)服務(wù)進(jìn)程運(yùn)行起來后,配置文件的優(yōu)化處理相當(dāng)重要。比如, Apache的配置文件中,KeepAlive、MaxKeepAliveRequests、KeepAliveTimeout、 StarServers、MinSpareServers、MaxSpareServers、MaxClients、 MaxRequestsPerChild對機(jī)器性能的影響都非常重要。所以,需要常去網(wǎng)上論壇了解最新信息和發(fā)展動態(tài),從而更好地守住每個進(jìn)出的要口。
同時還要特別注意以下幾方面:
配置獨(dú)立的專用服務(wù)器,增加負(fù)荷能力,降低風(fēng)險
Linux 作為優(yōu)秀的網(wǎng)絡(luò)操作平臺,完全有能力勝任運(yùn)行多個服務(wù)器。比如,它可以作為Web服務(wù)器,同時也可以充當(dāng)FTP服務(wù)器和Mail服務(wù)器。這樣做的好處在于能夠降低投資成本,但是不安全因素也會隨之相應(yīng)增加。因此,需要在投資成本與安全最大化之間權(quán)衡。假如電腦連接因特網(wǎng),提供多種服務(wù),且每天都要提供大量訪問量時,建議一“不要把所有的雞蛋放在同一個籃子里”。把各個服務(wù)進(jìn)程運(yùn)行在不同的主機(jī)上,成為專用的Web服務(wù)器,F(xiàn)TP服務(wù)器或Mail服務(wù)器,共同分擔(dān)風(fēng)險。建議二把各種服務(wù)分類管理。在FTP服務(wù)器和Mail服務(wù)器訪問量不大時,也可以把它們統(tǒng)一管理。
取消所有非必要的服務(wù),盡量做到干凈,減少后門
把Linux作為專用服務(wù)器是個明智的舉措。例如,希望Linux成為強(qiáng)大的Web服務(wù)器,可以取消系統(tǒng)內(nèi)所有非必要的服務(wù),只開啟必要服務(wù)。這樣做可以盡量減少后門,降低隱患,而且可以合理分配系統(tǒng)資源,提高整機(jī)性能。以下是幾個不常用的服務(wù):
1. fingerd(finger服務(wù)器)報告指定用戶的個人信息,包括用戶名、真實(shí)姓名、shell、目錄和聯(lián)系方式,它將使系統(tǒng)暴露在不受歡迎的情報收集活動下,應(yīng)避免啟動此服務(wù)。
2. R服務(wù)(rshd、rlogin、rwhod、rexec)提供各種級別的命令,它們可以在遠(yuǎn)程主機(jī)上運(yùn)行或與遠(yuǎn)程主機(jī)交互,在封閉的網(wǎng)絡(luò)環(huán)境中登錄而不再要求輸入用戶名和口令,相當(dāng)方便。然而在公共服務(wù)器上就會暴露問題,導(dǎo)致安全威脅。
3. X-Window從嚴(yán)格的意義上說,是Linux窗口管理器的擴(kuò)展,而不是重要組成部分。從目前的GNOME、KDE這兩種主流圖形服務(wù)器來看,體積越來越臃腫,耗存越來越大,一些基于圖形界面的軟件在使用上也存在不少問題。雖然開發(fā)人員不會放棄對它的完善,但對于服務(wù)器來說,它的存在價值幾乎沒有。因此,在安裝服務(wù)器時,務(wù)必考慮是否真的需要圖形管理界面。
4. 其它服務(wù),如amd、arpwatch、atd、dhcpd、innd、nntpd、talkd、lpd、named、routed、snmpd、 xfs、wuftpd、tftpd、telnet、ypbind、yppasswd、ypserv,既然是Web服務(wù)器,都可以取消或卸載掉。
同理,如果是作為FTP服務(wù)器運(yùn)行,只需FTP進(jìn)程和必要的程序。
安全系數(shù)高的服務(wù)替代正在運(yùn)行的服務(wù)進(jìn)程
對于一些必要的服務(wù)器,如前所說的Web服務(wù)器,理論上只需要Apache的進(jìn)程就可以工作了。但是如果管理員需要遠(yuǎn)程控制放在運(yùn)營中心的主機(jī)呢?或者用戶需要通過FTP上傳更新資料呢?Telnet、wu-ftp這些服務(wù)的安全性太低,這時,就需要啟用安全級別高的服務(wù)來替代這些服務(wù)程序。以下為幾個需要替代的進(jìn)程:
1.用OpenSSH替代Telnet
推薦使用開放軟件OpenSSH(Secure Shell),這是一個安全的登錄系統(tǒng),且不受加密方法的出口限制,適用于替代Telnet、rlogin、rsh、rcp、rdist。另外, OpenSSH也可以用來在兩臺計算機(jī)間建立一條加密信道供其它不安全軟件使用。OpenSSH支持多種算法,包括BlowFish、Triple DES、IDEA、RSA。目前支持SSH的客戶端軟件不少,推薦使用Putty和Filezilla。關(guān)于服務(wù)器和軟件的安裝使用,請參見相關(guān)文章,在此不再詳述。
2.用Vsftpd替代wu-ftpd、tftpd(基本的FTP服務(wù))、ncftpd(匿名服務(wù))
如果想要一個優(yōu)秀的FTP軟件,建議使用Vsftpd。Vsftpd(Very Secure)是一個非常值得信賴的FTP軟件。除了與生俱來的高安全性外,在ASCⅡ傳輸模式下的速度是wu-ftpd的兩倍,在千兆以太網(wǎng)的下載速度可達(dá)86Mb/s;在穩(wěn)定性方面,Vsftpd可以在單機(jī)(非集群)上支持4000~15000個以上的并發(fā)用戶同時連接。除此以外,還可以建立虛擬 FTP服務(wù)器,支持非系統(tǒng)用戶的登錄下載,同時也可以給不同的用戶分配不同的權(quán)限,保證服務(wù)的安全最大化,F(xiàn)在世界上很多著名的公司都在使用 Vsftpd,如Red Hat、GNU、GNOME、SUSE、KDE、OpenBSD等。具體安裝和配置請見參考資料。
3.用Qmail替代Sendmail
Sendmail 將來仍然是主要的SMTP服務(wù)器,網(wǎng)絡(luò)上有關(guān)Sendmail服務(wù)器的配置資料隨處可見。但事實(shí)上由于Sendmail代碼的復(fù)雜性,使得很多人對其配置一知半解。多數(shù)情況下,新手們往往只要能夠讓Sendmail啟動起來、能收發(fā)郵件就覺得萬事大吉了。這樣的配置其實(shí)漏洞太多,難以保證安全性。所以, Qmail是個更好的選擇。當(dāng)然,要想真正建立一個功能強(qiáng)大、運(yùn)行穩(wěn)定的郵件服務(wù)器,掌握其靈活的配置,認(rèn)真閱讀How-to手冊和FAQ是很有必要的。
使用tcpwrappers控制文件
在沒有設(shè)置防火墻之前,可以通過一種簡單而可靠的機(jī)制——tcpwrappers來加強(qiáng)網(wǎng)絡(luò)訪問控制。tcpwrappers從兩個文件中讀取網(wǎng)絡(luò)訪問控制規(guī)則:
/et
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【m.1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|