世界上沒有絕對安全的系統,即使是普遍認為穩定的Linux系統,在管理和安全方面也存在不足之處。我們期望讓系統盡量在承擔低風險的情況下工作,這就要加強對系統安全的管理。
下面,我具體從兩個方面來闡述Linux存在的不足之處,並介紹如何加強Linux系統在安全方面的管理。
防止黑客的入侵
在談黑客入侵方面的安全管理之前,我先簡單介紹一些黑客攻擊Linux主機的主要途徑和慣用手法,讓大家對黑客攻擊的途徑和手法有所了解。這樣才能更好地防患於未然,做好安全防范。
要阻止黑客蓄意的入侵,可以減少內網與外界網絡的聯系,甚至獨立於其它網絡系統之外。這種方式雖造成網絡使用上的不便,但也是最有效的防范措施。
黑客一般都會尋求下列途徑去試探一台Linux或Unix主機,直到它找到容易入侵的目標,然後再開始動手入侵。常見的攻擊手法如下:
1、直接竊聽取得root密碼,或者取得某位特殊User的密碼,而該位User可能為root,再獲取任意一位User的密碼,因為取得一般用戶密碼通常很容易。
2、黑客們經常用一些常用字來破解密 碼。曾經有一位美國黑客表示,只要用“passWord”這個字,就可以打開全美多數的計算機。其它常用的單詞還有:account、ald、 alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、 love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。
3、使用命令:[email protected],就可以知道該台計算機上面的用戶名稱。然後找這些用戶下手,並通過這些容易入侵的用戶取得系統的密碼文件/etc/passwd,再用密碼字典文件搭配密碼猜測工具猜出root的密碼。
4、利用一般用戶在/tmp目錄放置著的SetUID的文件或者執行著SetUID程序,讓root去執行,以產生安全漏洞。
5、利用系統上需要SetUID root權限的程序的安全漏洞,取得root的權限,例如:pppd。
6、從.rhost的主機入侵。因為當用戶執行rlogin登錄時,rlogin程序會鎖定.rhost定義的主機及賬號,並且不需要密碼登錄。
7、修改用戶的.login、cshrc、.profile等Shell設置文件,加入一些破壞程序。用戶只要登錄就會執行,例如“if /tmp/backdoor exists run /tmp/backdoor”。
8、只要用戶登錄系統,就會不知不覺地執行Backdoor程序(可能是Crack程序),它會破壞系統或者提供更進一步的系統信息,以利Hacker滲透系統。
9、如果公司的重要主機可能有網絡防火牆的層層防護,Hacker有時先找該子網的任何一台容易入侵的主機下手,再慢慢向重要主機伸出魔掌。例如:使用NIS共同聯機,可以利用remote 命令不需要密碼即可登錄等,這樣黑客就很容易得手了。
10、Hacker會通過中間主機聯機,再尋找攻擊目標,避免被用逆查法抓到其所在的真正IP地址。
11、Hacker進入主機有好幾種 方式,可以經由Telnet(Port 23)、Sendmail(Port25)、FTP(Port 21)或WWW(Port 80)的方式進入。一台主機雖然只有一個地址,但是它可能同時進行多項服務,而這些Port都是黑客“進入”該主機很好的方式。
12、Hacker通常利用 NIS(IP)、NFS這些RPC Service截獲信息。只要通過簡單的命令(例如showmount),便能讓遠方的主機自動報告它所提供的服務。當這些信息被截獲時,即使裝有 tcp_wrapper等安全防護軟件,管理員依然會在毫不知情的情況下被“借”用了NIS Server上的文件系統,而導致/etc/passwd外流。
13、發E-mail給anonymous賬號,從FTP站取得/etc/passwd密碼文件,或直接下載FTP站/etc目錄的passwd文件。
14、網絡竊聽,使用sniffer程序監視網絡Packet,捕捉Telnet,FTP和Rlogin一開始的會話信息,便可順手截獲root密碼,所以sniffer是造成今日Internet非法入侵的主要原因之一。
15、利用一些系統安全漏洞入侵主機,例如:Sendmail、Imapd、Pop3d、DNS等程序,經常發現安全漏洞,這對於入侵不勤於修補系統漏洞的主機相當容易得手。
16、被Hacker入侵計算機,系統的Telnet程序可能被掉包,所有用戶Telnet session的賬號和密碼均被記錄下,並發E-mail給Hacker,進行更進一步的入侵。
17、Hacker會清除系統記錄。一些厲害的Hacker都會把記錄它們進入的時間、IP地址消除掉,諸如清除:syslog、lastlog、messages、wtmp、utmp的內容,以及Shell歷史文件.history。
18、入侵者經常將如ifconfig、tcpdump這類的檢查命令更換,以避免被發覺。
19、系統家賊偷偷復制/etc/passwd,然後利用字典文件去解密碼。
20、家賊通過su或sudo之類的Super User程序觊觎root的權限。
21、黑客經常使用Buffer overflow(緩沖區溢位)手動入侵系統。
22、cron是Linux操作系統用來自動執行命令的工具,如定時備份或刪除過期文件等等。入侵者常會用cron來留後門,除了可以定時執行破譯碼來入侵系統外,又可避免被管理員發現的危險。
23、利用IP spoof(IP詐騙)技術入侵Linux主機。
以上是目前常見的黑客攻擊Linux 主機的伎倆。如果黑客可以利用上述一種方法輕易地入侵計算機的話,那麼該計算機的安全性實在太差了,需要趕快下載新版的軟件來升級或是用patch文件來 修補安全漏洞。在此警告,擅自使用他人計算機系統或竊取他人資料的都是違法行為,希望各位讀者不要以身試法。
除了上面這些方法,很多黑客還可 以利用入侵工具來攻擊Linux系統。這些工具常常被入侵者完成入侵以後種植在受害者服務器當中。這些入侵工具各自有不同的特點,有的只是簡單地用來捕捉 用戶名和密碼,有的則非常強大可記錄所有的網絡數據流。總之,黑客利用入侵工具也是攻擊Linux主機的常用方法。
對黑客的安全防護
如果要保護系統的安全,針對黑客入侵我們要做的第一步應該就是把預防工作提前做好。作為一名系統管理員一定要保證自己管理的系統在安全上沒有漏洞。這樣就不會給非法用戶可乘之機。
要提前做好預防工作,我認為主要有下面幾點:
第一,提前關閉所有可能的系統後門,以防止入侵者利用系統中的漏洞入侵。例如用“rpcinfo -p”來檢查機器上是否運行了一些不必要的遠程服務。一旦發現,立即停掉,以免給非法用戶留下系統的後門。
第二,確認系統當中運行的是較新的Linux、Unix守護程序。因為老的守護程序允許其它機器遠程運行一些非法的命令。
第三,定期從操作系統生產商那裡獲得安全補丁程序。
第四,安裝加強系統安全的程序,如:Shadow password、TCP wrappet、SSH、PGP等。
第五,可以搭建網絡防火牆,防止網絡受到攻擊。
第六,利用掃描工具對系統進行漏洞檢測,來考驗主機容易受攻擊的程度。
第七,多訂閱一些安全通報,多訪問安全站點,以獲得及時的安全信息來修補系統軟硬件的漏洞。
即使預防工作做好了也不能大意。隨著 網絡技術的不斷發展,黑客的水平也在不斷進步。他們的攻擊手段可謂是層出不窮很多意想不到的事情都會發生,所以我們在做好預防工作的前提下,要每天對系統 進行安全檢查。尤其作為一名系統管理員更要隨時去觀察系統的變化情況,如系統中進程、文件、時間等的變化情況。
具體說來, 對系統進行安全檢查有以下幾個方法:
1、充分利用Linux和Unix系統中內置的檢查命令來檢測系統。例如,下面的幾個命令在Linux和Unix系統中就很有用處:
-who,查看誰登陸到系統中;
-w,查看誰登陸到系統中,且在做什麼操作;
-last,顯示系統曾經被登陸的用戶和TTYS;
-history,顯示系統過去被運行的命令;
-netstat,可以查看現在的網絡狀態;
-top,動態實時察看系統的進程;
-finger,查看所有的登陸用戶。
2、定期檢查系統中的日志、文件、時間和進程信息。如:
-檢查/var/log/messages日志文件查看外部用戶的登陸狀況;
-檢查用戶目錄下/home/username下的登陸歷史文件(如:.history 文件);
-檢查用戶目錄下/home/username的.rhosts、.forward遠程登陸文件;
-用“find / -ctime -2 -ctime +1 -ls”命令來查看不到兩天以內修改的一些文件;
-用“ls -lac”命令去查看文件真正的修改時間;
-用“cmp file1 file2”命令來比較文件大小的變化;
-保護重要的系統命令、進程和配置文件以防止入侵者替換獲得修改系統的權利。
當然為了保證系統的絕對安全,除了做好預防和進行安全檢查工作外,還要養成一個保證系統、網絡安全的好習慣。這就是定期定時做好完整的數據備份。有了完整的數據備份,在遭到攻擊或系統出現故障時也能迅速恢復系統。
對於病毒入侵的安全防范
如今DOS、Windows 9X/Me/NT/2000/XP系統下的病毒很流行,但人們幾乎沒聽說過在Linux或Unix系統中有病毒,甚至有人認為Linux或Unix系統中 沒有病毒存在。其實這是一個很大的錯誤認識。事實上世界上第一個計算機病毒就是Unix病毒。如果Linux系統中一旦發生病毒泛濫,後果將不堪設想。現 在很多種病毒都用標准的C程序來編寫,以適應任何類的Linux和Unix操作系統。並且它們可以用make程序來跨平台編譯。
盡管Windows NT/2000和Linux、Unix的系統是有著非常高級的保護機制的系統,可以預防大多數的病毒的傳染,但不是所有的。因此,對於Linux系統來 說,不是沒有計算機病毒的危害存在。比如Morris、Ramen、Lion等蠕蟲病毒都先後曾經對Linux甚至Unix系統進行過攻擊。
一般大多數的Linux網絡主要 是由一台或多台安裝Linux操作系統的服務器做Web Server或FTP Server,通常也會有Mail Server。目前工作站端大多是安裝了Windows 9X/Me/NT/2000/XP等操作系統的計算機。對這種Linux網絡計算機病毒防護主要還是基於工作站的單機防護。可以在Linux服務器上安裝 Samba服務,利用病毒掃描工具從某個安全的工作站定期對服務器磁盤上的文件進行掃描,從而達到病毒防護的目的。
計算機病毒是計算機制造商和政府 最頭痛的問題,據估計目前約有數千種病毒在計算機上流行,而每天又會出三種新的計算機病毒。目前,大多數計算機都使用軟件來防治病毒,使用病毒防火牆的卻 不到一半,這使得計算機被感染的機會在不斷增加。通常這些計算機病毒的感染來自企業內部網,這意味著公司中也許有許多計算機已遭受感染。在防不勝防的情況 之下,只有時常注意計算機健康,沒有異常情況發生,才是確保資料不被破壞的最好方法。