SSH限制IP登錄與禁止多次嘗試

SSH安全是服務器運維的重中之重,實際運用中常常有些傢伙喜歡嘗試掃描破解密碼,限制登錄IP和加入嘗試密碼錯誤兩次後自動封鎖IP後會安全一些

限制IP

1 編輯/etc/hosts.allow
添加  sshd:192.168.2.1:allow 192.168.2.1是允許的IP

或者  sshd:192.168.2.:allow 192.168.2.是2段

添加  sshd:all:deny 禁止其他IP登錄  這行也可以加在/etc/hosts.deny

 

2 編輯/etc/ssh/sshd_config
添加  allowusers   [email protected] xxxx是允許的用戶名

重啓SSH

 

自動屏蔽多次嘗試密碼的用戶

寫腳本從日誌中篩選出登錄失敗2次以上的用戶添加到iptables禁止

 

腳本-網上找的。

 

#!/bin/sh #### 獲取前 1 分鐘內的 secure 記錄,統計 ssh 認證失敗的 IP 和其 失敗次數 SCANNER=`grep "$(date -d -1min|awk '{print substr($0,10,7)}')" /var/log/secure|awk '/Failed/{print $(NF-3)}'|awk -F":" '{print $NF}'|grep -v from|sort|uniq -c|awk '{print $1"="$2;}'` echo $SCANNER for i in $SCANNER do # 取認證失敗次數 NUM=`echo $i|awk -F= '{print $1}'` # 取其 IP 地址 IP=`echo $i|awk -F= '{print $2}'` echo $NUM echo $IP # 若其在失敗次數超過 2 次且之前沒有被阻斷過,那麼添加一條策略將其阻斷,並記錄日誌 if [ $NUM -gt 2 ] && [ -z "`iptables -vnL INPUT|grep $IP`" ] then iptables -I INPUT -s $IP -m state --state NEW,RELATED,ESTABLISHED -j DROP echo "`date` $IP($NUM)" >> /var/log/scanner.log fi done  #執行方式 #chmod 755 /root/jinzhiip.sh #vi /etc/crontab #*/1 * * * * root /root/jinzhiip.sh #用 crond 來運行,1 分鐘運行 1 次 #運行效果 #iptables -vnL INPUT #查看日誌#cat /var/log/scanner.log #清除所有攔截 #iptables -F
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章