通過網站日誌做網絡爬蟲和惡意訪問分析

普通爬蟲

  • 分別查看有爬蟲標誌的訪問次數和合計的總頁面訪問次數
cat www.access.log | grep spider -c
cat www.access.log | wc
  • 查看爬蟲來ip地址來源
cat www.access.log | grep spider | awk '{print $1}' | sort -n | uniq -c | sort -nr
  • 在防火牆上對其地址做限制
    /etc/sysconfig/iptables 中添加規則
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.0.1/24 -j REJECT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.4.1/24 -j REJECT

service iptables restart 使限制生效

惡意爬蟲與訪問

一般可以對網站訪問日誌做分析,通過分析單位時間裏面某個ip訪問服務器的次數等信息來找出爬蟲的來源地址和惡意訪問的來源地址

  • 初步篩選
    列出在一分鐘內訪問網站次數最多的前20位ip地址
cat www.access.log | awk '{print $1 " " substr($4,14,5)}' | sort -n | uniq -c | sort -nr | head -20

這是一個 Linux 命令行腳本,用於統計 Apache 訪問日誌中最頻繁的前 20 個 IP 地址和時間。解釋如下:
cat www.access.log:讀取 Apache 訪問日誌文件。
awk '{print $1 " " substr($4,14,5)}':使用 awk 對讀取的信息進行處理,提取出訪問者的 IP 地址和訪問時間。其中,$1 表示文件中每一行的第一個字段(即 IP 地址),$4 表示每一行的第四個字段(即時間戳),substr($4,14,5) 表示截取時間戳的第 14 個字符開始的 5 個字符,即小時:分鐘。將提取出來的 IP 地址和時間以空格符號分隔開。
sort -n:對處理後得到的結果按照IP地址進行排序。
uniq -c:對排好序的結果進行去重和統計,並輸出對應 IP 地址出現的次數。
sort -nr:對上一步中統計出來的結果按照出現次數進行逆序排序。
head -20:只輸出排序後的前 20 個結果,即出現次數最多的前 20 個 IP 地址及其訪問時間。
綜上,這段命令用於統計 Apache 訪問日誌中的訪問量數據,並顯示出訪問量排名前 20 的 IP 地址和時間。

  • 單個IP訪問時間段
    查看一天中某個ip地址對網站服務器的訪問時間分段情況。
cat www.access.log | grep 60.190 .128 .6 | awk '{print $1 " " substr($4,14,5)}' | sort -n | uniq -c | sort -nr | head -20
  • 單個IP訪問詳情
    對這些命令中表現出的數量比較突出的一些ip地址,一般來說就是有問題的ip了,在配合
cat www.access.log | grep ip地址

可以看看這些高強度的地址訪問都在幹些什麼。是不是正常訪問,如果不是就要考慮是否要做限制了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章