最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Apache 安全配置方法

 更新時(shí)間:2010年12月17日 10:38:17   作者:  
在本文中,筆者將為你提供10個(gè)技巧,借此你可以保護(hù)自己的Apache Web服務(wù)器免于受到許多攻擊。不過(guò),必須謹(jǐn)記,你需要仔細(xì)地評(píng)估每一個(gè)技巧,以確保其適合于你的組織。
令A(yù)pache占領(lǐng)Web服務(wù)器半壁江山的一個(gè)重要原因就是它可以提供一個(gè)安全的Web操作環(huán)境。Apache團(tuán)體為保證其安全性做了大量的工作。想當(dāng)年,在此產(chǎn)品被發(fā)現(xiàn)存在一個(gè)安全缺陷時(shí),Apache的開發(fā)人員就盡快地搞出了一個(gè)補(bǔ)丁。

然而,即管Apache已經(jīng)堪稱安全的產(chǎn)品,如果你在構(gòu)建你的服務(wù)器時(shí)沒(méi)有采取一些安全預(yù)防措施,這種Web服務(wù)器仍易于受到很多攻擊。

在本文中,筆者將為你提供10個(gè)技巧,借此你可以保護(hù)自己的Apache Web服務(wù)器免于受到許多攻擊。不過(guò),必須謹(jǐn)記,你需要仔細(xì)地評(píng)估每一個(gè)技巧,以確保其適合于你的組織。

只安裝所需要的

Apache的一個(gè)最大的特點(diǎn)是其靈活性和大量的可選擇安裝模塊,這在涉及到安全問(wèn)題時(shí)可成為一個(gè)極大的弱點(diǎn)。你安裝的越多,也就為潛在的攻擊者創(chuàng)造了越大的攻擊面。一個(gè)標(biāo)準(zhǔn)的Apache安裝包含20多個(gè)模塊,包括CGI特性,以及一些身份驗(yàn)證機(jī)制。如果你不打算采用CGI,并且你只想采用靜態(tài)的Web 站點(diǎn),不需要用戶身份驗(yàn)證,你可能就不需要這些模塊所提供的任何服務(wù),因此在安裝Apache時(shí)請(qǐng)禁用這些模塊。

如果你沿用了一個(gè)正在運(yùn)行的Apache服務(wù)器,并且不想重新安裝它,就應(yīng)當(dāng)仔細(xì)檢查httpd.conf配置文件,查找以LoadModule開頭的行。請(qǐng)檢查Apache的文檔(也可以用Google、Yahoo等搜索),查找每個(gè)模塊的目的信息,找出那些你并不需要的模塊。然后,重新啟動(dòng) Apache。

暴露程度最小化

Apache易于安裝并且相當(dāng)容易管理。不幸的是,許多Apache的安裝由于為完全的陌生者提供了關(guān)于自己服務(wù)器的太多"有幫助”的信息,例如 Apache的版本號(hào)和與操作系統(tǒng)相關(guān)的信息。通過(guò)這種信息,一個(gè)潛在的攻擊者就可以追蹤特定的可以影響你的系統(tǒng)的破壞性漏洞,特別是你沒(méi)有能夠保持所有補(bǔ)丁的更新的話情況更為嚴(yán)重。如此一來(lái),攻擊者無(wú)需反復(fù)試驗(yàn)就可以確切地知道你在運(yùn)行什么,從而可以調(diào)整其攻擊方法。

要防止服務(wù)器廣播敏感信息,一定要保證將httpd.conf中的"ServerSignature”指令設(shè)置為"off”。一次默認(rèn)的Apache安裝會(huì)將此指令設(shè)置為"off”,不過(guò)許多管理員卻啟用了它。

