BUGTRAQ ID: 51442
成都創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、成都做網站、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的建甌網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
CVE ID: CVE-2011-3375
Apache Tomcat是一個流行的開放源碼的JSP應用服務器程序。
Apache Tomcat在實現上存在安全限制繞過漏洞,成功利用后可允許攻擊者繞過某些安全策略限制。
*來源:vendor
*
建議:
--------------------------------------------------------------------------------
廠商補丁:
Apache Group
------------
目前廠商已經發布了升級補丁以修復這個安全問題,請到廠商的主頁下載:
1.集群:利用apaceh作前端可集群幾個tomcat實例,當一個down機了也不至于整個網站down了,當然如果能用了硬件集群或者tomcat自身的集群,這點可以忽略。
2.集群/安全:你可以通過利用apache作前端去區分幾個不同的應用上下文(/app1 /app2),那么你對應的tomcat將擁有各自的安全控制,你唯一需要擔心的只是apache。從本質上講,apache成為一個智能的代理服務器。
3.安全:java有security manager,而apache因為有更廣泛的使用而使其有更多的安全技巧。根據你不同的應用場景,不能一概而論。但你記住一點,如果你集成apache,你將有兩套安全機制,而不是一套。
4.附加組件:在apche上使用cgi,perl,php是很自然的事,apache可以根據你的意愿添加成千上萬的插件,雖然tomcat也可以,但很多還沒有實現。
5.裝飾器:有了apache,你將有很多tomcat沒有的或沒實現的裝飾器,例如mod_headers,mod_rewrite,mod_alias,既然apache都已經做得那么好了,為什么你還要重復制作輪子?!
6.速度:apache處理靜態文件更快。除非你的網站流量非常大,否則這點沒什么意義。但是在某些場合,tomcat能比apache更出色,當apr和sendFile屬性開啟時。所以當你衡量該不該集成它們兩個時,速度不應該是你所要考慮的。
7.socket處理/系統穩定性:對于處理socket error,apache有更好的處理能力,這是因為tomcat的處理socket是經過jvm的,而jvm是需要跨平臺的。而socket的優化是平臺相關性相關的。當處理大量的斷包,非法的請求,非法的包等等時,apache做得更加好。
要看是怎么上傳的!
一般情況下,網站安全兩大部分, 服務器的配置維護方面, 和網站程序本身方面!
建議:
檢查下服務器的安全配置,以及在服務器上安裝些防護軟件!
同時檢查下網站程序編寫是否有什么漏洞,以及Apache和php的配置設置!
如果可以, 建議php.ini中取消上傳功能或者限制功能!
環境配置方面, 指定特定的目錄禁止運行腳本, 比如css、JavaScript、images等目錄網站資源目錄!
如果你是一個系統管理員,你應該按照以下的10點建議來保證Apache web服務器的安全。 1、禁用不必要的模塊 如果你打算源碼編譯安裝apache,你應該禁用以下的模塊。如果你運行./configure -help,你將會看到所有可用的你可以禁用/開啟的模塊。 userdir –用戶特定用戶的請求映射。例如:帶用戶名的URL會轉化成服務器的一個目錄。 autoindex – 當沒有默認首頁(如index.html)時顯示目錄列表。 status –顯示服務器統計 env – 清除或修改環境變量 setenvif –根據客戶端請求頭字段設置環境變量 cgi –CGI腳本 actions – 根據特定的媒體類型或請求方法,激活特定的CGI腳本 negotiation –提供內容協商支持 alias – 提供從文件系統的不同部分到文檔樹的映射和URL重定向 include –實現服務端包含文檔(SSI)處理 filter –根據上下文實際情況對輸出過濾器進行動態配置 version –提供基于版本的配置段支持 asis – 發送自己包含HTTP頭內容的文件 當你執行./configure按照下面禁用以上的所有模塊。 ./configure \ --enable-ssl \ --enable-so \ --disable-userdir \ --disable-autoindex \ --disable-status \ --disable-env \ --disable-setenvif \ --disable-cgi \ --disable-actions \ --disable-negotiation \ --disable-alias \ --disable-include \ --disable-filter \ --disable-version \ --disable-asis 如果激活ssl且禁用mod_setenv,你將會得到以下錯誤。 錯誤: Syntax error on line 223 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command ‘BrowserMatch’, perhaps misspelled or defined by a module not included in the server configuration 解決方案:如果你使用ssl,不要禁用setenvif模塊。或者你禁用setenvif模塊,可以在httpd-ssl.conf注釋BrowserMatch。 安裝完成全,執行httpd -l,會列出所有已安裝的模塊。 # /usr/local/apache2/bin/httpd -l Compiled in modules: core.c mod_authn_file.c mod_authn_default.c mod_authz_host.c mod_authz_groupfile.c mod_authz_user.c mod_authz_default.c mod_auth_basic.c mod_log_config.c mod_ssl.c prefork.c http_core.c mod_mime.c mod_dir.c mod_so.c 在這個例子里,我們安裝了如下apache模塊: core.c –Apache核心模塊 mod_auth* –各種身份驗證模塊 mod_log_config.c –允許記錄日志和定制日志文件格式 mod_ssl.c – SSL prefork.c – 一個非線程型的、預派生的MPM httpd_core.c – Apache核心模塊 mod_mime.c – 根據文件擴展名決定應答的行為(處理器/過濾器)和內容(MIME類型/語言/字符集/編碼) mod_dir.c – 指定目錄索引文件以及為目錄提供”尾斜杠”重定向 mod_so.c – 允許運行時加載DSO模塊 2、以單獨的用戶和用戶組運行Apache Apache可能默認地以nobody或daemon運行。讓Apache運行在自己沒有特權的帳戶比較好。例如:用戶apache。 創建apache用戶組和用戶。 groupadd apache useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache 更改httpd.conf,正確地設置User和Group。 # vi httpd.conf User apache Group apache 之后重啟apache,執行ps -ef命令你會看到apache以“apache”用戶運行(除了第一個都是以root運行之外)。 # ps -ef | grep -i http | awk ‘{print $1}’ root apache apache apache apache apache 3、限制訪問根目錄(使用Allow和Deny) 在httpd.conf文件按如下設置來增強根目錄的安全。 Options None Order deny,allow Deny from all 在上面的: Options None –設置這個為None,是指不激活其它可有可無的功能。 Order deny,allow – 這個是指定處理Deny和Allow的順序。 Deny from all –阻止所有請求。Deny的后面沒有Allow指令,所以沒人能允許訪問。 4、為conf和bin目錄設置適當的權限 bin和conf目錄應該只允許授權用戶查看。創建一個組和把所有允許查看/修改apache配置文件的用戶增加到這個組是一個不錯的授權方法。 下面我們設置這個組為:apacheadmin 創建組: groupadd apacheadmin 允許這個組訪問bin目錄。 chown -R root:apacheadmin /usr/local/apache2/bin chmod -R 770 /usr/local/apache2/bin 允許這個組訪問conf目錄。 chown -R root:apacheadmin /usr/local/apache2/conf chmod -R 770 /usr/local/apache2/conf 增加合適的用戶到這個組。 # vi /etc/group apacheadmin:x:1121:user1,user2 5、禁止目錄瀏覽 如果你不關閉目錄瀏覽,用戶就能看到你的根目錄(或任何子目錄)所有的文件(目錄)。 比如,當他們瀏覽http://{your-ip}/images/而images下沒有默認首頁,那么他們就會在瀏覽器中看到所有的images文件(就像ls -l輸出)。從這里他們通過點擊就能看到私人的圖片文件,或點點擊子目錄看到里面的內容。 為了禁止目錄瀏覽,你可以設置Opitons指令為“None“或者是“-Indexes”。在選項名前加“-”會強制性地在該目錄刪除這個特性。 Indexes選項會在瀏覽器顯示可用文件的列表和子目錄(當沒有默認首頁在這個目錄)。所以Indexes應該禁用。 Options None Order allow,deny Allow from all (or) Options -Indexes Order allow,deny Allow from all 6、禁用.htaccess 在htdocs目錄下的特定子目錄下使用.htaccess文件,用戶能覆蓋默認apache指令。在一些情況下,這樣不好,應該禁用這個功能。 我們可以在配置文件中按如下設置禁用.htaccess文件來不允許覆蓋apache默認配置。 Options None AllowOverride None Order allow,deny Allow from all 7、禁用其它選項 下面是一些Options指令的可用值。 Options All –所有的選項被激活(除了MultiViews)。如果你不指定Options指令,這個是默認值。 Options ExecCGI –執行CGI腳本(使用mod_cgi)。 Options FollowSymLinks –如果在當前目錄有符號鏈接,它將會被跟隨。 Options Includes –允許服務器端包含文件(使用mod_include)。 Options IncludesNOEXEC –允許服務器端包含文件但不執行命令或cgi。 Options Indexes –允許目錄列表。 Options MultiViews -允許內容協商多重視圖(使用mod_negotiation) Options SymLinksIfOwnerMatch –跟FollowSymLinks類似。但是要當符號連接和被連接的原始目錄是同一所有者是才被允許。 絕不要指定“Options All”,通常指定上面的一個或多個的選項。你可以按下面代碼把多個選項連接。 Options Includes FollowSymLinks 當你要嵌入多個Directory指令時,“+”和“-”是有用處的。也有可能會覆蓋上面的Directory指令。 如下面,/site目錄,允許Includes和Indexes。 Options Includes Indexes AllowOverride None Order allow,deny Allow from all 對于/site/en目錄,如果你需要繼承/site目錄的Indexes(不允許Includes),而且只在這個目錄允許FollowSymLinks,如下: Options -Includes +FollowSymLink AllowOverride None Order allow,deny Allow from all /site目錄允許IncludesIndexes /site/en目錄允許Indexes和FollowSymLink 8、刪除不需要的DSO模塊 如果你加載了動態共享對象模塊到apache,他們應該在httpd.conf文件在“LoadModule”指令下。 請注意靜態編譯的Apache模塊是不在“LoadModule”指令里的。 在httpd.conf注釋任何不需要的“LoadModules”指令。 grep LoadModule /usr/local/apache2/conf/httpd.conf 9、限制訪問特定網絡(或IP地址) 如果你需要只允許特定IP地址或網絡訪問你的網站,按如下操作: 只允許特定網絡訪問你的網站,在Allow指令下給出網絡地址。 Options None AllowOverride None Order deny,allow Deny from all Allow from 10.10.0.0/24 只允許特定IP地址訪問你的網站,在Allow指令下給出IP地址。 Options None AllowOverride None Order deny,allow Deny from all Allow from 10.10.1.21 10、禁止顯示或發送Apache版本號(設置ServerTokens) 默認地,服務器HTTP響應頭會包含apache和php版本號。像下面的,這是有危害的,因為這會讓黑客通過知道詳細的版本號而發起已知該版本的漏洞攻擊。 Server:Apache/2.2.17 (Unix) PHP/5.3.5 為了阻止這個,需要在httpd.conf設置ServerTokens為Prod,這會在響應頭中顯示“Server:Apache”而不包含任何的版本信息。 # vi httpd.conf ServerTokens Prod 下面是ServerTokens的一些可能的賦值: ServerTokens Prod 顯示“Server:Apache” ServerTokens Major 顯示 “Server:Apache/2″ ServerTokens Minor 顯示“Server:Apache/2.2″ ServerTokens Min d顯示“Server:Apache/2.2.17″ ServerTokens OS 顯示 “Server:Apache/2.2.17 (Unix)” ServerTokens Full 顯示 “Server:Apache/2.2.17 (Unix) PHP/5.3.5″ (如果你這指定任何的值,這個是默認的返回信息) 除了上面10個apache的安全建議,你還必要確保你的UNIX/Linux操作系統的安全。如果你的操作系統不安全,那么只是確保apache的安全就沒有任何意義了。通常的我們要保持apache版本的更新,最新的apahce版本會修復所有已知的安全問題。還有就是要確保時常查看apache日志文件。
當前文章:apache服務器安全機制 apache安全設置
文章出自:http://vcdvsql.cn/article2/ddeieic.html
成都網站建設公司_創新互聯,為您提供用戶體驗、網站維護、品牌網站制作、動態網站、建站公司、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