一個安全Web服務器的安裝(4)_Windows教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!
      提示:SSL證書應該一個密碼保護起來,以減少攻擊者成功入侵后將其拷貝并濫用的可能性(很少發生!)。

        作為一個一般的規則,應該保證沒有在任何地方使用符號符號連接(Symlinks),因此要禁止FollowSymLinks選項。所有的CGI都放在cgi-bin目錄下,不允許放在其它任何地方,甚至也不允許在其它目錄下執行。為了做到這一點,請不要使用ExecCGI配置選項。

        為了禁止訪問某些文件區,應該在這些目錄下分別加入一個命名為.htaccess的文件,并在中加入下面的文本行:order deny,allow deny from all

        第六步: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

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

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

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

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

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

        suse-security-announce:僅僅包含安全公告,要訂閱這個列表,需要發一個空郵件到suse-security-announce-subscribe@suse.com郵箱;

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

        其它選擇

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

        如果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能力配置等任務。

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

      來源:網絡搜集//所屬分類:Windows教程/更新時間:2013-04-16
      相關Windows教程