引言:提起Linux,大家都覺得其安全性很高。因為相對Windows來說,大家對Linux接觸的相對較少。很多病毒、木馬和黑客工具都是針對Windows進(jìn)行攻擊的,攻擊Linux的惡意程序相對較少,似乎使用Linux后,就不必為系統(tǒng)安全擔(dān)憂了。其實不然,Linux系統(tǒng)同樣存在各種漏洞,黑客完全可能利用這些漏洞攻擊并控制整個系統(tǒng)。只有經(jīng)過精心的配置,消除所有安全漏洞,才可以讓系統(tǒng)變得強(qiáng)壯。
在Windows中,利用系統(tǒng)提供的Update功能,可以執(zhí)行系統(tǒng)的更新操作,也就是為系統(tǒng)打上各種補丁。與之對應(yīng),不同的Linux系統(tǒng)都有各自的更新程序,利用其可以自動搜索更新包并完成安裝操作,將系統(tǒng)中的所有軟件包升級到最新版本。登錄密碼可謂系統(tǒng)的第一道也是最重要的防線,如果您的Linux系統(tǒng)使用的是默認(rèn)的空密碼,而且還開 啟 了Telnet、SSH等 服務(wù)的話,就等于為黑客入侵開啟了大門。因此,當(dāng)系統(tǒng)安裝完畢后,必須立即更改Root等賬戶的密碼,可以使用Passwors命令來修改密碼,其使用格式為“password
賬戶名”。當(dāng)然,只有超級用戶才可以修改不同賬戶的密碼。如果在命令行中執(zhí)行“password”命令,修改的是Root賬戶的密碼,而且密碼輸入時不回顯的。雖然使用圖形界面也可以修改密碼,不過使用Linux一定要養(yǎng)成使用終端的習(xí)慣。對口令的保護(hù)還涉及到對“/etc/password”和“/etc/shadow”文件的保護(hù),只有系統(tǒng)管理員才可以訪問這兩個文件。
系統(tǒng)的所有活動信息都會記錄在日志中,如果黑客入侵了系統(tǒng),其行蹤自然逃不出日志的法眼。Linux的日志文件一般保存在“/var/log”目錄中,在該目錄下會發(fā)現(xiàn)名稱后面帶有數(shù)字的文件,這些文件是在日志文件被循環(huán)的時候創(chuàng)建的,因為是循環(huán)使用日志,其體積不會太大。但是,當(dāng)黑客攻擊系統(tǒng)后,往往會修改,刪除日志來逃避檢測。所以一定要限制“/var/log”目 錄的訪問權(quán)限,禁止一般權(quán)限的用戶查看,修改日志內(nèi)容。大部分日志使用的是純文本模式,任何文本編輯器都可以查看其內(nèi)容。當(dāng)然,也可以使用系統(tǒng)自帶的工具,例如在Redhat Linux中運行其內(nèi)置的Logviewer程序,可以以圖形化界面顯示日志信息,其界面更加細(xì)致簡潔,查看起來很方便。當(dāng)然,也可以使用Logcheck這款專業(yè)工具來分析日志,該工具可以自動檢查和安全相關(guān)的入侵事件以及非正常活動記錄,可以有效分析各種Linux日志文件,例如“/var/log/message”、“/var/log/secure”、“/var/log/maillog”等。
當(dāng)黑客入侵系統(tǒng)后,往往會和本機(jī)建立網(wǎng)絡(luò)連接,或者在其中安置后門程序,來長期控制系統(tǒng)。在Linux中可以使用大家很熟悉的“netstat a”命令,來查看本機(jī)端口使用信息。在網(wǎng)絡(luò)連接列表中如果發(fā)現(xiàn)異常的端口連接情況,就必須對系統(tǒng)進(jìn)行安全檢查了。常言道,有備則無患。當(dāng)黑客入侵后,一旦將重要文件刪除,就會給您造成很大的損失。因此,對重要的文件和目錄進(jìn)行備份,是極為重要的。使用系統(tǒng)自帶的“tar”命令,就可以完成備份操作,其使用格式為“tar [選項] 文件或目錄”,其中的選項分為主選項和輔選項,主選項是必須的,告訴tar命令執(zhí)行什么動作,輔選項是可選的,例如選項“c”表示創(chuàng)建新的文檔文件,“r”表示把要存檔的文件追加到檔案文件尾部,例如當(dāng)備份好文件后,發(fā)現(xiàn)有些文件忘記備份了,可以利用該選項,將這些文件追加到備份文件中?!皌”參數(shù)可以列出檔案內(nèi)容,“u”參數(shù)要用來更新檔案文件,即使用新增的文件覆蓋原備份文件,如果在檔案文件中沒有更新內(nèi)容則執(zhí)行追加操作?!癴”參數(shù)表示使用檔案文件,“x”參數(shù)表示釋放文件。
例如,需要備份當(dāng)前路徑下的“data”目錄,可以執(zhí)行“tar-cf shuju.tar data”,將其內(nèi)容被分到“shuju.tar”文件中。以后需要恢復(fù)數(shù)據(jù)時,執(zhí)行“tar xvf shuju.tar”即可。對于系統(tǒng)中的一些重要目錄,建議經(jīng)常進(jìn)行備份操作。例如在“/etc/password”目錄中存儲所有用戶的信息,包括密碼、登錄的Shell等。在“/etc/fstab”目錄中保存文件系統(tǒng)配置信息,在“/etc/inittab”目錄中包含配置Init在不同運行級別下啟動系統(tǒng)參數(shù),在“/etc/hosts”目錄中包含域名解析信息,在“/etc/inetd.conf”目 錄中包含遠(yuǎn)程控制信息,在“/etc/printcap”目錄中包含打印機(jī)通信配置信息,在“e/tc/XF86Config”目錄中包含Xfree86的初始配置信息等,對于上述目錄,應(yīng)該定期進(jìn)行備份。其實,在“/etc”目錄下有很多配置文件都需要及時進(jìn)行備份的。
當(dāng)黑客入侵系統(tǒng)后,往往會在其中創(chuàng)建非法賬戶,來對系統(tǒng)進(jìn)行深入控制。因此,對用戶列表經(jīng)常進(jìn)行檢查,及時發(fā)現(xiàn)并刪除陌生的可疑賬戶,是不可忽視的安全問題。執(zhí)行“cat /etc/password”命令,就可以查看賬戶列表信息。使用“userdel f”命令,可以刪除指定的賬戶。例如執(zhí)行“userdelf hack”命令,可以將hack賬戶刪除,同時將其關(guān)聯(lián)的目錄和文件一并清除。為了提高安全性,需要在Linux中使用殺軟和防火墻軟件。這類安全軟件有很多,例如ClamAV、Mcafee、Avast、Avria、AVG、F-PROT 等。對于防火墻軟件來說,可以使用KDE自帶的防火墻,雖然沒有專業(yè)版防火墻功能強(qiáng)悍,不過對于一般用戶可以滿足需求。如果您沒有使用KDE桌面環(huán)境,可以使用系統(tǒng)自帶的IPTables(內(nèi)核包過濾管理工具),同樣可以起到防火墻的作用。其過濾流程的前提是包過濾規(guī)則必須被包過濾設(shè)備端口存儲起來,當(dāng)包到達(dá)端口時,對包的報頭進(jìn)行語法分析,大多數(shù)包過濾只檢查IP、TCP、UDP報頭中的字段信息。包過濾規(guī)則以特殊的方式存儲,應(yīng)用于包的規(guī)則的順序與包過濾器規(guī)則存儲順序必須相同。若一條規(guī)則阻止包傳輸或接收,則此包便不被允許。若一條規(guī)則允許包傳輸或接收,則此包便可以被繼續(xù)處理。若包不滿足任何一條規(guī)則,則此包便被阻止。
IPTables的 用 法是“iptable [-t table]CMD[chain][rule-matcher][-j target]”,其中的“table”是表明,為 filter、nat和mangle,包過濾只使用filter表,這是默認(rèn)項目。其中的“CMD”是操作命令,包括添加、刪除、更新等?!癱hain”為鏈名,對于包過濾防火墻可操作filter表中的INPUT鏈、OUTPUT鏈和FORWARD鏈,也可以自定義鏈。
“Rule-matcher” 參數(shù)是規(guī)則匹配器,用來指定各種規(guī)則匹配,例如IP、PORT、包類型等?!癟arget”為目標(biāo)動作,當(dāng)規(guī)則匹配一個包時,真正要執(zhí)行的任務(wù)用目標(biāo)表示,最常用的內(nèi)置目標(biāo)為ACCEPT和DROP,當(dāng)然,也可以使用擴(kuò)展的目標(biāo)??雌饋戆^濾規(guī)則很復(fù)雜,其實使用起來很簡單,例如,一般用戶可以充分利用syn標(biāo)示來阻止未經(jīng)授權(quán)的非法訪問。比如當(dāng)瀏覽網(wǎng)頁時,系統(tǒng)會發(fā)送一個請求到Web服務(wù)器上,該服務(wù)器會響應(yīng)該請求并發(fā)回一個數(shù)據(jù)包,同時在系統(tǒng)中開啟一個端口。和響應(yīng)請求不同,Web服務(wù)器并不關(guān)心其傳輸?shù)膬?nèi)容,利用這個特點可以設(shè)置過濾規(guī)則,來阻止所有未經(jīng)您的系統(tǒng)授權(quán)的TCP連接,例如執(zhí)行“iptables t filter A INPUT i eth0–ptcp–syn jDROP”,其中的“-i”指的是網(wǎng)卡,“-p”指的是協(xié)議,“-syn”指的是帶有SYN標(biāo)識的TCP數(shù)據(jù)包。SYN用于初始化一個TCP連接,如果自己的電腦沒有運行任何服務(wù)器軟件,別人就無法向您發(fā)送SYN數(shù)據(jù)包。
如果想攔截所有發(fā)送到本機(jī)的ICMP數(shù)據(jù)包的話,可以下執(zhí)行命令“iptables AINPUTpicmps0/0d0/0j DROP”。其 中的“p”參數(shù)指明控制何種網(wǎng)絡(luò)協(xié)議,這里是ICMP協(xié)議。其中的參數(shù)“-s”表示源地址,后根“0/0”表示任何源地址,其中的“-d”參數(shù)表示目標(biāo)地址,后根“0/0”表示所有的目標(biāo)地址。其中的參數(shù)“j”表示對符合條件的數(shù)據(jù)包采用何種處理辦法,后根“REJECT”表示拒絕該數(shù)據(jù)包。如果本機(jī)是一臺Web服務(wù)器,需要阻止外部主機(jī)對本機(jī)進(jìn)行訪問,可以執(zhí)行命令“iptables A INPUT ptcp s0/0 d0/0 dport 80 j drop”,其 中的“-dport 80”參數(shù)指明封鎖本機(jī)的80端口。相反的,如果允許IP分為位“123.456.789.0/24”的外部主機(jī)訪問本機(jī)所有端口,可以執(zhí)行命令“iptables-A INPUT-s 123.456.789.0/24 d0/0j ACCEPT”, 其 中的“-jACCEPT”參 數(shù) 表示允許訪問。當(dāng)需要刪除iptables創(chuàng)建的安全規(guī)則時,首先使用“iptables line-numbers nL”命令。來查詢系統(tǒng)中的所有安全規(guī)則,每一條安全規(guī)則都存在一個編號,例如需要刪除第9條規(guī)則,執(zhí)行命令“iptables D INPUT 9”即可,其中的“-D”參數(shù)表示刪除操作。當(dāng)然,可以將一系列的IPTables規(guī)則放進(jìn)一個初始化的Shell腳本里,并為其加上可執(zhí)行屬性,設(shè)置為開機(jī)運行狀態(tài),就可以組建一個功能強(qiáng)悍的防火墻。