日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux服务器 屏蔽国外IP访问及简单的防CC攻击拦截

發(fā)布時(shí)間:2023/12/31 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux服务器 屏蔽国外IP访问及简单的防CC攻击拦截 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

屏蔽國(guó)外IP訪問

通過ssh遠(yuǎn)程登錄服務(wù)器內(nèi),運(yùn)行如下命令語句獲取國(guó)內(nèi)IP網(wǎng)段,會(huì)保存為/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 ,并設(shè)置可執(zhí)行權(quán)限( 命令: chmod +x? allcn.sh)

mmode=$1CNIP="/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?/") EOFiptables?-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)計(jì)出當(dāng)前請(qǐng)求并發(fā)大于100的IP,然后將不在白名單的IP自動(dòng)加入DROP規(guī)則

首先運(yùn)行

vi??deny_1.sh

添加以下命令語句

#!/bin/bash if?[[?-z?$1?]];thennum=100 elsenum=$1 ficd?$(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?]]; thenfor?black_ip?in?$iplistdo????????????????ip_section=`echo?$black_ip?|?awk?-F"."?'{print?$1"."$2"."$3}'`????????????????grep?-q?$ip_section?./white_ip.txtif?[[?$??-eq?0?]];then????????????????????????echo?$black_ip?>>./recheck_ip.txtelse????????????????????????iptables?-nL?|?grep?$black_ip?||?iptables?-I?INPUT?-s?$black_ip?-j?DROPecho?$black_ip?>>./black_ip.txtfidone fi

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

chmod?+x?deny_1.sh sh?deny_1.sh

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

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

首先運(yùn)行

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 添加到任務(wù)計(jì)劃,每20分鐘執(zhí)行一次:

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

注意:

  • 對(duì)于使用了百度云加速或其他cdn加速的,訪問者IP可能會(huì)是CDN節(jié)點(diǎn)IP,剛不適用此方式進(jìn)行攔截。

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

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

  • 不建議長(zhǎng)時(shí)間進(jìn)行攔截,請(qǐng)?jiān)谝欢螘r(shí)間后待服務(wù)器負(fù)載正常,攻擊基本停止后及時(shí)取消攔截,恢復(fù)原先狀態(tài)。

  • 原文鏈接:Linux服務(wù)器 屏蔽國(guó)外IP訪問及簡(jiǎn)單的防CC攻擊攔截 -西部數(shù)碼幫助中心

    總結(jié)

    以上是生活随笔為你收集整理的Linux服务器 屏蔽国外IP访问及简单的防CC攻击拦截的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。