10月30日,國外安全研究人員發現由於對apache設置不嚴,導致服務器狀態暴露於公網。本來apache有一個叫server-status 的功能,為方便管理員檢查服務器運行狀態的。它是一個HTML頁面,可以顯示正在工作的進程數量,每個請求的狀態,訪問網站的客戶端ip地址,正在被請求 的頁面。
但是如果這個頁面對公網開放,就會存在一些安全隱患,例如任何人口可以看到誰在訪問網站,甚至包括一些本來隱藏的管理頁面。
如果沒有加載這個模塊,如果您是linux服務器,那么就需要您重新編譯apache了,編譯的時候加上參數--enable-module=so即可, 如果你是windows系統的話,無需任何編譯,只要把剛才時候說的LoadModule status_module modules/mod_status.so這句加上,如果前面有帶#號,開啟的話,需要將#去除。
http://192.168.99.99/Server-status?refresh=N將表示訪問狀態頁面可以每N秒自動刷新一次;
在httpd.conf 增加
#-Apache Server Status--------------
ExtendedStatus On
<Location /Server-status>
SetHandler Server-status
Order deny,allow
Deny from all
Allow from 192.168.99.99
</Location>
##--Apache Server Status--end---------
Deny from表示禁止的訪問地址,如果訪問報錯可將此行注釋,但是安全性會降低;
Allow from表示允許的地址訪問。這里應該寫允許的客戶端IP,似乎不應該是域名
ExtendedStatus On表示的是待會訪問的時候能看到詳細的請求信息,另外該設置僅能用於全局設置,不能在特定的虛擬主機中打開或關閉。啟用擴展狀態信息將會導致服務器運行效率降低。
http://192.168.99.99/Server-status
默認為查看第一個虛擬主機的信息。。。
Apache Server Status for aa.bb.com Server Version: Apache Server Built: Apr 4 2010 17:19:54 Current Time: Friday, 30-Jul-2010 14:58:01 CST Restart Time: Friday, 30-Jul-2010 14:57:38 CST Parent Server Generation: 0 Server uptime: 23 seconds Total accesses: 1 - Total Traffic: 1 kB CPU Usage: u0 s0 cu0 cs0 .0435 requests/sec - 44 B/second - 1024 B/request 1 requests currently being processed, 9 idle workers Scoreboard Key: " _ " Waiting for Connection, " S " Starting up, " R " Reading Request, " W " Sending Reply, " K " Keepalive (read), " D " DNS Lookup, " C " Closing connection, " L " Logging, " G " Gracefully finishing, " I " Idle cleanup of worker, " . " Open slot with no current process Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-0 9297 0/1/1 _ 0.00 11 134 0.0 0.00 0.00 114.92.*.222 aa.bb.com GET /SEC HTTP/1.1 1-0 9306 0/0/0 W 0.00 0 0 0.0 0.00 0.00 114.92.*.222 aa.bb.com GET /Server-status HTTP/1.1 Srv Child Server number - generation PID OS process ID Acc Number of accesses this connection / this child / this slot M Mode of operation CPU CPU usage, number of seconds SS Seconds since beginning of most recent request Req Milliseconds required to process most recent request Conn Kilobytes transferred this connection Child Megabytes transferred this child Slot Total megabytes transferred this slot Apache Server at aa.bb.com Port 80