<form id="jhdtt"></form>
<form id="jhdtt"></form>

<form id="jhdtt"><form id="jhdtt"></form></form>
<form id="jhdtt"><form id="jhdtt"><nobr id="jhdtt"></nobr></form></form>

          最新動態
          最新動態
          LINUX實戰:阻止遠程IP進行ssh登錄密碼猜解

          驗(一):阻止遠程IP進行ssh登錄密碼猜解

          #實驗概述:

          UPWEN公司的Web服務器最近經常受到外部的滲透測試,系統日志log里記錄了大量的遠程IP嘗試密碼猜解的方式頻繁ssh登錄Web服務器;由于Web服務器的重要性,需要通過防御手段來阻止、減少密碼頻繁猜解的動作。

          UPWEN公司的UP楠哥編寫一個腳本/tmp/checkip.sh,實現每5分鐘檢查一次,如果發現通過ssh登錄失敗次數超過10次,自動將此遠程IP放入tcp_Wrapper的黑名單中予以禁止防問,這樣可以有效的減少頻繁密碼猜解。

          接下來,我們查看如何具體實現。

          #環境描述:

          操作系統:Centos7.x、RHEL8.x。

          #具體實現:

          vim /tmp/checkip.sh 

          #!/bin/bash

          #定義休眠時間

          sleeptime=300

          #定義通過ssh登錄失敗次數

          num=10

          #定義黑名單文件

          file=/etc/hosts.deny

          #無限循環

          while true;do

          #將失敗登錄的記錄逐行讀入變量

          lastb | grep ssh|awk -F "[ ]+" '{print $3}'|uniq -c | while read conn ip;do

           #判斷失敗次數

          if  [ "$conn" -ge "$num" ];then

           #判斷記錄的IP是否存在

          egrep -q ^sshd.*$ip $file

          #如果不存在記錄,將追加記錄至指定黑名單文件

          [ $? -ne 0 ] &&  echo "sshd:$ip" >> $file

          fi

          done

          sleep $sleeptime

          done 

          #結果:

          通過終端工具進行通過ssh登錄失敗次數10次以上,達到頻繁的交互式登錄的效果。


          此時,UP楠哥所寫的shell腳本監控到非法登錄到10次以上,會把此遠程IP送到/etc/hosts.deny中,觸發了tcp_tcp_wrappers,實現無法基于ssh進行遠程登錄。

          #知識點:

          tcp_wrappers機制;

          shell腳本中的while循環;

          shell腳本中的if判斷語句;

          awk 文本處理工具。


          在線QQ客服
          開班咨詢
          考試咨詢
          服務熱線
          0532-55680853
          老師微信號
          微信公眾號
          商橋在線咨詢
          點擊咨詢