apache中的異常訪問,通常指的是頻繁、大量訪問的使用者,通過apache的log,結合linux下的幾個命令,可以分析這些使用者,並通過apache的配置檔案來禁止他們訪問。
這樣就可以了,關於setenvif的其他用法,可以參見apache文件中setenvif和environment variables in apache部分。
接下來,經過一段時間的執行,我們就可以分析log檔案中訪問量最大的使用者了,只需要一條命令:
cat access.log |awk ''| sort | uniq -c |sort -n
一點點的來看:
所以,我們得到的結果應該是這樣的:
......
2040 219.148.106.198
2047 218.12.78.14
2149 218.12.26.233
2205 121.28.4.34
order deny,allow
deny from 219.143.69.2
deny from 218.12.26.233
deny from 61.135.162.51
allow from all
如此反覆監測、設定,直到沒有人搗亂為止。
同理,如果想檢視反覆重新整理檢視某一頁面的使用者,可以用如下命令:
grep "get /url/to/some/file" access.log |awk '' |sort |uniq -c |sort -n
posted on
2007-06-11
author
fwolf
categories
linux, server
tags
custom, deny, log, server
bxysays:
2007-06-15 at 9:20:46
沒又是一篇讓我受益而且嘗試之後確實有用的文章。謝謝
我建議最後的 sort用 sort -nr 這樣訪問最大的**排在前面。配合 |less ,使用起來更方便。
cat access.log |awk ''| sort | uniq -c |sort -nr |less
在man sort中說了 -n 是以數字順序排列,-r是反向排列(reverse)
特別喜歡你對awk的解釋。一直沒明白
推薦你看看 howtoforge.com 有些對你會有幫助。
希望你堅持。將來也有個中文的howtoforge。hehe
reply
reply
fwolfsays:
2007-06-16 at 1:23:32
reply
reply
guoshuangsays:
2007-07-11 at 17:48:55
很好的方法,轉了,非常感謝
reply
reply
seersays:
2007-09-13 at 14:34:33
小站的話我就直接用限制併發和頻寬的模組和apache一起工作,如果是掃瞄等大流量的話 可以用portsentry等方式而大**的話 程式解決,而awstats等來做資料分析再解決也簡單.如果在apache上做deny的話,效率很大折扣
那個,應該把allow from all去掉?
reply
reply on october 27th, 2009 11:30:34:
去不去掉效果應該是一樣的。
reply
reply
greyhostsays:
2015-05-01 at 14:18:07
hi there最後的conf檔案好像寫錯了吧,order deny,allow應該是order allow,denyorder是指定deny和order的順序,如果按照你的寫法,先deny指定的ip,然後又allow from all,最後的結果應該是allow from all。你指定的ip沒有被遮蔽。是我記錯了還是你寫錯了,請問你經過測試了嗎?
C 中禁止異常資訊傳遞到析構函式外
在有兩種情況下會呼叫析構函式。第一種是在正常情況下刪除乙個物件,例如物件超出了作用域或被顯式地delete。第二種是異常傳遞的堆疊輾轉開解 stack unwinding 過程中,由異常處理系統刪除乙個物件。在上述兩種情況下,呼叫析構函式時異常可能處於啟用狀態也可能沒有處於啟用狀態。遺憾的是沒有辦法...
如何查詢MySQL中查詢慢的SQL語句並優化
在mysql中,支援慢日誌記錄功能,通過指定統計執行時間閾值與日誌存放位置來實現 mysql預設統計時間為10s,而且預設統計是關閉的,那麼如何開啟統計呢?這裡分為兩種情況 第一種情況是在mysql ini配置檔案中新增鍵和值,通常適用於從資料庫啟動即開啟統計日誌 第二種情況是在不適合關閉伺服器而臨...
Linux下查詢tomcat日誌中的異常資訊
1 如果知道發生異常的時間段,可以檢視這個時間段的日誌 sed n jun 8,2017 6 22 50 jun 8,2017 6 22 51 p catalina.out cat時間格式要與日誌時間格式匹配,且都存在 2 如果知道多少行到多少行發生了日誌 sed n 起始行號,結束行號p cata...