同樣地,禁用目錄瀏覽也是一個(gè)不錯(cuò)的注意。在目錄瀏覽被啟用時(shí),訪問(wèn)一個(gè)并不包含其所需要文檔的目錄的用戶,會(huì)看到此目錄中完整的內(nèi)容列表。無(wú)疑,你不應(yīng)當(dāng)將敏感材料以純文本的形式存儲(chǔ)到一個(gè)Web服務(wù)器上,除非你必須這樣做,你也不應(yīng)該允許人們看到超過(guò)其需要的內(nèi)容。

目錄瀏覽默認(rèn)地是被啟用的。要禁用這個(gè)特性,應(yīng)編輯http.conf文件,而且對(duì)每一個(gè)"Directory”指令,應(yīng)清除"Indexs”。

例如,在筆者的做實(shí)驗(yàn)用的Apache 2.2.4服務(wù)器上,這是默認(rèn)的目錄命令:
復(fù)制代碼 代碼如下:

<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all
</Directory>

清除Indexes后的樣子:
復(fù)制代碼 代碼如下:

<Directory "/usr/local/apache/htdocs">
Options FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all
</Directory>

你也可以保留Indexes指令,并用一個(gè)破折號(hào)引導(dǎo),從而禁用此指令(也就是"-Indexes”)。

禁用符號(hào)連接追蹤

如果你是唯一一個(gè)校對(duì)Web內(nèi)容的人員,而你在創(chuàng)建新的符號(hào)連接時(shí)又幾乎不犯錯(cuò)誤,你可能不會(huì)擔(dān)心此措施。不過(guò),如果你有很多人員能夠向你的站點(diǎn)增加內(nèi)容,并非所有的人都像你一樣謹(jǐn)慎從事,那么就會(huì)有一種風(fēng)險(xiǎn),即某個(gè)用戶可能偶然會(huì)創(chuàng)建一個(gè)符號(hào)連接指向你的文件系統(tǒng)的一部分,而你又確實(shí)不想讓人們看到這些文件。例如,如果你的Apache服務(wù)器的根目錄中的某人創(chuàng)建了一個(gè)指向 "/”文件夾的符號(hào)連接,你該怎么辦?

為了取消Apache服務(wù)器允許用戶追蹤符號(hào)連接的請(qǐng)求,應(yīng)該在Directory命令中清除FollowSymlinks指令。

例如,在筆者的試驗(yàn)性的Apache 2.2.4服務(wù)器中,Directory命令如下:
復(fù)制代碼 代碼如下:

<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverrride None
Order allow,deny
Allow from all
</Directory>

在清除了FollowSymLinks后,就成為如下的樣子:

復(fù)制代碼 代碼如下:

<Directory "/usr/local/apache/htdocs">
Options Indexes
AllowOverrride None
Order allow,deny
Allow from all
</Directory>

如果一些用戶需要跟蹤符號(hào)連接的能力,可以考慮使用SymLinksIfOwnerMatch代替。

Listen指令具體化

在你第一次安裝Apache時(shí),httpd.conf包含一個(gè)"Listen 80”指令。應(yīng)將其改變?yōu)?"Listen mn.xx.yy.zz:80”,在這里"mn.xx.yy.zz”是你想讓Apache監(jiān)聽其請(qǐng)求的IP地址。如果你的Apache運(yùn)行在一個(gè)擁有多個(gè)IP地址的服務(wù)器上時(shí),這一點(diǎn)尤其重要。如果你不采取預(yù)防措施,默認(rèn)的"Listen 80”指令告訴Apache監(jiān)聽每一個(gè)IP地址的 80端口。

不過(guò),這項(xiàng)措施有可能不適用于你的環(huán)境,應(yīng)根據(jù)需要而定。

從httpd.conf中清除默認(rèn)的注釋

Apache 2.2.4中默認(rèn)的httpd.conf文件有400多行。在這400行中,只有一小部分是實(shí)際的Apache指令,其余的僅是幫助用戶如何恰當(dāng)?shù)卦趆ttpd.conf中放置指令的注釋。根據(jù)筆者的經(jīng)驗(yàn),這些注釋有時(shí)起負(fù)面作用,甚至將危險(xiǎn)的指令留存于文件中。筆者在所管理的許多 Apache服務(wù)器上將httpd.conf文件復(fù)制為其它的文件,如httpd.conf.orig等,然后完全清除多余的注釋。文件變得更加容易閱讀,從而更好地解決了潛在的安全問(wèn)題或者錯(cuò)誤地配置文件。

