1、編寫腳本/root/bin/checkip.sh,每5分鐘檢查一次,如果發(fā)現(xiàn)通過ssh登錄失敗 次數(shù)超過10次,自動(dòng)將此遠(yuǎn)程IP放入Tcp Wrapper的黑名單中予以禁止防問。
- 若只是5分鐘去統(tǒng)計(jì)一次總的連接失敗次數(shù),用以下腳本
[root@centos7 ~]# cat checkip2.sh
#!/bin/bash
while true;do
awk '/sshd.*Failed password/{
ip[$(NF-3)]++
}END{
for(i in ip){
if(ip[i]>=10){ #大于10次的,記錄到TCP Wrapper黑名單中
system("echo sshd:"i" >> /etc/hosts.deny")
}
}
}' /var/log/secure
sleep 300
done
- 若是5分鐘去統(tǒng)計(jì)一次在5分鐘之內(nèi)的連接失敗次數(shù),可用以下腳本
[root@centos7 ~]# cat checkip.sh
#!/bin/bash
while true;do #循環(huán)
month=$(date +%b) #獲取當(dāng)前月份,如Jan
day=$(date +%-d) #獲取當(dāng)前日,如7
hour=$(date +%H) #獲取當(dāng)前小時(shí),如11
minute=$(date +%M) #獲取當(dāng)前分鐘
awk '/sshd.*Failed password/{ #awk取失敗連接的行
if("'$month'" == $1 && "'$day'" == $2){ #只處理當(dāng)月當(dāng)天的數(shù)據(jù)
split($3,array,":") #將日志中的時(shí)間分割 如11:40:50
if("'$hour'" == array[1]){ #在當(dāng)前小時(shí)內(nèi)的數(shù)據(jù)
if("'$minute'" - array[2] < 5){ #5分鐘內(nèi)的數(shù)據(jù)
ip[$(NF-3)]++; #統(tǒng)計(jì)
}
}else{ #不在當(dāng)前小時(shí)內(nèi)的數(shù)據(jù),主要是當(dāng)前小時(shí)大于日志記錄的時(shí)間
if("'$minute'" + 60 - array[2] < 5){ #跨小時(shí)了但在5分鐘之內(nèi),如從11:59到12:03
ip[$(NF-3)]++;
}
}
}
}END{
for(i in ip){
if(ip[i]>=10){ #大于10次的,記錄到TCP Wrapper黑名單中
system("echo sshd:"i" >> /etc/hosts.deny")
}
}
}' /var/log/secure
sleep 300 #每5鐘循環(huán)一次
done
2、配置magedu用戶的sudo權(quán)限,允許magedu用戶擁有root權(quán)限
編輯sudoers文件vim /etc/sudoers,添加magedu ALL=(ALL) ALL 行配置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
magedu ALL=(ALL) ALL
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。