如果說用於防止從Internet對內部網絡進行攻擊的防火牆是最重要網絡安全領域的話,WEB服務器應該說是第二個需要高度安全的領域了。本文的目標就是如何只用45分鐘的時間就可以在Linux系統上配置一個安全的WEB服務器。當然,您也可以在其他操作系統上完成同樣的事情。下面是基於SuSE Linux 6.4發布的一個例子。
安全區域
服務器安全由幾個安全區域組成,為了保證允許條件下的最高度的安全保護,安全必需在每個區域都予以一致的實現。
1.基礎設施區
基礎設施區域定義服務器在網絡中的位置。這個區域必需能夠防止數據竊聽、網絡映射和端口掃描等黑客技術的威脅。而且,可以跟蹤對一個暴露的WEB服務器的成功入侵,因為被侵入的服務器可能會用來作為攻擊其它重要的服務器的基地(這種方式在DoS攻擊中最為常見)。
在這一端,所有提供Internet服務的服務器都通過一個集中部件保護起來並且位於一個隔離的網絡是必需的。這個隔離的網絡稱為非軍事區(DMZ)。具有保護功能的組件可能是一個復雜的防火牆或一個簡單的路由器(這個路由器配置了具有很強限制的包過濾規則)。因此,僅僅指定的服務器服務才是允許訪問的。
一般DMZ會采用一個具有端口安全和報文洪水保護的轉換開關,這種方式可以保證DMZ的高度安全。
如果您關心物理安全,那麼您必需保證服務器安裝在一個安全的房間裡(或數據處理中心)並且所有的電源、電話線和網線等都必需得到物理上的保護。
2.網絡協議區
網絡通信一般指的都是TCP/IP通信,操作系統內核對通信負責並且保證一個透明的通信流。然而,一些函數或者協議的易受攻擊點可能會被用來發起攻擊或破壞行為。因此,內核必需經過必要的配置,以便阻擋這些類型的攻擊手段。雖然位於服務器前面的防火牆或路由器可以防止很多類型的攻擊,但一些WEB服務器的設置也必需做一些相應的調整。
防止SYN洪水攻擊是很關鍵的,在所有的操作系統中,Linux提供了一種稱為SYNcookies的最有效解決方案。此外,ICMP重定向和對廣播地址的ping操作以及IP源路由包也應該被拒絕。適用附加的內核過濾函數可以增加安全級別。
3.服務區
服務區定義需要哪些服務。通過”如果不是指定需要的全部禁止”的安全策略,服務器上僅僅配置完成必要的操作所必需的服務,否則就會為攻擊者提供更多的攻擊點。
僅適用可以保證足夠安全級的服務:沒有充分認證能力的服務(如:rexec)或者傳輸未經過加密的敏感數據的服務(如telnet、ftp或通過WWW傳輸信用卡敏感數據)都應該用更安全的相應服務所替代(如SSH、SSLftp或HTTPS)。
4.應用區
為安全起見,每個服務都必需單獨配置。一個配置的不好的郵件服務器可能會被用來發送垃圾郵件,配置不好的WEB服務器可以執行所有的系統命令。注意,千萬不要創建具有高特權的服務(root)。
您必需仔細研讀您所適用的軟件的操作手冊中的相關內容才可以更安全地配置您的應用。
5.操作系統區
最後的保護機制是操作系統自身。如果如果應用區的安全方法配置合理的話,即使入侵者成功地進入計算機系統也沒有足夠的管理權限完成破壞工作。程序的安裝,尤其是高特權的程序,應該限制在系統操作的絕對需要范圍內。許多高特權的程序可以通過更高級別的認證來限制用戶的濫用,因為系統中的標准用戶帳號根本不需要使用這些程序。但這還遠遠 不夠,萬一攻擊者成功地進入計算機系統,應該存在一個檢測入侵的機制。這被稱為”基於主機的入侵檢測”。當然,最好還要能夠監視和記錄系統中的文件操作,以便了解入侵者的真正意圖。當然也不能忽視經常性地備份,並且不要丟棄舊的備份文件。這種做法不僅可以用來配置備份服務器和避免數據丟失,它還可以用來跟蹤系統中文件的操作情況。如果有幾個管理員同時管理一個服務器,那麼一個記錄誰執行過哪些操作的機制可以在下面提及。