本指令碼學習與阿銘的指令碼課程。
用於防止公司**被ddos攻擊時,封禁「」肉機「」 的ip位址。
共分為以下步驟:
1、每分鐘分析一次訪問日誌/data/logs/access_log。
2、把訪問量超過100的ip給封掉。
3、將封過的ip位址全部記錄到乙個日誌log中。
4、每隔一段時間檢查一次被封的ip,將不在超過100的訪問的ip解封。
5、解封的ip記錄到另外的日誌中。
#!/bin/bash
#日期:2023年10月17日
#版本:v0.1
t1='date -d "-1 min " +%y:%h:%m'
log=/data/logs/access_log
block_ip()
' /tmp/_last_min.log | sore -n | uniq -c | awk '$1>100 ' > /tmp/bad_ip.list
#計算ip的數量
n=`wc -l /tmp/bad_ip.list | awk ''`
#當ip數大於0時,才會用iptables封掉。
if [ $n -ne 0 ]
then
for ip in `cat /tmp/bad_ip.list`
do iptables -i input -s $ip -j rejct
done
#將這些被封的ip記錄到日誌裡
echo "`date` 封掉的ip有: " >> /tmp/black_ip.log
echo /tmp/bad_ip.list >> /tmp/black_ip.log
fi}unblock_ip ()
' > /tmp/good_ip.list
n=`wc -l /tmp/good_ip.list | awk ''`
if [ $n -ne 0 ]
then
for ip in `cat /tmp/good_ip.list`
doiptables -d input -s $ip -j reject
done
echo "`date` 解封的ip有:" >> /tmp/unblock_ip.log
cat /tmp/good_ip.list >> /tmp/unblock_ip.log
fi#當解封完白名單ip後,將計數清零,進入下乙個計數週期
iptables -z
}#取當前時間的分鐘數
t=`date +%m`
#當分鐘數內為00或者30時(即每隔30分鐘),執行解封ip的函式,其他時間執行解封ip的函式。
if [ $t == "00" ] || [ $t == "30" ]
then
unblock_ip
block_ip
else
block_ip
fi
使用iptables自動封IP的Shell指令碼
此指令碼用於分析統計secure日記檔案,對ssh登入錯誤次數較多的ip用iptables封掉,可以防止ssh被暴力破解。bin bash created by tenji in 2014 10 22 num 10 上限 for i in awk failed var log secure sort...
Shel 檢測合法的IP位址
0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 1.利用電腦ip測試下 ifconfig grep color o 0 9 1 9 0 9 1 0 9 2 0 4 0 9 25 0 5 0 9 1 9 0 9...
MAC位址與IP位址的區別
介紹一下mac位址的知識,mac位址和ip位址的區別以及mac位址在實際應用中所涉及到的安全問題。一 基礎知識 如今的網路是分層來實現的,就像是搭積木一樣,先設計某個特定功能的模組,然後把模組拼起來組成整個網路。區域網也不例外,一般來說,在組網上我們使用的是ieee802參考模型,從下至上分為 物理...