歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

一個安全Web服務器的安裝(三)

第六步:Step 6: sudo程序與多個管理員 每一個管理員都應該有一個自己的帳號。如果每個人都使用root身份進行操作,那麼就無法知道誰做了些什麼。另外,如果使用root口令輸入了一個不正確的命令可能對整個系統都產生嚴重的影響。應該僅僅在絕對需要時才使用具 第六步:Step 6: sudo程序與多個管理員

  每一個管理員都應該有一個自己的帳號。如果每個人都使用root身份進行操作,那麼就無法知道誰做了些什麼。另外,如果使用root口令輸入了一個不正確的命令可能對整個系統都產生嚴重的影響。應該僅僅在絕對需要時才使用具有高授權的操作。先前的harden_suse腳本已經將系統配置進行了必要的修改,它禁止了root用戶的直接遠程登錄。僅僅以加密形式的SSH進行遠程登錄才可以執行管理任務。下一個需要做的事是配置sudo,這個程序可以幫助管理員記錄執行過的命令。這個程序也提供了一個詳細的授權結構,例如,象oracle用戶一樣,用戶A可以被授權為可以重新啟動數據庫和查看root目錄下的系統日志文件,但是不能做除此以外的任何事。可用用下面的命令行為每一個管理員設置一個用戶:erde# adduser -m -g trusted username

  將用戶包含在”trusted”用戶組是非常關鍵的,因為根據harden_suse所確定的安全標准,sudo僅能夠被trusted組所使用。

  隨後,管理員就可以利用visudo程序,在編輯器中加入允許管理員可以做任何他想做的事的腳本行如下:
  username ALL=(ALL) ALL
  “man 5 sudoers”

  設置了一個可以限制授權的主機。

  當然,管理員應該使用sudo並且不應該使用”su root”命令轉換到root身份,只有這樣,才能保證讓盡量少的人知道root口令。

  第七步:最後的調整

  完成所有的系統配置之後,應該使用tripwire程序產生一個包含所有文件的校驗和的數據庫:
  erde# cp/usr/doc/packages/tripwire/tw.conf.example.linux
  /var/adm/tripwire/tw.config
  erde#/var/adm/tripwire/bin/tripwire -initialize

  在連接Inte.net之前,產生文件/databases/tw.db_HOSTNAME應該備份到一個安全的存儲介質(如CD-ROM)上。

  一旦懷疑有攻擊者已經入侵並操作了系統,可以用tripwire跟蹤所有的操作。但是,應該隔一段時間就用tripware重新生成一次校驗和數據庫,因為這是對付高智商的攻擊者的最有效方法。

  在連接Internet之間的最後工作是對系統進行備份而後reboot。

  但這些還不夠,所有的系統管理員都應該訂閱關於WEB安全的最重要的郵件列表:

  suse-security:這是包含安全相關專題和安全公告的SuSE討論組列表,要訂閱這個列表,只需要發送一個空郵件到[email protected]郵箱就可以了;

  suse-security-announce:僅僅包含安全公告,要訂閱這個列表,需要發一個空郵件到[email protected]郵箱;

  bugtraq:致力於最新的安全問題的討論區列表,要訂閱這個列表,需要發送一個包含”subscribe bugtraq surname@firstname”內容的空白郵件到:[email protected]郵箱。

  其它選擇

  由於沒有安裝本地入侵檢測系統,所以只能從攻擊者留下的可以痕跡跟蹤成功入侵的黑客行為。對於這種措施,也沒有什麼現成的解決方案,但是還是有很多人開發了針對這種工作的程序和發布了一些竅門。然而,有關這些方面的細節描述遠非本文的主題所能涵蓋了。

  如果WEB服務器上的幾個文件需要定期更新,scp——cp函數在SSH中的安全版本——就顯得不是很好用了。一個更合適的方法是使用SSLftp,它具有FTP的功能並且象SSH一樣對數據進行了加密。

  日志數據很重要,所有的從WEB服務器和路由器所記錄的重要日志記錄都應該送到一個集中管理的日志主機,這個日志主機主要用來監視所有計算機的運行狀態。通過這種方法,攻擊者就就很難遁形滅跡了。

  另外,將Solar Designer [13]設計的安全內核補丁集成到系統中是個很好的主意,有了這個安全補丁,利用緩沖區溢出做手腳的攻擊方式將變得更困難。

  應該剝奪那些suid和sgid程序所具有的沒必要的過高特權。這可以通過將那些不再需要具有特權的程序逐個輸入到/etc/permissions.local然後手工去掉程序的授權(或啟動SuSEconfig)的方法實現。

  這個工作直到沒有sgid程序並且僅僅有下面列出的少數幾個suid程序時結束:
  -rwsr-xr-x 1 root shadow 27920 Mar 11 11:50 /usr/bin/passwd
  -rwsr-x--- 1 root trusted 56600 Mar 11 18:41 /usr/bin/sudo
  -rwsr-xr-x 1 root root 6132 Mar 11 09:36 /usr/lib/pt_chown

  如果系統由幾個分區,通過使用mount選項ro(只讀)、nodev(無設備)、nosuid (沒有高特權的suid文件)和noexec (沒有可執行文件)顯著地提高系統的安全級別。

  除此之外,可以使用ext2文件系統標志”append-only”和”immutable”(通過chattr命令設置)定義內核能力,這樣就可以保護日志和引導文件等不被篡改。

  如果服務器需要具有防止本地攻擊的能力,必須為LILO引導裝載器配備一個口令,這可以通過在/etc/lilo.conf文件的頂端輸入下面的腳本行實現:
  password=something_difficult_to_guess
  restricted

  最後,WEB服務器不僅僅只是Apache。通常要包括1到2個數據庫,還要引入一些附加的模塊和程序,或者需要激活其它一些服務(如DNS服務器)。Linux包過濾(參見第二步中的例子)可以方便有效地提供保護支持。一個稱為”隔離間”(”compartment”:可以從這裡獲得)的程序支持chroot、特權分配以及Linux能力配置等任務。

  當然,還可以做很多其它的事情,但我所能想到的只有這些了。

