Shell Script: 來最多次的 IP, 抓前 10 名

一隻簡單的 Bash Script, 找出暴力攻擊 Server 的 IP, 然後不得已的情況, 就是把他擋掉....

Shell Script: tail -1000 /var/log/apache2/www-access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail

取最後進來的 1000 筆 access log 來看, 觀察一下有沒有太誇張的 IP (特別是看有沒有是特別來亂的, ex: 開始亂塞些惡意的值)

列出大致如下:

  • 次數 和 IP
  • 10 xxx.xxx.xxx.x
  • 100 xxx.xx.xx.x
  • 300 xx.xx.x.x
  • ... 等 10 筆

再去 grep 最大量的那些 IP, 看看是不是來亂的, 如果是來亂的, 擋掉這個IP, 或視情況擋掉那個網段(Linux):

  • 擋掉 100.100.1.1 的 IP: iptables -I INPUT -s 100.100.1.1 -j DROP
  • 擋掉 100.100.0.0 整個網段: iptables -A INPUT -s 100.100.0.0/24 -j DROP
  • 解除: iptables -D INPUT -s 100.100.1.1 -j DROP

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

Shell Script: 來最多次的 IP, 抓前 10 名 有 8 則回應

  1. 日落 說道:

    習慣 pf 的說 :P

  2. cvictor 說道:

    fail2ban這個套件不錯喔

  3. Tsung 說道:

    嗯嗯, 真的是很不錯的套件, 感謝推薦~ 🙂

  4. Tsung 說道:

    哈, 這真是太暴力了, 我是盡量能不封就不要封, 除非亂到太誇張... Orz...

  5. derrick 說道:

    取最後進來的 1000 筆 access log 來看, 觀察一下有沒有太誇張的 IP (特別是看有沒有是特別來亂的, ex: 開始亂塞些惡意的值)
    何為太誇張的IP或是來亂的IP
    這我不懂可以說明嗎

  6. Tsung 說道:

    這還是得要看你的量而定, 如果你的量很大, 但是最下面 1000 筆有 500 筆都是那個 IP, 那應該就是太誇張了, 所以得再自己看情況.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料