• <tbody id="ncouv"></tbody>

  • <tbody id="ncouv"><pre id="ncouv"></pre></tbody>

  • 
    <button id="ncouv"><object id="ncouv"></object></button><dd id="ncouv"></dd>

    <dd id="ncouv"><track id="ncouv"></track></dd>
    <dd id="ncouv"></dd>
    最新動態
    最新動態
    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
    老師微信號
    微信公眾號
    商橋在線咨詢
    點擊咨詢