官术网_书友最值得收藏!

3.3 六大Web服務(wù)器

統(tǒng)計數(shù)據(jù)顯示,超過80%的Web應(yīng)用程序和網(wǎng)站都使用開源Web服務(wù)器。目前最為流行的Web服務(wù)器有Apache HTTP Server、IIS、GFE、Nginx、Lighttpd和Tomcat等。

3.3.1 Apache HTTP Server

Apache HTTP Server(簡稱Apache),是Apache軟件基金會的一個開放源代碼的網(wǎng)頁服務(wù)器,可以在大多數(shù)操作系統(tǒng)中運行,由于其具有的跨平臺性和安全性,被廣泛使用,是流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過簡單的API擴展,Perl/Python解釋器可被編譯到服務(wù)器中,可以創(chuàng)建一個每天有數(shù)百萬人訪問的Web服務(wù)器。

Apache起初由伊利諾伊大學(xué)香檳分校的國家超級電腦應(yīng)用中心(NCSA)開發(fā)。此后,Apache被開放源代碼團體的成員不斷發(fā)展和加強。Apache服務(wù)器擁有牢靠可信的美譽,已應(yīng)用在超過半數(shù)的網(wǎng)站中,特別是熱門和訪問量最大的網(wǎng)站。

Apache HTTP Server安全加固主要涉及以下幾個方面。

1)嚴格設(shè)置配置文件和日志文件的權(quán)限,防止未授權(quán)訪問。

使用命令chmod 600 /etc/httpd/conf/httpd.conf設(shè)置配置文件為屬主可讀寫,其他用戶無權(quán)限。

