Linu防止 系統暴力破解

              運維與***的對抗之暴力破解篇python

 

通常來說,***若是要進行暴力破擊必需要通過三個步驟linux

1. 知道外網IP,並掃描端口號vim

2. 猜想所掃描的端口號屬於linux服務器仍是windows服務器,並由此得出服務器的經常使用用戶名windows

3. 暴力破解開始bash

  

運維VS***服務器

防範措施:運維

方法1: ssh

一、密碼足夠複雜:tcp

密碼的長度要大於8位最好大於14位密碼的複雜度是密碼要儘量有數字、大小寫字母和特殊符號混合組成ide

字典庫:密碼長度20位

二、修改默認端口號  

 [root@xuegod63 ~]# rpm -ivh /mnt/test/Packages/nmap-5.21-4.el6.x86_64.rpm

[root@xuegod63 ~]# nmap 192.168.1.63  #掃描服務開放了哪些端口

Starting Nmap 5.21 () at 2015-05-18 09:48 CST

Nmap scan report for xuegod63.cn (192.168.1.63)

Host is up (0.000027s latency).

Not shown: 998 closed ports

PORT    STATE SERVICE

22/tcp  open  ssh

111/tcp open  rpcbind

 

Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds

 

將默認端口號22改成:???

[root@xuegod63 ~]# vim /etc/ssh/sshd_config

Port 22

爲:Port 81

[root@xuegod63 ~]# /etc/init.d/sshd restart

Stopping sshd:                                             [  OK  ]

Starting sshd:                                             [  OK  ]

 

再次掃描:

[root@xuegod63 ~]# nmap 192.168.1.63

Starting Nmap 5.21 (1) at 2015-05-22 21:13 CST

Nmap scan report for xuegod63.cn (192.168.1.63)

Host is up (0.000019s latency).

Not shown: 998 closed ports

PORT    STATE SERVICE

81/tcp  open  hosts2-ns

111/tcp open  rpcbind

 

 

測試:

[root@xuegod63 ~]# ssh root@192.168.1.63

ssh: connect to host 192.168.1.63 port 22: Connection refused

正確的方法:

[root@xuegod63 ~]# ssh root@192.168.1.63 -p 81

注:改端口號的目的是爲了加大***判斷服務器是否爲linux的難度

 

三、不使用root用戶名登陸

不使用用戶名爲root的賬號登陸系統,可是要得到root超級管理員權限。

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

 

例:建立一個普通賬號

[root@xuegod63 ~]# useradd top

[root@xuegod63 ~]# echo 123456 | passwd --stdin top

Changing password for user top.

passwd: all authentication tokens updated successfully.

[root@xuegod63 ~]# vim /etc/passwd

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

爲:root:x:0:0:root:/sbin/nologin   #不讓root登陸系統

 

改:top:x:500:500::/home/top:/bin/bash

爲:top:x:0:0::/home/top:/bin/bash  #改ID500爲0,top就成root身份

 

測試:

[root@xuegod63 ~]# ssh root@192.168.1.63 -p 81   #root登陸不成功

root@192.168.1.63's password: 123456

Last login: Sun May 10 09:43:55 2015 from xuegod63.cn

This account is currently not available.

Connection to 192.168.1.63 closed.

 

[root@xuegod63 ~]# ssh top@192.168.1.63 -p 80

top@192.168.1.63's password:

Last login: Sun May 10 09:49:02 2015 from xuegod63.cn

 

[root@xuegod63 ~]# whoami   #查看當前登陸系統的用戶名

root

[root@xuegod63 ~]# id top

uid=0(root) gid=0(root) groups=0(root)

以上三種方法:

一、密碼足夠複雜:

二、修改默認端口號

三、不使用root用戶名登陸

通常狀況這個就能夠解決了暴力破解的問題了。

 

可是事實上仍是會有些***,只作暴力破解,並無抱着可以破解成功的打算,持續***是其主要目的

 

咱們來看這樣一個場景:

最近公網網站一直被別人暴力破解sshd服務密碼。雖然沒有成功,但會致使系統負載很高,緣由是在暴力破解的時候,系統會不斷地認證用戶,從而增長了系統資源額外開銷,致使訪問公司網站速度很慢。

fail2ban能夠監視你的系統日誌,而後匹配日誌的錯誤信息(正則式匹配)執行相應的屏蔽動做(通常狀況下是防火牆),並且能夠發送e-mail通知系統管理員,很好、很實用、很強大!

 

fail2ban運行機制:簡單來講其功能就是防止暴力破解。工做的原理是經過分析必定時間內的相關服務日誌,將知足動做的相關IP利用iptables加入到dorp(丟棄)列表必定時間。 

 