沒(méi)作任何設(shè)置前,查看web服務(wù)器請(qǐng)求文件頭

HTTP/1.1 200 OK
Date: Sun, 27 Apr 2008 11:56:46 GMT
Server: Apache/2.2.8 (Unix) DAV/2 PHP/5.2.5 with Suhosin-Patch
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "387a5-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

幾乎把web服務(wù)器詳細(xì)信息都暴出來(lái)了,如果沒(méi)個(gè)版本的apache和php爆出嚴(yán)重漏洞,會(huì)給攻擊者提供最有攻擊價(jià)值的安全信息,這是非常危險(xiǎn)的

將apache的配置文件加上兩行

ServerTokens ProductOnly
ServerSignature Off
重啟apache讓設(shè)置生效
再次發(fā)出apache頭信息請(qǐng)求

HTTP/1.1 200 OK
Date: Sun, 27 Apr 2008 11:57:40 GMT
Server: Apache
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "387a5-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

可以看到apache版本號(hào)于已經(jīng)沒(méi)有了

做到這點(diǎn),我們還可以改變apache的版本,這就要修改apache的源代碼了,在apache的源碼包中找到ap_release.h 將#define AP_SERVER_BASEPRODUCT "Apache" 修改為#define AP_SERVER_BASEPRODUCT "Microsoft-IIS/5.0”
或者#define AP_SERVER_BASEPRODUCT "Microsoft-IIS/6.0”

然后找到os/unix下的os.h文件,將其#define PLATFORM "Unix"修改為#define PLATFORM "Win32"

然后重新編譯,安裝apache。
最后修改httpd.conf配置文件,添加兩行ServerTokens Prod
ServerSignature Off
在發(fā)送頭請(qǐng)求,會(huì)有什么,就不用我說(shuō)了吧,嘿嘿,這叫偷天換日,從這點(diǎn)來(lái)說(shuō),php也是一樣,同樣可以通過(guò)這種方式改變一些系統(tǒng)信息,不過(guò)根據(jù)GPL開源的精神,這樣做貌似不太好,還是保留apache和php版權(quán)信息吧。

附:
ServerSignature 三個(gè)選項(xiàng)
On|Off|EMai 主要起開關(guān)作用

ServerTokens 四個(gè)選項(xiàng)
Minimal|ProductOnly|OS|Full 四個(gè)選項(xiàng)隱藏信息依次增加

下面對(duì)php的配置文件php.ini進(jìn)行配置

默認(rèn)情況下expose_php = On
將其改為 expose_php = Off

為什么,可以看這段解釋

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.

然后禁止一些涉及php安全的函數(shù)

disable_functions = phpinfo, get_cfg_var //禁止phpinfo和get_cfg_var等函數(shù)
display_errors = Off //禁止爆出錯(cuò)誤
allow_url_fopen = Off //這個(gè)關(guān)閉,就沒(méi)有辦法取遠(yuǎn)程內(nèi)容了,但是可以用變通,用curl遠(yuǎn)程讀取的方法做到
safe_mode = On //開啟安全模式,這個(gè)開了,可能會(huì)有些php功能沒(méi)辦法使用了

無(wú)論如何,還是要我們的程序設(shè)計(jì)的完美,一般來(lái)說(shuō),單純更具對(duì)系統(tǒng)攻擊很難,如果是程序有漏洞,那攻擊就簡(jiǎn)單了。

