centos7防暴力破解五種方法


 

  什么是暴力破解,簡單來說就是對一個服務器進行無數次嘗試登陸,並用不同的密碼進行登陸直到可以登陸成功。暴力破解的基本步驟可以分為以下幾步:      

      1. 找到對應的linux服務器    Ip地址

      2.掃描端口號:22    nmap掃描端口

      3.開始暴力破解 :  一般root      破解你的密碼  登錄你的機器   破壞      盜取你的重要的數據

  對於這種情況我們有以下5種解決辦法:

  1. 將密碼設置復雜,長度大於8位或者最好大於14位,密碼的復雜度:由大小寫字母以及字符和數字組成。 0-9  a-z  A-Z  @!#$%*. 等等。
  2. 更改端口號,默認的端口是sshd(22),修改默認端口號。
  3. 不用root用戶登陸(禁止root用戶登陸),使用其他用戶登陸並且擁有root用戶權限。
  4. sshd服務,直接編寫腳本檢查/var/log/secure 內登錄失敗次數超過某個閾值的ip並將它添加到/etc/hosts.denyfail2ban的優點更多

  5. 使用fail2ban,起到登錄失敗多次后直接禁止某個時間段此ip登陸。

接下來我們對於上面的五種方法進行一一講解演示(以下的操作環境是在centos7下的)

  1. 將密碼設置復雜

    密碼的復雜度一定要較高點,盡量通過密鑰登陸,這里介紹個密碼生成工具:pwgen(需安裝,用yum安裝下就可以了)

   pwgen的一些參數

參數
功能描述
-c
密碼里面包含至少一個大寫字母
-A
密碼里面不包含大寫字母
-n
密碼里面至少包含一個數字。
-0
密碼中不包含數字
-y
密碼中至少包含一個特殊字符。
-s
生成安全隨機的密碼
-B
密碼中不包含混淆的字符,例如“1”和“I”
-h
查看幫助信息
-H
使用指定文件sha1哈希生成,不適用隨機生成
-C
按列打印生成的隨機密碼
-1
每行輸出一個密碼,不按列打印生成密碼
-v
密碼不包括元音字母或者可能被誤認為是元音字母的數字

 

  示例:

 1 [root@vultr ~]# pwgen -c -n -y -1  12 10 #意思是生成密碼長度為12的包含至少一個大寫字母和至少一個數字和至少一個特殊字符的10個密碼,並分行顯示。
 2 Adee,lu8laem  3 Liev0wa=o5ai  4 juP[ae[xi2ae  5 eequ@oo4EeLu  6 GeeBaeXo9on/
 7 ohm5As;ohthi  8 ahtai1AhZee+
 9 Aiwi"moor7bu
10 UheiPh<i3aad 11 ira^v2ooLai8

  2. 更改端口號

  我們使用的sshd服務的配置文件是在/etc/ssh/sshd_config,我們只需要將端口更改下就行了。

vim /etc/ssh/sshd_config

  更改完之后我們需要將我們的82端口開放下。

firewall-cmd --add-port=82/tcp --permanent firewall-cmd --reload

  然后重啟sshd服務即可:

systemctl restart sshd

  訪問的時候我們需要加上我們的端口號。

ssh -p82  192.168.1.121

我們可以用nmap 掃描下我們的我們服務器看看哪些端口開放着。

[root@localhost ~]# nmap 192.168.1.121 Starting Nmap 6.40 ( http://nmap.org ) at 2018-01-03 14:53 CST
Nmap scan report for li155.members.com (192.168.1.121) Host is up (0.070s latency). Not shown: 998 filtered ports PORT STATE SERVICE 22/tcp closed ssh
82/tcp open xfe

可以看到雖然我們82端口被掃描出來了,但是是不知道它是sshd服務的。

  3. 禁止root用戶登陸

  1. 不使用root用戶名登陸,這樣root不知道你的管理員用戶的用戶名,這樣也加大了暴力破解力度。

    注:判斷一個用戶是不是超級管理員,看的是用戶的ID是否為0。

    例:創建一個普通帳號,修改ID為0 然后變成超級管理權限

    創建一個用戶后

    vim /etc/passwd

    改:root:x:0:0:root:/root:/bin/bash

    為:root:x:0:0:root:/sbin/nologin   #不讓root登錄系統

 

    改:djx:x:1000:1000::/home/djx:/bin/bash

    為:djx:x:0:0::/home/djx:/bin/bash  #改ID500為0,cd就成root身份

    注:centos7普通用戶id是從1000開始,centos7以前的普通用戶id是從500開始。

    然后我們可以使用djx登陸,會發現它擁有root的權限。

     

    我們登陸的家目錄是djx家目錄,用戶djx是具有管理員權限,可以在root下創建目錄。

  4. 編寫腳本檢查/var/log/secure訪問日志文件。

  思路:通過統計日志文件中的登陸失敗的ip,並將達到閾值的ip添加到/etc/hosts.deny來拒絕某個ip的再次訪問。

   腳本:之前寫的,比較low。

 1 #!/bin/bash  2 ######################################################  3 # $Name: protect_ssh  4 # $Version:     v1.0
 5 # $Function: Prevent SSH from being hacked  6 # $Author: djx  7 # $Create Date: 2017-11-22
 8 # $Description: shell  9 ####################################################### 10 #SSH配置文件所在位置 11 SSH_config='/etc/hosts.deny'
12 #ssh 日志文件位置 13 SSH_log='/var/log/secure'
14 #記錄嘗試登陸超過15次且未登陸成功的ip,以及添加進黑名單的時間日志 15 Deny_log='/var/lib/ssh_shell/ssh_deny.log'
16 #儲存所有ip及訪問次數文件 17 Visit_ip='/var/lib/ssh_shell/ssh_visit.txt'
18 #超過設置下面次數將被添加進黑名單 19 Visit_number=60
20 #檢查ssh日志文件是否存在 21 if [ ! -e $SSH_log ] 22 then
23         echo -e "\033[41;37m ssh 日志文件不存在 請檢查原因 \033[0m"
24 exit 1
25 fi
26 
27 if [ ! -e "$SSH_config.bak" ] 28 then
29     cp $SSH_config $SSH_config.bak 30     if [ $? -eq 0 ] 31     then
32         echo " 備份文件成功" >>$Deny_log 33     else
34         echo  -e"\033[41;37m ssh備份文件不成功 \033[0m"
35     exit 2
36     fi
37 else
38     echo " 已有備份文件 " >>$Deny_log 39 fi
40 
41 cat $SSH_log |awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{ print $2"==="$1}' > $Visit_ip 42 echo "---------$(date +%F_%T)------------" >>$Deny_log 43 
44 for VI  in  $(cat $Visit_ip) 45 do
46         Number=$(echo $VI |awk -F=== '{print $2}') 47         IP=$(echo $VI |awk -F=== '{print $1}') 48         if  [ $Number -gt $Visit_number ] 49         then
50                 grep $IP "$SSH_config" >/dev/null
51                 if [ $? -ne  0 ] 52                 then
53                     echo " sshd:$IP:deny" >>$SSH_config 54                     echo "$IP " >>$Deny_log 55                 fi
56         fi
57 
58 done

 

    5. 使用fail2ban

      見文章:fail2ban的使用以及防暴力破解與郵件預警

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM