欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

封ip腳本進(jìn)化的解決辦法

阿銘linux ? 來源:阿銘linux ? 2023-06-11 17:03 ? 次閱讀

上次給大家分享過一個封IP腳本,點這里看。我搞那個腳本的目的是為了把訪問量太大的IP地址給封掉,然后每隔半小時解封。其實,它并沒有解決問題。服務(wù)器CPU使用率還是跟之前一樣,非常有規(guī)律。

經(jīng)過幾天的觀察和日志分析,得出一個結(jié)論,大概率是最近服務(wù)器上來采集數(shù)據(jù)的量比之前大了,畢竟近期AI很熱,好多組織在搞大模型,采集數(shù)據(jù)是根本。

這些人就有點不道德了,又不是不讓你采集,你再把頻率降低一些,分散一些,只要不影響到我們的業(yè)務(wù),就沒人管你,但你現(xiàn)在把我們的服務(wù)器給拖垮了,影響到客戶訪問和使用,這樣誰都不好不是。

分析過程中,也找到了一些規(guī)律,有一些IP是一個IP段,很分散,所以單個IP訪問量并不大,但是整個IP段就非常明顯了。

6d314764-05d9-11ee-962d-dac502259ad0.png

所以,我想了想,決定把腳本改造一下,針對IP段來進(jìn)行分析并封IP。思路是:分析過去1小時的訪問日志,然后把訪問日志中的IP截取出來,取IP的前三個數(shù)字,只要這三個數(shù)字一樣的IP都算一個,這樣再計算總次數(shù)。把總次數(shù)超過1600次的IP段給找出來。此時可不能直接封IP段,因為會誤傷,所以還需要根據(jù)IP段,再去過濾出中招的IP地址,針對這些IP地址再去封掉。而解封則每隔2小時來一次。

腳本如下,關(guān)鍵步驟是有注釋的。

#! /bin/bash
## 把訪問量比較大的IP段封掉,如果2小時內(nèi)被封的IP沒有請求或者請求很少,需要解封
## 作者:阿銘
## 日期:2023-05-27
## 版本:v1.1


#定義1小時以前的時間,用于過濾1小時以前的日志
t1=`date -d "-1 hour" +%Y:%H:`
log=/data/logs/nginx/access.log


block_ip()
{
##白名單ip/ip段,自己的IP,正經(jīng)蜘蛛的IP
w_ip="^66.249.|^220.181.|^116.179."


    ##截取一小時以前的日志
egrep"$t1[0-5][0-9]:"$log>/tmp/tmp_last_hour.log
    ##將所有ip都過濾出來,存到臨時文件
    awk '{print $1}' /tmp/tmp_last_hour.log > /tmp/tmp_last_hour_ip.log


    ##處理IP,只留前面三位,排序、去重,獲取多于1600次請求的ip段,這個數(shù)字可以根據(jù)實際情況來調(diào)整
    awk -F '.' '{print $1"."$2"."$3"."}' /tmp/tmp_last_hour_ip.log|sort |uniq -c |sort -n |awk '$1 > 1600 {print $2}' > /tmp/bad_ip_hour.list


    #當(dāng)ip數(shù)大于0時,才會用iptables封掉它
    ip_n=`wc -l /tmp/bad_ip_hour.list|awk '{print $1}'`
    if [ ${ip_n} -ne 0 ]
    then
        for ip in `cat /tmp/bad_ip_hour.list`
        do
            #封ip,不能直接封ip段
            for ip2 in `grep "^$ip" /tmp/tmp_last_hour_ip.log|sort -n|uniq`
            do
                /usr/sbin/iptables -I INPUT -s $ip2 -j REJECT
            done
        done
        #將這些被封的IP記錄到日志里
        echo "`date` 封掉的IP段有:" >> /tmp/block_ip2.log
        cat /tmp/bad_ip_hour.list >> /tmp/block_ip2.log
    fi
}


unblock_ip()
{
    #首先將包個數(shù)小于5的ip段記錄到一個臨時文件里,把它們標(biāo)記為白名單IP
    /usr/sbin/iptables -nvL INPUT|grep REJECT |awk '$1<5 {print $8}' > /tmp/good_ip2.list
    n=`wc -l /tmp/good_ip2.list|awk '{print $1}'`
    if [ $n -ne 0 ]
    then
        for ip in `cat /tmp/good_ip2.list`
        do
            /usr/sbin/iptables -D INPUT -s $ip -j REJECT
        done
        echo "`date` 解封的IP段有:" >> /tmp/unblock_ip2.log
        cat /tmp/good_ip2.list >> /tmp/unblock_ip2.log
    fi
    #當(dāng)解封完白名單IP后,將計數(shù)器清零,進(jìn)入下一個計數(shù)周期
    /usr/sbin/iptables -Z
}


#取當(dāng)前時間的小時
t=`date +%H`
t2=$[$t%2]


