隨著Linux企業應用的擴展,有大量的網絡服務器使用Linux操作系統。Linux服務器的安全性能受到越來越多的關注,這裡根據Linux服務器受到攻擊的深度以級別形式列出,並提出不同的解決方案。
對Linux服務器攻擊的定義是:攻擊是一種旨在妨礙、損害、削弱、破壞Linux服務器安全的未授權行為。攻擊的范圍可以從服務拒絕直至完全危害和破壞Linux服務器。對Linux服務器攻擊有許多種類,本文從攻擊深度的角度說明,我們把攻擊分為四級。
攻擊級別一:服務拒絕攻擊(DoS)
由於DoS攻擊工具的泛濫,及所針對的協議層的缺陷短時無法改變的事實,DoS也就成為了流傳最廣、最難防范的攻擊方式。
服務拒絕攻擊包括分布式拒絕服務攻擊、反射式分布拒絕服務攻擊、DNS分布拒絕服務攻擊、FTP攻擊等。大多數服務拒絕攻擊導致相對低級的危險,即便是那些可能導致系統重啟的攻擊也僅僅是暫時性的問題。這類攻擊在很大程度上不同於那些想獲取網絡控制的攻擊,一般不會對數據安全有影響,但是服務拒絕攻擊會持續很長一段時間,非常難纏。
到目前為止,沒有一個絕對的方法可以制止這類攻擊。但這並不表明我們就應束手就擒,除了強調個人主機加強保護不被利用的重要性外,加強對服務器的管理是非常重要的一環。一定要安裝驗證軟件和過濾功能,檢驗該報文的源地址的真實地址。另外對於幾種服務拒絕可以采用以下措施:關閉不必要的服務、限制同時打開的Syn半連接數目、縮短Syn半連接的time out 時間、及時更新系統補丁。
攻擊級別二:本地用戶獲取了他們非授權的文件的讀寫權限
本地用戶是指在本地網絡的任一台機器上有口令、因而在某一驅動器上有一個目錄的用戶。本地用戶獲取到了他們非授權的文件的讀寫權限的問題是否構成危險很大程度上要看被訪問文件的關鍵性。任何本地用戶隨意訪問臨時文件目錄(/tmp)都具有危險性,它能夠潛在地鋪設一條通向下一級別攻擊的路徑。
級別二的主要攻擊方法是:黑客誘騙合法用戶告知其機密信息或執行任務,有時黑客會假裝網絡管理人員向用戶發送郵件,要求用戶給他系統升級的密碼。
由本地用戶啟動的攻擊幾乎都是從遠程登錄開始。對於Linux服務器,最好的辦法是將所有shell賬號放置於一個單獨的機器上,也就是說,只在一台或多台分配有shell訪問的服務器上接受注冊。這可以使日志管理、訪問控制管理、釋放協議和其他潛在的安全問題管理更容易些。還應該將存放用戶CGI的系統區分出來。這些機器應該隔離在特定的網絡區段,也就是說,根據網絡的配置情況,它們應該被路由器或網絡交換機包圍。其拓撲結構應該確保硬件地址欺騙也不能超出這個區段。
攻擊級別三:遠程用戶獲得特權文件的讀寫權限
第三級別的攻擊能做到的不只是核實特定文件是否存在,而且還能讀寫這些文件。造成這種情況的原因是:Linux服務器配置中出現這樣一些弱點:即遠程用戶無需有效賬號就可以在服務器上執行有限數量的命令。
密碼攻擊法是第三級別中的主要攻擊法,損壞密碼是最常見的攻擊方法。密碼破解是用以描述在使用或不使用工具的情況下滲透網絡、系統或資源以解鎖用密碼保護的資源的一個術語。用戶常常忽略他們的密碼,密碼政策很難得到實施。黑客有多種工具可以擊敗技術和社會所保護的密碼。主要包括:字典攻擊(Dictionary attack)、混合攻擊(Hybrid attack)、蠻力攻擊(Brute force attack)。一旦黑客擁有了用戶的密碼,他就有很多用戶的特權。密碼猜想是指手工進入普通密碼或通過編好程序的正本取得密碼。一些用戶選擇簡單的密碼—如生日、紀念日和配偶名字,卻並不遵循應使用字母、數字混合使用的規則。對黑客來說要猜出一串8個字生日數據不用花多長時間。
防范第三級別的攻擊的最好的防衛方法便是嚴格控制進入特權,即使用有效的密碼。
主要包括密碼應當遵循字母、數字、大小寫(因為Linux對大小寫是有區分)混合使用的規則。
使用象“#”或“%”或“$”這樣的特殊字符也會添加復雜性。例如采用"countbak"一詞,在它後面添加“#$”(countbak#$),這樣您就擁有了一個相當有效的密碼。