最後的提示

  更新!一個沒有采用最新的安全補丁進行更新的系統會很快稱為攻擊者的目標。

  已經完成配置安全系統所需的所有工作之後,要記住:CGI腳本將是最大的安全隱患。大多數成功的攻擊都是通過這些腳本實現的。簡明的建議是:最好使用那些公開發布並且已經被不同的網站使用了一段時間的CGI腳本;如果管理員不得已需要寫一些CGI腳本程序的話,這些程序應該由其它人對其安全因素進行例行檢查。

  結論

  一個非常安全且高可用的WEB服務器——這似乎有些矛盾,但確實是很好的折中——能夠在短短45分鐘的時間內配置完。當然您可以通過更多的工作以提高系統的安全級別,但是這裡配置的系統對大多數應用來說已經足夠了。

  Linux與安全的更多信息

  如果您決定選用Linux,您應該感到慶幸,因為您可以免費使用非常多且優秀的安全程序,這是其它UNIX和Windows平台所無法比擬的。為找到合適的工具,您會發現安全焦點[9]和包風暴(Packetstorm [10])是兩個比較好的起點。

  迄今為止,SuSE Linux是所有商用Linux發布中最專注與安全的。下面一些工具是SuSE所開發的,您可以根據需要自由下載


  --------------------------------SuSE安全軟件------------------------------
  ---------------------------------------------------------------------------------
  程序名稱(rpm)---功能-----------從哪一版本------能否運行-----下載地址-----------
  -------------------------------開始包含在--------於其它發布
  -------------------------------Linux發布中----------------
  ———————————————————————————————————————
  FTP代理套件--一個非常--------6.3------------------http://proxy-suite.suse.de----
  ---------------安全的FTP---------------------------------------------------
  ---------------代理,它還----------------------------------------------
  (fwproxys)-----支持SSL--------------------------------------------
  SuSE防火牆-----一個包過濾器---6.3-------http://www.suse.de/~marc-(betas)
  ---------------,能夠創建一----------------(如果是其它--------------------------
  (firewals)------復雜的防火牆----------------發布,init.d------
  -----------------系統並且非常----------------和startup腳本-------
  ------------------容易配置--------------------要重新調整)----------------------------
  -------------------------------------------------------------------------
  加固SuSE-------配置一個非常-----6.1------------否------------http://www.suse.de/~marc-(betas)----
  ---------------安全的SuSE------------------(專門為SuSE----------------------
  (hardsuse)----------------------------------所設計)--------------
  ---------------------------------------------------------------
  安全模塊-------一個防止symlink--6.3------------是-------------SuSE-FTP-server----
  ---------------,hardlink,-pipe-------------------------------------------------------
  (secumod)------和許多其它安全策
  -------------------略的內核模塊
  ----------------------------------------------------
  安全檢查器-----每天對本地安全------6.2---------大部分--------------SuSE-FTP-server----
  ---------------進行一次例行檢----------------------------------------------------
  (seclearcase/" target="_blank" >ccheck)-----查---------------------------------------------http://www.suse.de/~marc-(betas)------
  Compartment----程序的安全包裝------計劃在------是-------------http://www.suse.de/~marc-(betas)
  (-)------------器,支持chroot------7.0中采用----------------------------------
  ---------------ing,特權和能力--------------------------------------------------------
  ---------------分配
  --------------------------------------------------------------------
  Auditdisk-(-)--安全產生校驗和------計劃在------是-------------現在還沒有發布beta版-------
  ---------------與Tripwire不同------7.0中采用---------------------------
  ---------------它不能被回避---------------------------------------------------
  -------------------------------------------------------------------------------
  SCSLogger------能夠記錄向內和------6.2---------是-------------SuSE-FTP-server---- ---------------向外連接日志的---------------------------------http://www.suse.de/~thomas-
  (betas)-----------------------
  (scslog)-------內核模塊-----------------------------------
  ----------------------------------------------------------
  安全庫---------一個為程序員准------計劃在------是-------------http://www.suse.de/~thomas-(betas)
  (-)------------備的函數庫,它------7.0中采用--------------------------------
  ---------------為不安全的函數----------------------------------------------------
  ---------------提供了安全功能---------------------------------------------------
  ---------------提示--------------------------------------------------------
  CD上提供的其它安全程序還有:Nessus, Saint, nmap, PGP, GNU Privacy Guard, OpenSSH, Tripwire, FreeSWAN,等等。

  另外,除隨SuSE Linux發布的操作手冊中廣泛深入地涉獵安全內容之外,還有suse-security和suse-security-announce兩個郵件列表可供參考。

  當然,也有其它的選擇。比如說Trustix[6] Linux發布就是新近出現的完全面向安全的產品。令人失望的是,這個發布還處在初級階段。不過,它的一個大約150 MB ISO文件的第一個Alpha已經提供下載了。

  如果您不信任Linux,那就看看OpenBSD [5]。就在幾年前,人們為了安全問題逐行地檢查了NetBSD發布的程序。通過比較關於Unix變種(當然還有Windows)的安全問題的消息的數量和質量,人們發現OpenBSD是無可爭議的優勝者。那麼主要障礙是什麼呢?其中的一個原因是應用軟件太少。把所有的OpenBSD匯集在一起,甚至還不能填滿一張CD。其它需要集成到系統中的程序都需要用戶通過一種所謂的接口(ports)或者稱為引入(imported)的方法實現。這些都沒能被驗證是安全的。另外一個問題是,它的代碼基礎是BSD,受Linux熱潮的影響,BSD平台已經不再是軟件工業的戰略目標。但是,OpenBSD在安全專家中間仍然有很好的口碑。如果不需要運行一些特殊的軟件的話,OpenBSD仍然是配置安全服務器的正確選擇。

  當然,也有很多商用的高度安全的Unix系統。他們被稱為Trusted {Solaris, Irix, SCO, ...}。不同的系統實現了美國C2、B1甚至B2安全標准。這些系統除了非常昂貴以外,其安全也根本沒有達到他們宣稱的那樣高。雖然安全標准的實現顯著地增強了系統的安全性,但受到缺少開放源碼和質量聲譽極佳的源碼的影響,期望它100%的安全是不現實的(但還是要比Windows強很多)。


Copyright © Linux教程網 All Rights Reserved