應用實例

設置條件:ssh遠程登陸5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時,1小時該限制自動解除,此IP能夠從新登陸。

 

 

下載軟件包: fail2ban-0.8.14.tar.gz

還原環境:

[root@xuegod63 ~]# vim /etc/passwd

改:root:x:0:0:root:/root:/sbin/nologin

爲:root:x:0:0:root:/root:/bin/bash

 

[root@xuegod63 ~]# vim /etc/ssh/sshd_config

改:Port 81

爲:Port 22

 [root@xuegod63 ~]# service sshd restart

Stopping sshd:                                             [  OK  ]

Starting sshd:                                             [  OK  ]

 

 

上傳軟件包fail2ban到linux服務器上:

安裝:fail2ban

[root@xuegod63 ~]# tar  -zxvf fail2ban-0.8.14.tar.gz

[root@xuegod63 fail2ban-0.8.14]# cd fail2ban-0.8.14

[root@xuegod63 fail2ban-0.8.14]# vim README.md  #查看如下內容

 

須要安裝python開發環境,而且版本要大於2.4

查看當前系統中python的版本:

[root@xuegod63 fail2ban-0.8.14]# python -V

Python 2.6.6

安裝:

[root@xuegod63 ~]# cd fail2ban-0.8.14

[root@xuegod63 fail2ban-0.8.14]#python setup.py install


生成服務啓動腳本:

[root@xuegod63 fail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban

[root@xuegod63 fail2ban-0.8.14]# chkconfig --add fail2ban

[root@xuegod63 fail2ban-0.8.14]# chkconfig  --list fail2ban

fail2ban       0:off1:off2:off3:on4:on5:on6:off

 

 

企業級實戰案例:

設置條件:ssh遠程登陸5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時,1小時該限制自動解除,此IP能夠從新登陸。

 

[root@xuegod63 ~]# vim /etc/fail2ban/jail.conf  #改如下紅色標記內容

[ssh-iptables]

 

enabled  = true

filter   = sshd

action   = iptables[name=SSH, port=ssh, protocol=tcp]

           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]

logpath  = /var/log/secure

findtime  = 300

maxretry = 3

bantime  = 3600

 

註釋:

enabled  = true  #是否激活此項(true/false)修改爲 true

logpath  = /var/log/secure #檢測的系統的登錄日誌文件。這裏要寫sshd服務日誌文件。

#完成:5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時。 配置以下

findtime  = 300  #在5分鐘內內出現規定次數就開始工做,默認時間單位:秒

maxretry = 3    #3次密碼驗證失敗

bantime  = 3600         #禁止用戶IP訪問主機1小時   

 

啓動服務:

[root@xuegod63 fail2ban-0.8.14]#service fail2ban start

Starting fail2ban:                                         [肯定]

 

[root@xuegod63 ~]# ssh root@192.168.1.63  #只有密碼對, 就能夠正常登陸

root@192.168.1.63's password:

Last login: Wed May  6 14:58:02 2015 from xuegod63.cn

[root@xuegod63 ~]#

 

測試:故意輸入錯誤密碼3次,再進行登陸時,會拒絕登陸

[root@xuegod64 ~]# ssh 192.168.1.63

root@192.168.1.63's password:

Permission denied, please try again.

root@192.168.1.63's password:

Permission denied, please try again.

root@192.168.1.63's password:

Permission denied (publickey,password).

[root@xuegod64 ~]# ssh 192.168.1.63

ssh: connect to host 192.168.1.63 port 22: Connection refused

 

哪臺機器在暴力破解你的服務器?

 

查看fail2ban服務運行狀態:

[root@xuegod63 fail2ban]# fail2ban-client status  #配置好以後咱們檢測下fail2ban是否工做

Status

|- Number of jail:1

`- Jail list:ssh-iptables

 

[root@xuegod63 fail2ban]# fail2ban-client status ssh-iptables  

#具體看某一項的狀態也能夠看,若是顯示被ban的ip和數目就表示成功了,若是都是0,說明沒有成功。

Status for the jail: ssh-iptables

|- filter

|  |- File list:/var/log/secure

|  |- Currently failed:0

|  `- Total failed:3

`- action

   |- Currently banned:1

   |  `- IP list:192.168.1.63

   `- Total banned:1

 

總結:

一、密碼足夠複雜:

二、修改默認端口號

三、不使用root用戶名登陸

通常狀況這個就能夠解決了暴力破解的問題了。

四、使用fail2ban防止SSHD服務被暴力破解

相關文章
相關標籤/搜索