#每2小時執(zhí)行解封IP的函數(shù),其他時間只執(zhí)行封IP的函數(shù)
if [ $t2 -eq 0 ]
then
   unblock_ip
   block_ip
else
   block_ip
fi

上完腳本后,觀察了一天,CPU使用率終于降低到可接受范圍了。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10918

    瀏覽量

    213160
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9338

    瀏覽量

    86156

原文標(biāo)題:問題終于解決了--封ip腳本的進(jìn)化

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于TCP/IP門禁系統(tǒng)有哪些安全問題?有什么解決辦法

    關(guān)于TCP/IP門禁系統(tǒng)有哪些安全問題?有什么解決辦法
    發(fā)表于 05-31 06:04

    經(jīng)典網(wǎng)絡(luò)故障及解決辦法

    經(jīng)典網(wǎng)絡(luò)故障及解決辦法 IP與MAC綁定的難題問:我的計算機原來采用公網(wǎng)固定IP地址。為了避免被他人盜用,使用“arp -s ip mac”命令對MAC地址和
    發(fā)表于 08-06 14:09 ?1418次閱讀

    華碩筆記本聲卡驅(qū)動無法安裝的解決辦法

    華碩筆記本聲卡驅(qū)動無法安裝的解決辦法
    發(fā)表于 01-18 10:10 ?3575次閱讀

    聲卡硬件維修的常見問題及解決辦法

    聲卡硬件維修的常見問題及解決辦法 常見故障一:聲卡無聲   出現(xiàn)這種故障常見的原因有:
    發(fā)表于 02-23 14:25 ?2590次閱讀

    誤碼特性,誤碼產(chǎn)生的機理及解決辦法

    誤碼特性,誤碼產(chǎn)生的機理及解決辦法
    發(fā)表于 03-19 17:10 ?2295次閱讀

    UPS電源輸入跳閘淺析及解決辦法

    UPS電源輸入跳閘淺析及解決辦法解析
    發(fā)表于 11-10 16:42 ?89次下載
    UPS電源輸入跳閘淺析及<b class='flag-5'>解決辦法</b>

    Matlab編程常見錯誤與解決辦法

    Matlab編程常見錯誤與解決辦法求人不如求己
    發(fā)表于 03-16 15:58 ?0次下載

    電梯IP五方對講的問題和解決辦法的介紹

    梯云物聯(lián):深圳電梯IP五方對講有什么問題和解決辦法?
    發(fā)表于 04-11 18:16 ?5835次閱讀

    ESP32勘誤表及解決辦法

    電子發(fā)燒友網(wǎng)站提供《ESP32勘誤表及解決辦法.pdf》資料免費下載
    發(fā)表于 09-23 11:51 ?0次下載
    ESP32勘誤表及<b class='flag-5'>解決辦法</b>

    電腦右鍵管理打開失敗的解決辦法

    此電腦右鍵管理打不開怎么辦 電腦右鍵管理打開失敗的解決辦法
    發(fā)表于 09-28 09:56 ?0次下載

    硬盤故障的3個終極解決辦法

    電子發(fā)燒友網(wǎng)站提供《硬盤故障的3個終極解決辦法.pdf》資料免費下載
    發(fā)表于 10-20 10:46 ?0次下載
    硬盤故障的3個終極<b class='flag-5'>解決辦法</b>

    細(xì)碎機軸承位磨損問題的解決辦法

    【設(shè)備故障】細(xì)碎機軸承位磨損問題的解決辦法
    發(fā)表于 10-27 16:36 ?0次下載

    Protel99 與WIN10系統(tǒng)沖突解決辦法

    PROTEL99 與WIN10系統(tǒng)沖突解決辦法
    的頭像 發(fā)表于 11-20 09:30 ?4297次閱讀
    Protel99 與WIN10系統(tǒng)沖突<b class='flag-5'>解決辦法</b>

    常見MCU故障及解決辦法

    微控制器單元(MCU)是現(xiàn)代電子設(shè)備中的核心組件,負(fù)責(zé)處理和控制各種功能。然而,由于各種原因,MCU可能會出現(xiàn)故障。以下是一些常見的MCU故障及其解決辦法: 1. 電源問題 故障現(xiàn)象: MCU無法
    的頭像 發(fā)表于 11-01 13:41 ?2934次閱讀

    常見墊圈故障及解決辦法 防漏墊圈的設(shè)計與應(yīng)用

    常見墊圈故障及解決辦法 1. 墊圈老化 故障現(xiàn)象: 墊圈因長時間使用而老化,失去彈性,導(dǎo)致密封性能下降。 解決辦法: 定期檢查墊圈的老化情況,及時更換新的墊圈。 2. 墊圈變形 故障現(xiàn)象: 由于安裝
    的頭像 發(fā)表于 12-12 15:31 ?488次閱讀