亚洲色图欧美日韩在线播放-户外操美女逼逼中国-免费久久99国产精品自在现-欧美激情五月综合啪啪-九九日本黄色精品视频-亚洲成年网址青青草原-欧美性爱精品在线免费观看-国产精品一区二区美女-日电影一区二区三区

Linux服務器 屏蔽國外IP訪問及簡單的防CC攻擊攔截

屏蔽國外IP訪問

通過ssh遠程登錄服務器內,運行如下命令語句獲取國內IP網(wǎng)段,會保存為/root/china_ssr.txt

wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txt

將下面腳本保存為/root/allcn.sh ,并設置可執(zhí)行權限( 命令: chmod +x  allcn.sh)

mmode=$1

CNIP="/root/china_ssr.txt"

gen_iplist() {
        cat <<-EOF
                $(cat ${CNIP:=/dev/null} 2>/dev/null)
EOF
}

flush_r() {
iptables  -F ALLCNRULE 2>/dev/null
iptables -D INPUT -p tcp -j ALLCNRULE 2>/dev/null
iptables  -X ALLCNRULE 2>/dev/null
ipset -X allcn 2>/dev/null
}

mstart() {
ipset create allcn hash:net 2>/dev/null
ipset -! -R <<-EOF 
$(gen_iplist | sed -e "s/^/add allcn /")
EOF

iptables -N ALLCNRULE 
iptables -I INPUT -p tcp -j ALLCNRULE 
iptables -A ALLCNRULE -s 127.0.0.0/8 -j RETURN
iptables -A ALLCNRULE -s 169.254.0.0/16 -j RETURN
iptables -A ALLCNRULE -s 224.0.0.0/4 -j RETURN
iptables -A ALLCNRULE -s 255.255.255.255 -j RETURN
iptables -A ALLCNRULE -m set --match-set allcn  src -j RETURN 
iptables -A ALLCNRULE -p tcp -j DROP 
}
if [ "$mmode" == "stop" ] ;then
flush_r
exit 0
fi
flush_r
sleep 1
mstart

執(zhí)行如下命令將開始攔截

/root/allcn.sh

執(zhí)行如下命令即可停止攔截

/root/allcn.sh stop


CC攻擊攔截

方式1:通過netstat -an命令統(tǒng)計出當前請求并發(fā)大于100的IP,然后將不在白名單的IP自動加入DROP規(guī)則

首先運行

vi  deny_1.sh

添加以下命令語句

#!/bin/bash
if [[ -z $1 ]];then
        num=100
else
        num=$1
fi

cd $(cd $(dirname $BASH_SOURCE) && pwd)
iplist=`netstat -an |grep ^tcp.*:80|egrep -v 'LISTEN|127.0.0.1'|awk -F"[ ]+|[:]" '{print $6}'|sort|uniq -c|sort -rn|awk -v str=$num '{if ($1>str){print $2} fi}'`

if [[ ! -z $iplist ]];
then
        for black_ip in $iplist
            do                
                ip_section=`echo $black_ip | awk -F"." '{print $1"."$2"."$3}'`                
                grep -q $ip_section ./white_ip.txt
                if [[ $? -eq 0 ]];then                        
                        echo $black_ip >>./recheck_ip.txt
                else                        
                        iptables -nL | grep $black_ip || iptables -I INPUT -s $black_ip -j DROP
                        echo $black_ip >>./black_ip.txt
                fi
           done
fi

保存后執(zhí)行以下語句:

chmod +x deny_1.sh
sh deny_1.sh

攔截的IP會記錄到black_ip.txt中,如果有要排除的白名單IP,可將這些IP加入到white_ip.txt,一行一個。


方式2:通過web網(wǎng)站日志中攻擊者訪問特征,根據(jù)這些特征過濾出攻擊的ip,利用iptables來阻止(排除本機IP:127.0.0.1)。

首先運行

vi deny_2.sh

添加以下命令語句:

#!/bin/bash  
OLD_IFS=$IFS  
IFS=$'\n'  

for status in `cat 網(wǎng)站訪問日志路徑 | grep '特征字符' | grep -v '127.0.0.1' | awk '{print $1}' |sort -n | uniq -c | sort -n -r | head -20`  
do  
  IFS=$OLD_IFS  
  NUM=`echo $status | awk '{print $1}'`  
  IP=`echo $status | awk '{print $2}'`  

    if [ -z "`iptables -nvL | grep "dpt:80" | awk '{print $8}' | grep "$IP"`" ];then  
    if [ $NUM -gt 250 ];then  
      /sbin/iptables -I INPUT -p tcp  -s $IP --dport 80 -j DROP  
    fi  
  fi  
done

保存后執(zhí)行以下語句:

chmod +x deny_2.sh
sh deny_2.sh


最后使用crontab -e 添加到任務計劃,每20分鐘執(zhí)行一次:

*/20 * * * * /root/deny_ip1.sh  >dev/null 2>&1

注意:

  1. 對于使用了百度云加速或其他cdn加速的,訪問者IP可能會是CDN節(jié)點IP,不適用此方式進行攔截。

  2. 對于方式1 若發(fā)現(xiàn)和白名單同一個段IP出現(xiàn)在高并發(fā)列表,將不會直接拉黑,而是寫入到recheck_ip.txt.

  3. 對于方式2 執(zhí)行前建議先將原日志文件改名,以重新生成的新的日志文件為準。

  4. 不建議長時間進行攔截,請在一段時間后待服務器負載正常,攻擊基本停止后及時取消攔截,恢復原先狀態(tài)。



編輯:三五互聯(lián)
日期:2021-07-07

收藏 】 【 打印 】   
您可對文檔進行評分喲~

勾選遇到的問題提交給我們,收到反饋后保證及時修正更新!

提交反饋需要先登陸會員帳號

上一篇:Linux系統(tǒng)云服務器查看/啟用網(wǎng)站日志
下一篇:已經(jīng)沒有了。
若文檔內容對您沒有幫助,不能解決問題? 您還可以 咨詢在線客服提交工單搜索常見問題 ,我們將竭誠為您服務。
  >> 相關文章
 
分享至: