預防利用ssh暴力破解linux用戶

前言

之前買的騰訊雲服務器,總是收到提醒被其它的ip攻擊試圖破解。老夫實在是忍無可忍,自己在網上參考了一篇教程,就總結了下,防止ssh暴力破解linux用戶,將試圖入侵的ip達到一定次數就放入黑名單中。還是提醒一句吧,這裏是基於root用戶登錄講解的。當然了你自己的雲服務器,肯定是用root用戶登錄的。

分配文件基本權限時核心原則:在最小權限情況下能實現要求即可

區別:root用戶登錄的是#符號,普通用戶登錄的用戶是$符號。

延伸閱讀
linux系統管理之系統資源查看
linux系統管理之系統定時任務

正文

一、首先看一下awk命令記錄黑名單

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

二、編輯腳本通過for循環過濾出登錄錯誤超過指定次數的ip

編輯你的腳本:vim /usr/local/bin/secure_ssh.sh

#! /bin/bash
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort|uniq -c
| awk '{print $2"="$1;}' > /opt/black_ip/black.list
# DEFINE=1,代表你設置的允許嘗試登錄次數爲1次,根據自己的需求設置
DEFINE="1"
for i in `cat /opt/black_ip/black.list`
do
   IP=`echo $i|awk -F= '{print $1}'` # 過濾的ip地址
   NUM=`echo $i|awk -F= '{print $2}'` # 過濾的ip嘗試登錄的次數
   if [[ ${NUM} -gt ${DEFINE} ]]; then
        grep $IP /etc/hosts.deny > /dev/null 
        if [ $? -gt 0 ];then
        	 # 你可以把你常用的ip放入host.allow文件白名單,hosts.deny對應的就是黑名單
             echo "sshd:$IP:deny" >> /etc/hosts.deny 
        fi
    fi
done

思來想去還是加上一些註釋,便於理解。

三、賦予執行權限

權限目錄的作用

  • r:查詢目錄下的文件(ls目命令)
  • w:修改目錄的權限。例如:新建,刪除,重命名,剪切,複製文件和目錄(touch,rm,mv,cp
  • x:進入目錄(cd

chmod 777(慎重賦予最高權限) 【文件】,這裏就不詳細講基本權限了,後續會出相關的文章。
每一位對應的含義

  • 第1個7代表所有者
  • 第2個7代表所屬組
  • 第3個7代表other

使用chmod 755 secure_ssh.sh 命令賦予讀與執行的權限。

對文件來講:最高權限爲x(執行);對目錄來講:最高權限爲w(寫)。

這裏再囉嗦一遍,分配文件基本權限時核心原則:在最小權限情況下能實現要求即可

四、循環執行腳本

先看看*代表的意義

* * * * * 執行的任務 ," * "的含義如下表所示:

內容 含義 範圍
第一個“ * ”號 一小時當中的第幾分鐘 0-59
第二個“ * ”號 一天當中的第幾小時 0-23
第三個“ * ”號 一個月當中的第幾天 1-31
第四個“ * ”號 一年當中的第幾個月 1-12
第五個“ * ”號 一週當中的星期幾 0-7(0和7都代表星期日)

再看看一些符號代表的含義

  • “ * ” :代表任意時間 例如:第一個“ * ” 每分鐘執行一次命令
  • “ , ”: 代表不連續的時間 例如:“ 0 9,12,15 * * * 命令” 每天的9:00,12:00,15:00都執行一次命令
  • “ - ": 代表連續的時間範圍 例如:“0 8 * * 1-6 命令” 每週一到週六的上午8點執行命令
  • “ * /n ”:代表每隔多久執行一次 例如:“*/7 * * * *命令” 每隔7分鐘執行一遍命令

設置每分鐘執行一次

*/1 * * * *   /usr/local/bin/secure_ssh.sh

第一種方式:使用crontab -e設置循環執行腳本
crontab -e,設置每隔1分鐘執行一次

*/1 * * * *   /usr/local/bin/secure_ssh.sh

第二種方式:編輯rc.local,將命令寫入:

vim /etc/rc.local
*/1 * * * *   /usr/local/bin/secure_ssh.sh

尾聲

上面的方法雖然可行的,但是不推薦第一種方式。建議使用第二種方式將命令放入rc.local文件裏面,隨着服務器的啓動命令跟着執行。好了,到此爲止就是此篇文章的全部內容了,能看到這的都是帥哥靚妹啊!!!祝在座的各位客官們鼠年大吉,“鼠”不盡的快樂!“鼠”不盡的收穫!“鼠”不盡的鈔票!“鼠”不盡的笑容!“鼠”不盡的幸福!“鼠”不盡的甜蜜!“鼠”不盡的激情!“鼠”不盡的活力!“鼠”不盡的健康!“鼠”不盡的帥哥!“鼠”不盡的美女!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章