使用命令chmod 644 /var/log/httpd/*.log設(shè)置日志文件為屬主可讀寫,其他用戶只讀權(quán)限。

2)安全審計方面,要滿足安全日志完備性要求,關(guān)鍵錯誤、用戶操作都需要記錄以備查。

配置日志功能,對運行錯誤、用戶訪問等進行記錄,記錄內(nèi)容包括時間和用戶使用的IP地址等內(nèi)容。

編輯httpd.conf配置文件,設(shè)置日志記錄文件、記錄內(nèi)容和記錄格式。

對以上命令說明如下。

● ErrorLog指令設(shè)置錯誤日志文件名和位置。錯誤日志是最重要的日志文件,Apache httpd將在這個文件中存放診斷信息和處理請求中出現(xiàn)的錯誤。若要將錯誤日志送到Syslog,則設(shè)置ErrorLog syslog。

● CustomLog指令設(shè)置訪問日志的文件名和位置。訪問日志中會記錄服務(wù)器所處理的所有請求。

● LogFormat設(shè)置日志格式。LogLevel用于調(diào)整記錄在錯誤日志中信息的詳細程度,建議設(shè)置為notice。

3)入侵防范方面,刪除缺省安裝的無用文件,防止被惡意利用對系統(tǒng)進行攻擊。

刪除缺省HTML文件,位置為apache2/htdocs下的默認目錄及文件。

刪除缺省的CGI腳本,位置為apache2/cgi-bin目錄下的所有文件。

刪除Apache說明文件,位置為apache2/manual目錄。

4)錯誤頁面處理方面,通過自定義錯誤頁面,防止敏感信息泄露。

Apache默認的錯誤頁面會泄露系統(tǒng)及應(yīng)用的敏感信息,因此需要采用自定義錯誤頁面的方式,防止信息泄露。

修改httpd.conf配置文件:

其中,Customxxx.html為要設(shè)置的錯誤頁面,需要手動建立相關(guān)文件并自定義內(nèi)容。

5)禁止Apahce目錄沒有默認首頁時,顯示目錄文件。

編輯httpd.conf配置文件:

將Options Indexes FollowSymLinks中的Indexes刪除,就可以禁止Apache顯示該目錄結(jié)構(gòu)。Indexes的作用是當(dāng)該目錄下沒有index.html文件時,顯示目錄結(jié)構(gòu),設(shè)置完成后,需要重新啟動Apache服務(wù)才能生效。

6)隱藏Apache的版本號及其他敏感信息。

修改httpd.conf配置文件:

當(dāng)然,還有其他安全加固設(shè)置,產(chǎn)品運維工程師可根據(jù)實際需要進行設(shè)置。

3.3.2 IIS

互聯(lián)網(wǎng)信息服務(wù)(Internet Information Services,IIS)是由微軟公司提供的基于運行Microsoft Windows的互聯(lián)網(wǎng)基本服務(wù)。IIS是一種Web(網(wǎng)頁)服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。

IIS日志是每個服務(wù)器管理者都必須學(xué)會查看的,服務(wù)器的一些狀況和訪問IP的來源都會記錄在IIS日志中,所以IIS日志對每個服務(wù)器管理者都非常重要,可方便網(wǎng)站管理人員查看網(wǎng)站的運營情況。

IIS與Window Server完全集成在一起,因而用戶能夠利用Windows Server和NTFS(NT File System,NT的文件系統(tǒng))內(nèi)置的安全特性,建立強大、靈活而安全的Internet和Intranet站點。

IIS安全加固主要涉及以下幾個方面。

1)停用或刪除默認站點。

IIS安裝后的默認主目錄是C:\inetpub\wwwroot,為了更好地抵抗踩點、刺探等攻擊行為,應(yīng)該更改主目錄位置,禁用默認站點,新建立站點并進行安全配置。

單擊“開始”→“管理工具”→“Internet信息服務(wù)(IIS)管理器”,選擇相應(yīng)的站點,然后右擊站點,在彈出的快捷菜單中選擇“停止”或“刪除”選項。

2)卸載不需要的IIS角色服務(wù)。

通常下列角色可以刪除:默認文檔、目錄瀏覽、CGI和在服務(wù)器端包含的文件。

3)關(guān)閉目錄瀏覽。

在“目錄瀏覽”中,在最右邊操作欄單擊“禁用”鏈接,即可禁用目錄瀏覽。

4)開啟日志審計。

默認情況下Web日志存放于系統(tǒng)目錄%SystemDrive%\inetpub\logs\LogFiles中,將Web日志文件放在非網(wǎng)站目錄和非操作系統(tǒng)分區(qū),并定期對Web日志進行異地備份。

5)刪除不必要的腳本映射。

在“處理程序映射”中,從列表中刪除不必要的腳本。刪除的原則是只保留需要的腳本映射,也可以自定義添加映射。

6)限制目錄執(zhí)行權(quán)限。

在“處理程序映射”中,把“編輯功能權(quán)限”中的“腳本”刪除,這樣即使上傳了木馬文件在此目錄,也無法執(zhí)行。

3.3.3 GFE

谷歌基礎(chǔ)設(shè)施內(nèi)部的服務(wù)需要通過谷歌前端服務(wù)(Google Front End,GFE)注冊之后,才能運行于外部互聯(lián)網(wǎng)上。GFE確保所有TLS連接使用正確的證書和安全策略,同時還能起到防御拒絕服務(wù)(Denial of Service,DoS)攻擊的作用。GFE對請求的轉(zhuǎn)發(fā)使用了前述的RPC安全協(xié)議。實際上,任何通過GFE注冊運行于互聯(lián)網(wǎng)的內(nèi)部服務(wù)都是敏捷的反向前端代理服務(wù),該前端不僅能提供服務(wù)的DNS公共IP,還能起到防御DoS攻擊和保護TLS的作用。GFE像其他運行于谷歌基礎(chǔ)設(shè)施的服務(wù)一樣,可以應(yīng)對大量的發(fā)起請求。

GFE安全加固主要涉及以下幾個方面。

以谷歌運算引擎(Google Compute Engine,GCE)服務(wù)為例,簡單描述谷歌云存儲平臺(Google Cloud Platform,GCP)的安全設(shè)計和改進。

1)GCE控制平臺通過GFE顯示出API接口,所以它具有和GFE實例一樣的DoS攻擊防御和SSL/TLS連接保護功能,與此同時,客戶在運行虛擬機時,可以選擇使用內(nèi)置于GFE中的谷歌云服務(wù)負載平衡器,它能緩解多種類型的DoS攻擊。用戶認證的GCE控制面板API通過谷歌集中身份認證服務(wù)提供安全保護,如劫持檢測。授權(quán)則使用中央云IAM服務(wù)完成。

2)控制面板之間的網(wǎng)絡(luò)流量,以及從GFE到其他服務(wù)之間的流量都經(jīng)過自動認證和加密,可以安全地從一個數(shù)據(jù)中心到達另一個數(shù)據(jù)中心。每個虛擬機(Virtual Machine,VM)與相關(guān)的虛擬機管理器(Virtual Machine Manger,VMM)服務(wù)實例同時運行。

3)谷歌基礎(chǔ)設(shè)施為虛擬機提供了兩個認證身份,一個用于VMM服務(wù)實例自身調(diào)用,另一個用于VMM對客戶VM身份的代表,這也增加了來自VMM的調(diào)用信任。

4)GCE的永久磁盤采用靜態(tài)數(shù)據(jù)加密,使用谷歌中央密鑰管理系統(tǒng)分發(fā)的密鑰進行安全保護,并允許密鑰自動輪換和系統(tǒng)審計。另外,虛擬機隔離技術(shù)是基于硬件虛擬化的開源KVM堆棧,為了最大化的安全防護,谷歌還對KVM的核心代碼進行了如Fuzzing、靜態(tài)分析和手工核查等一系列的安全測試。

5)谷歌的運維安全控制也是確保數(shù)據(jù)訪問遵循安全策略的關(guān)鍵部分。作為谷歌云平臺的一部分,GCE客戶的數(shù)據(jù)使用行為同樣遵循GCP的使用策略,谷歌不會訪問或使用客戶數(shù)據(jù),但必要的為客戶提供服務(wù)的情況除外。

3.3.4 Nginx

Nginx(engine x)是一個高性能的HTTP和反向代理Web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。俄羅斯的Igor Sysoev從2002年開始開發(fā)Nginx,并在2004年發(fā)布了第一個公開版本。Nginx的開發(fā)是為了解決C10K(C10K是如何處理1萬個并發(fā)連接的簡寫)問題,目前,全球有超過30%的網(wǎng)站在使用Nginx。

Nginx作為負載均衡服務(wù)既可以在內(nèi)部直接支持Rails和PHP程序?qū)ν膺M行服務(wù),也可以支持作為HTTP代理服務(wù)對外進行服務(wù)。Nginx采用C語言編寫,無論是系統(tǒng)資源開銷還是CPU使用效率都比較好。

Nginx安全加固主要涉及以下幾個方面。

1)禁止目錄瀏覽。

先備份nginx.conf配置文件,然后編輯配置文件,在HTTP模塊中添加如下內(nèi)容:

保存,然后重啟Nginx服務(wù)。

2)隱藏版本信息。

先備份nginx.conf配置文件,然后編輯配置文件,在http模塊中添加如下內(nèi)容:

保存,然后重啟Nginx服務(wù)。

3)限制HTTP請求的方法。

先備份nginx.conf配置文件,然后編輯配置文件,添加如下內(nèi)容:

保存,然后重啟Nginx服務(wù)。只允許常用的GET、POST和HEAD方法。

4)Nginx降權(quán)。

先備份nginx.conf配置文件,然后編輯配置文件,添加如下內(nèi)容:

保存,然后重啟Nginx服務(wù)。

5)防盜鏈。

先備份nginx.conf配置文件,然后編輯配置文件,在server標簽內(nèi)添加如下內(nèi)容:

保存,然后重啟Nginx服務(wù)。

6)設(shè)置禁止部分搜索引擎蜘蛛人程序爬行網(wǎng)站。

7)設(shè)置禁止部分安全掃描工具掃描網(wǎng)站。

3.3.5 Lighttpd

Lighttpd是一個德國人領(lǐng)導(dǎo)的開源Web服務(wù)器軟件,其根本的目的是提供一個專門針對高性能網(wǎng)站,安全、快速、兼容性好并且靈活的Web服務(wù)器環(huán)境。Lighttpd具有非常低的內(nèi)存開銷、CPU占用率低、效能好及豐富的模塊等特點。

Lighttpd是眾多開源、輕量級的Web服務(wù)器中較為優(yōu)秀的一個,支持FastCGI、CGI、Auth、輸出壓縮、URL重寫和Alias等重要功能。Apache之所以流行,很大程度也是因為其功能豐富,而在Lighttpd上也實現(xiàn)了很多相應(yīng)的功能,這點對于Apache的用戶是非常重要的,因為遷移到Lighttpd就必須面對這些問題。

Lighttpd安全加固主要涉及以下幾個方面。

1)Lighttpd SSL安全優(yōu)化與HTTP安全頭設(shè)置。

2)強制HTTP定向到HTTPS的部分配置如下。

3)禁用SSL Compression(抵御CRIME攻擊)。

CRIME攻擊的原理:通過在受害者的瀏覽器中運行JavaScript代碼并同時監(jiān)聽HTTPS傳輸數(shù)據(jù),解密會話Cookie。

3.3.6 Tomcat

Apache只支持靜態(tài)網(wǎng)頁,像PHP、CGI和JSP等動態(tài)網(wǎng)頁就需要Tomcat來處理。Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個Servlet容器,按照Sun Microsystems提供的技術(shù)規(guī)范,實現(xiàn)了對Servlet和Java Server Page(JSP)的支持,并提供了作為Web服務(wù)器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由于Tomcat本身也內(nèi)含了一個HTTP服務(wù)器,它也可以被視為一個單獨的Web服務(wù)器。但是,不能將Tomcat和Apache Web服務(wù)器混淆,Apache Web Server是一個用C語言實現(xiàn)的HTTP Web Server;這兩個HTTP Web Server不是捆綁在一起的。Apache Tomcat包含了一個配置管理工具,也可以通過編輯XML格式的配置文件來進行配置。Apache、Nginx和Tomcat并稱為網(wǎng)頁服務(wù)三劍客。

Tomcat安全加固主要涉及以下幾個方面。

1)網(wǎng)絡(luò)訪問控制。

如果業(yè)務(wù)不需要使用Tomcat管理后臺和管理業(yè)務(wù)代碼,可以直接將Tomcat部署目錄下webapps文件夾中的manager、host-manager文件夾全部刪除,并注釋Tomcat目錄下conf文件夾中的tomcat-users.xml文件中的所有代碼。

如果業(yè)務(wù)系統(tǒng)確實需要使用Tomcat管理后臺,進行業(yè)務(wù)代碼的發(fā)布和管理,建議為Tomcat管理后臺配置強口令,并修改默認admin用戶,且密碼長度不低于10位,必須包含大寫字母、特殊符號和數(shù)字組合。

2)開啟Tomcat的訪問日志。

修改conf/server.xml文件,將下列代碼取消注釋:

啟用訪問日志功能,重啟Tomcat服務(wù)后,在tomcat_home/logs文件夾中就可以看到訪問日志。

3)禁用Tomcat默認賬號。

打開conf/tomcat-user.xml文件,將以下用戶注釋掉:

4)屏蔽目錄文件自動列出。

編輯conf/web.xml文件如下。

這里listings的值為false,則不列出,true為允許列出。

5)腳本權(quán)限回收。

控制CATALINAHOME/bin目錄下的start.sh、catalina.sh、shutdown.sh的可執(zhí)行權(quán)限。

6)禁用PUT、DELETE等一些不必要的HTTP方法。

不同Web服務(wù)器的默認配置都不安全,需要做進一步加固與優(yōu)化,這對于系統(tǒng)上線與運維很重要。

主站蜘蛛池模板: 上饶县| 商河县| 安宁市| 安溪县| 安宁市| 漾濞| 绩溪县| 虞城县| 南部县| 梧州市| 吴旗县| 宁强县| 皮山县| 合作市| 涿鹿县| 银川市| 高陵县| 甘孜县| 天台县| 宿迁市| 嘉义县| 喀什市| 崇左市| 环江| 镇平县| 南昌市| 河间市| 洛扎县| 蒙自县| 道孚县| 德化县| 白银市| 遵义市| 内江市| 仙居县| 兴业县| 岑溪市| 宁波市| 景谷| 松潘县| 泽库县|