相關(guān)文章

  • Linux CentOS使用crontab設(shè)置定時(shí)重啟的方法

    Linux CentOS使用crontab設(shè)置定時(shí)重啟的方法

    本篇介紹 crontab 設(shè)置定時(shí)任務(wù),并且把 crontab 加入到開機(jī)自啟動(dòng)中,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • VScode Remote SSH通過(guò)遠(yuǎn)程編輯與調(diào)試代碼

    VScode Remote SSH通過(guò)遠(yuǎn)程編輯與調(diào)試代碼

    這篇文章主要介紹了VScode Remote SSH通過(guò)遠(yuǎn)程編輯與調(diào)試代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Apache Prefork、Worker和Event三種MPM詳解

    Apache Prefork、Worker和Event三種MPM詳解

    這篇文章主要介紹了Apache Prefork、Worker和Event三種MPM詳解,著重介紹了配置參數(shù)部分,需要的朋友可以參考下
    2014-06-06
  • 80端口被Pid為4的未知程序占用導(dǎo)致Apache不能啟動(dòng)的解決方法

    80端口被Pid為4的未知程序占用導(dǎo)致Apache不能啟動(dòng)的解決方法

    這篇文章主要介紹了80端口被Pid為4的未知程序占用導(dǎo)致Apache不能啟動(dòng)的解決方法,比較奇怪的是這個(gè)PID為4的程序在進(jìn)程中找不到,后來(lái)發(fā)現(xiàn)原來(lái)是一個(gè)服務(wù)在占用,需要的朋友可以參考下
    2014-10-10
  • Linux service無(wú)法使用系統(tǒng)環(huán)境變量的問(wèn)題及解決

    Linux service無(wú)法使用系統(tǒng)環(huán)境變量的問(wèn)題及解決

    這篇文章主要介紹了Linux service無(wú)法使用系統(tǒng)環(huán)境變量的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Linux下文件的切分與合并的簡(jiǎn)單方法介紹

    Linux下文件的切分與合并的簡(jiǎn)單方法介紹

    這篇文章主要介紹了Linux下文件的切分與合并的簡(jiǎn)單方法介紹,介紹了相關(guān)實(shí)例。實(shí)例通過(guò)split及cat命令實(shí)現(xiàn)此過(guò)程,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • CentOS7安裝配置 Redis的方法步驟

    CentOS7安裝配置 Redis的方法步驟

    這篇文章主要介紹了CentOS7安裝配置 Redis的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Linux下tcpdump命令解析及使用詳解

    Linux下tcpdump命令解析及使用詳解

    這篇文章主要介紹了Linux下tcpdump命令解析及使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何在Ubuntu 18.04(實(shí)體機(jī))上配置OpenWRT的開發(fā)環(huán)境

    如何在Ubuntu 18.04(實(shí)體機(jī))上配置OpenWRT的開發(fā)環(huán)境

    這篇文章主要介紹了如何在Ubuntu 18.04(實(shí)體機(jī))上配置OpenWRT的開發(fā)環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 分析從Linux源碼看TIME_WAIT的持續(xù)時(shí)間

    分析從Linux源碼看TIME_WAIT的持續(xù)時(shí)間

    本文主要介紹了Linux下的TIME_WAIT狀態(tài)的持續(xù)時(shí)間,從狀態(tài)轉(zhuǎn)移到它的源碼,一步步讓你了解它的機(jī)制
    2021-06-06

最新評(píng)論

磐石市| 沁阳市| 平顶山市| 利辛县| 纳雍县| 泸定县| 江山市| 山丹县| 乐平市| 乌鲁木齐县| 禹城市| 毕节市| 石棉县| 喀什市| 西青区| 子长县| 灌南县| 三门峡市| 富民县| 台州市| 涡阳县| 惠州市| 清徐县| 南川市| 平武县| 临漳县| 民乐县| 黑山县| 台东市| 卢龙县| 襄樊市| 武川县| 巴马| 荔波县| 阳朔县| 弋阳县| 上杭县| 新和县| 安化县| 柳州市| 盘锦市|