centos7防暴力破解五種方法

 

  什麼是暴力破解,簡單來講就是對一個服務器進行無數次嘗試登錄,並用不一樣的密碼進行登錄直到能夠登錄成功。暴力破解的基本步驟能夠分爲如下幾步:      html

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

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

      3.開始暴力破解 :  通常root      破解你的密碼  登陸你的機器   破壞      盜取你的重要的數據vim

  對於這種狀況咱們有如下5種解決辦法:centos

  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下的)bash

  1. 將密碼設置複雜服務器

    密碼的複雜度必定要較高點,儘可能經過密鑰登錄,這裏介紹個密碼生成工具:pwgen(需安裝,用yum安裝下就能夠了)ssh

   pwgen的一些參數tcp

參數
功能描述
-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的使用以及防暴力破解與郵件預警

相關文章
相關標籤/搜索