日常實用指令碼整理

天府雲創發表於2017-03-10

一、拒絕超過n次登陸的ip進行ssh連線

結合/var/log/secure檔案,將ssh登陸失敗次數大於N的IP封頂

N=3
SEC_FILE=/var/log/secure
for ip in `grep "Failed password" $SEC_FILE|grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|awk '{if($1>$N) print $2}'`
do
iptables -A INPUT -s $ip -p tcp --dport 22 -j DROP

done


二、CentOS7防止惡意破解root賬戶的指令碼

#!/bin/bash
#Denyhosts SHELL SCRIPT
#2017-01-24
#
#When a IP is accessed 50 times through sshd, it is written to the hosts.deny file, 
#which prohibits the IP from connecting to the host via sshd
#
#Add to timing task

cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2"="$1;}' > /root/black.txt

DEFINE=50
for i in $(cat /root/black.txt)
do
    IP=$( $i | awk -F'=' '{print $1}')
    NUM=$( $i | awk -F'=' '{print $2}')
    if [$NUM -gt $DEFINE]; then
        grep $IP /etc/hosts.deny > /dev/null
        if [$? -gt 0];then
            echo "sshd:$IP" >> /etc/hosts.deny
        fi
    fi
done

【未完待續…】

相關文章