查詢並禁止apache中異常訪問量的使用者

2021-07-17 00:10:59 字數 2792 閱讀 8249

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...