sshd服務器搭建管理和防止暴力破解


 

1.1 Linux服務前期環境準備,搭建一個RHEL7環境

1.2 sshd服務安裝-ssh命令使用方法

1.3 sshd服務配置和管理

1.4 防止SSHD服務暴力破解的幾種方式


1.1 Linux服務前期環境準備,搭建一個RHEL7環境

注意:推薦使用centos7.4系列的系統,用RHEL也能夠php

實驗環境搭建:python

系統安裝linux

安裝RHEL7或者centos7系列的64位系統,不要用32位算法

下載地址: shell

連接: https://pan.baidu.com/s/1hsw3P1y 密碼: suu9vim

1.1.1)清空關閉防火牆

[root@xuegod63 ~]# iptables -F
[root@xuegod63 ~]# systemctl stop firewalld
[root@xuegod63 ~]# systemctl disable firewalld

1.1.2)關閉selinux狀態

[root@xuegod63 ~]# getenforce
Disabled
vim /etc/selinux/config

 

 

1.1.3)配置好靜態IP

 
 
##命令
vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
   PROXY_METHOD="none"
   BROWSER_ONLY="no"
   BOOTPROTO="static"
   DEFROUTE="yes"
   IPV4_FAILURE_FATAL="no"
   IPADDR=192.168.0.63
   GATEWAY=192.168.0.1
   DNS1=223.5.5.5
   NAME="ens32"
   UUID="5e02ab66-a084-404a-bb4c-50bf47bd1bd5"
   DEVICE="ens32"
   ONBOOT="yes"
關閉NetworkManager 服務:
##命令
service NetworkManager stop systemctl disable NetworkManager.service

 1.1.4)配置主機和ip映射關係

[root@xuegod63 ~]# vim /etc/hosts
127.0.0.1   localhostlocalhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63    xuegod63.cn     xuegod63
192.168.1.64    xuegod64.cn     xuegod64

1.1.5)修改主機名

[root@xuegod63 ~]# vim /etc/hostname
xuegod63
[root@xuegod63 ~]# hostname xuegod63  ##當即生效
xuegod63

1.1.6)配置好yum源

本地yum源centos

[root@xuegod63 ~]# mount /dev/sr0  /mnt/
[root@xuegod63 ~]# echo "/dev/sr0 /mnt iso9660 defaults 0 0" >> /etc/fstab
[root@xuegod63 ~]# rm -rf /etc/yum.repos.d/*
[root@xuegod63 ~]# cat> /etc/yum.repos.d/rhel6.repo <<EOF
> [rhel6-source]
>name=rhel6-source
>baseurl=file:///mnt
> enabled=1
>gpgcheck=0
> EOF

1.1.7)配置網絡yum源

阿里雲鏡像源站點(http://mirrors.aliyun.com/緩存

centos鏡像參考:http://mirrors.aliyun.com/help/centos
安全

CentOS服務器

1、備份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下載新的CentOS-Base.repo 到/etc/yum.repos.d/

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

1.1.8) 以後運行yum makecache生成緩存

1.1.9)安裝epel源

yum install epel-release –y

主機網卡類型:橋接


 

開機配置成: init 3 模式

[root@xuegod63 ~]# ln -svf /lib/systemd/system/runlevel3.target 
/etc/systemd/system/default.target

重啓機器生效

[root@xuegod63 ~] reboot

建立一個快照

每作一個新的服務時,使用一個全新的快照.

克隆虛擬機:

 

克隆後發現克隆的機器網卡沒法啓動,須要以下操做:

1.刪除克隆機器的網卡MAC地址

2.刪除網卡信息文件

[root@xuegod63 network-scripts]# rm -rf /etc/udev/rules.d/70-persistent-net.rules

3.重啓  reboot


1.2 sshd服務安裝 -ssh命令使用方法

SSHD服務

介紹:SSH協議:安全外殼協議.爲Secure Shell的縮寫. SSH爲創建在應用層和傳輸層基礎上的安全協議.

做用:sshd服務使用SSH協議能夠用來進行遠程控制,活在計算機之間傳送文件.

相比較以前用telnet方式來傳輸文件要安全不少,由於telnet使用明文傳輸,sshd時加密傳輸

服務安裝:

須要安裝OpenSSH四個安裝包:

OpenSSH軟件包,提供了服務端後臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程的數據.

並由此來代替原來的相似服務.

安裝包:

OpenSSH服務須要4個軟件包

openssh-5.3p1-114.el6_7.x86_64:包含OpenSSH服務器及客戶端須要的核心文件

openssh-clients-5.3p1-114.el6_7.x86_64:OpenSSH客戶端軟件包

openssh-server-5.3p1-114.el6_7.x86_64:OpenSSH服務器軟件包

openssh-askpass-5.3p1-114.el6_7.x86_64:支持對話框窗口的顯示,是一個基於X系統的密碼診斷工具

這4個福安簡報在咱們的RHEL鏡像軟件安裝包裏有.

[root@xuegod63 Packages]# ls /media/cdrom/Packages/openssh*
/media/cdrom/Packages/openssh-5.3p1-104.el6.x86_64.rpm
/media/cdrom/Packages/openssh-askpass-5.3p1-104.el6.x86_64.rpm
/media/cdrom/Packages/openssh-clients-5.3p1-104.el6.x86_64.rpm
/media/cdrom/Packages/openssh-server-5.3p1-104.el6.x86_64.rpm

找到軟件包存放位置以後,下面咱們來安裝軟件包

安裝方法有兩種:

1.2.1 配置yum源,經過

 yum install openssh openssh-clients openssh-server -y    來安裝

前提:系統以及配置好yum源,(本地源or網絡源) 推薦用yum來安裝

設置開機自動掛載系統鏡像文件

echo「/dev/cdrom   /media/cdrom   iso9660  defaults  0        0   」>>/etc/fstab
   #你的光驅設別  #掛載點      #掛在格式     #默認  #默認

1.2.2 本地直接安裝rpm包文件

rpm –ivh /media/cdrom/Packages/openssh*.rpm

可能須要解決依賴關係

確認軟件包是否已經安裝

rpm -qa | grep openssh
openssh-askpass-5.3p1-114.el6_7.x86_64
openssh-clients-5.3p1-114.el6_7.x86_64
openssh-5.3p1-114.el6_7.x86_64
openssh-server-5.3p1-114.el6_7.x86_64

查看軟件安裝生成的文件

rpm –ql openssh /etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ssh-keysign
/usr/share/doc/openssh-5.3p1

OpenSSH配置文件

OpenSSH經常使用配置文件有兩個/etc/ssh/ssh_config/etc/sshd_config

ssh_config 爲客戶端配置文件

sshd_config 爲服務器端配置文件

服務啓動和關閉腳本

 [root@xuegodssh]# service sshd restart/stop/start/status

開機啓動服務

[root@xuegod63 ~]# chkconfig sshd on

[root@xuegod63 ssh]# systemctl list-unit-files | grep sshd
sshd-keygen.service                           static  
sshd.service enabled 
sshd@.service                                 static  
sshd.socket                                   disabled

如何使用ssh來遠程鏈接主機:

方法一

1. ssh [遠程主機用戶名]@[遠程服務器主機名或IP地址]

若是用root進行登錄遠程主機能夠這樣

[root@xuegodssh]# ssh 192.168.0.64

普通用戶:

[root@xuegod63 ~]# useradd cat&&echo 123456 | passwd --stdin cat
[root@xuegodssh]# ssh cat@192.168.0.64

第一次登錄服務器時系統沒有保存遠程主機的信息,爲了確認該主機身份會提示用戶是否繼續鏈接,輸入yes後登錄,這是系統會將遠程服務器信息寫入用戶主目錄下的$HOME/.ssh/known_hosts文件中,下次再進行登錄時由於保存有該主機信息就不會再提示了.

RSA算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,可是想要對其乘積進行因式分解卻極其困難,所以能夠將乘積公開做爲加密密鑰

方法二

ssh -l [遠程主機用戶名] [遠程服務器主機名或IP地址]

例:  ssh -l cat 192.168.0.64

-l login_name


1.3 sshd服務配置和管理

介紹下配置文件,和以及須要安全調優的地方

注:參數前面有#,表示是默認值.   固然#號也表示註釋

/etc/ssh/sshd_config 配置文件

Port 22

設置sshd監聽端口號

#SSH 預設使用22 這個port, 也可使用多個port, 即重複使用 port 這個設定項目!

#例如想要開放sshd端口爲 22 和 222 ,則多加一行內容爲 : Port 222 便可.

#而後從新啓動sshd這樣就行了. 建議你們修改port number爲其餘端口. 防止別人暴力破解.

例: 修改sshd 服務器默認監聽的端口爲 222

[root@xuegodssh]#vim /etc/ssh/sshd_config
改
Port 22
爲
Port 222
[root@xuegodssh]# service sshd restart

測試:

[root@xuegod74 ~]# netstat -tlunp | grep sshd
tcp        0      0 0.0.0.0:222                 0.0.0.0:*                   LISTEN      4139/sshd
tcp        0      0 :::222                      :::*                        LISTEN      4139/sshd

修改完端口默認端口號,登錄方法:

[root@xuegod63 ~]# ssh -p 222 192.168.0.63
ListenAddress 0.0.0.0

設置sshd服務器綁定的IP地址,0.0.0.0 表示監聽全部地址

這個值能夠寫成本地IP地址也能夠寫成全部地址

Protocol 2

#選擇的 SSH 協議版本, 能夠是1 也能夠是2 , CentOS 5.x 預設是僅支持 V2.

安全考慮, 設置爲最新的協議版本

#HostKey /etc/ssh/ssh_host_key

設置包含計算機私人密鑰的文件

SyslogFacility AUTHPRIV

#當有人使用 SSH 登錄系統時, SSH 會記錄信息,這個信息要記錄的類型爲 AUTHPRIV

sshd服務日誌存放在:   /var/log/secure

例: 爲何sshd配置文件中沒有指定日誌,但日誌卻存放在了: /var/log/secure  ?

[root@xuegodssh]# vim /etc/rsyslog.conf  

#LogLevel INFO

#登記記錄的等級! INFO 級別以上

下面是安全調優的重點:

LoginGraceTime  2m      #grace 優雅

# 當使用者連上  SSH server 以後, 會出現輸入密碼的畫面, 在該畫面中

# 在多久時間內沒有成功連上 SSH server 就強迫短線! 若無單位則默認時間爲秒!

能夠根據實際狀況來修改

 

#PermitRootLogin yes

#是否容許root登入! 預設是容許的,  可是建議設定成 no !

真實的生產環境服務器,是不容許 root 帳號直接登錄的!!!

#PasswordAuthentication yes

# 密碼驗證固然是須要的! 因此這裏寫 yes, 也能夠設定爲 no

#在真實的生產服務器上,根據不一樣的安全級別要求,有的是設置不須要密碼登錄的,經過認證密鑰來登錄

#PermitEmptyPasswords no

#若上面那一項設定爲yes 的話,這一項最好設定爲 no

# 這個項目是否容許以空的密碼登入? 固然不準

#PintMotd yes

#登入後是否顯示出一些信息? 例如上次登入的時間,地點等等等,預設是yes

# 也就是打印出 /etc/motd 這個文檔的內容

例: 給sshd服務添加一些警告信息

[root@xuegod ~]# cat /etc/motd
[root@xuegod ~]# echo 'Warning ! From now on, all of your operation has been record!'> /etc/motd

測試:

ssh 192.168.0.64
root@192.168.0.64's password: 
Last login: Thu Jun 23 14:02:38 2016 from 192.168.0.1
Warning ! From now on, all of your operation has been record!

警告! 從如今開始,你全部的操做已經被記錄!

# PrintLastLog  yes

# 顯示上次登入的信息  因而也是yes 

例:

ssh 192.168.0.63
Last login: Tue Nov  4 19:57:31 2014 from 192.168.1.107  #就是這個信息

# UseDNS yes

# 通常來講, 爲了要判斷客戶端來源是否合法, 所以會使用 DNS 去反查客戶端的主機名

# 不過若是是在內網互聯, 這項目設定爲 no 會讓聯機速度比較快


 

1.4 SSHD 服務防止暴力破解

防止暴力破解的方法有三種

方法一:

配置安全的 sshd 服務

1.密碼足夠複雜,密碼的長度要大於8位最好大於20位. 密碼的複雜度是密碼要儘量有數字,大小寫字母和特殊符號混合組成

2.修改默認端口號

3.不容許root帳號直接登錄,添加普通用戶,授予root權限

互動: 是否能夠禁止 root 身份登錄? 

不行, 由於有些程序須要使用 root 身份登錄並運行.另外判斷一個用戶是否是超級管理員,看的是用戶的ID 是否爲 0.

4.  不容許密碼登錄,只能經過認證的密鑰來登錄系統

 

經過密鑰認證明現sshd認證

實驗環境:

服務端:xuegod63  IP:192.168.0.63

客戶端:xuegod64  IP:192.168.0.64

客戶端生成密鑰對, 而後把公鑰傳輸到服務器

[root@xuegod64 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
#提示輸入密匙文件的保存路徑,選擇默認繼續哈~
Enter passphrase (empty for no passphrase): 
下面要求輸入密碼,這裏的passphrase 密碼是對生成的私匙文件(/root/.ssh/id_dsa)
的保護口令,若是不設置能夠回車。
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
da:2c:d8:53:92:6e:ff:4a:54:14:cd:23:28:b3:bb:3b root@xuegod64
The key's randomart image is:
+--[ RSA 2048]----+
|         .o+     |
|      o ... +    |
|       +  .. .   |
|      .. .       |
|      o.S        |
|     +.B         |
|    . B.+        |
|     .E=         |
|      .ooo.      |
+-----------------+
root@xuegod64 ~]# cd /root/.ssh/
[root@xuegod64 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts

發佈公鑰到服務器

使用ssh-copy-id 命令將客戶端生成的公鑰發佈到遠程服務器 192.168.0.63  xuegod63

[root@xuegod64 .ssh]# ssh-copy-id -i 192.168.0.63
The authenticity of host '192.168.0.63(192.168.0.63)' can't be established.
RSA key fingerprint is d9:17:d7:db:38:7c:e8:56:9c:4b:7e:00:7f:9e:1c:74.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.64' (RSA) to the list of known hosts.
root@192.168.0.64's password: 
Now try logging into the machine, with "ssh '192.168.0.63'", and check in:

  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting
#這個時候能夠經過ssh 無密鑰直接登錄主機

注意: 若是服務器不是監聽 22 端口, 則須要這樣傳輸密鑰:

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 222 root@192.168.0.63"

 

方法二: 經過開源的防禦軟件來防禦安全

簡單,靈活,功能強大

實戰背景:

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

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

#ban bæn)禁令

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

注:重啓iptables服務的話,全部DORP將重置。

下載軟件包:

官方地址:

http://www.fail2ban.org

http://www.fail2ban.org/wiki/index.php/Downloads

 

安裝:

互動:

這個陌生的安裝包如何安裝?

解壓查看readme文件

[root@xuegod63 ~]# tar  -zxvf fail2ban-0.8.14.tar.gz
[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

相關主要文件說明:

/etc/fail2ban/action.d    #動做文件夾, 內含默認文件. iptables以及mail等動做設置

/etc/fail2ban/fail2ban.conf  #定義了fai2ban日誌級別,日誌位置及sock文件位置

/etc/fail2ban/filter.d     #條件文件夾, 內含默認文件, 過濾日誌關鍵內容設置

 

/etc/fail2ban/jail.conf     #主要配置文件,模塊化. 主要設置啓用ban動做的服務及動做閾值

# jail   [dʒeɪl]監獄

 

生成服務啓動腳本

[root@xuegod63 fail2ban-0.8.14]# pwd
/root/fail2ban-0.8.14
[root@xuegod63 fail2ban-0.8.14]# cp files/redhat-initd /etc/rc.d/init.d/fail2ban   
[root@xuegod63 fail2ban-0.8.14]#chkconfig --add fail2ban  #開機自動啓動

互動: 你怎麼知道要複製這個文件? 一個新的軟件包,後期怎麼能夠知道哪一個文件是啓動腳本文件?

這就要找服務器啓動腳本的文件中有什麼特色,而後過濾處理啊對應的文件名那個

[root@xuegod63 fail2ban-0.8.14]# grep chkconfig ./* -R --color
./files/redhat-initd:# chkconfig: - 92 08

啓動腳本里都含有 chkconfig 字段

應用實例

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

由於動做文件(action.d/iptables.conf)以及日誌匹配條件文件(filter.d/sshd.conf )安裝後是默認存在的。基本不用作任何修改。全部主要須要設置的就只有jail.conf文件。啓用sshd服務的日誌分析,指定動做閥值便可。

實例文件/etc/fail2ban/jail.conf及說明以下:

[DEFAULT]                    #全局設置
ignoreip = 127.0.0.1/8         #忽略的IP列表,不受設置限制
bantime  = 600               #屏蔽時間,單位:秒
findtime  = 600               #這個時間段內超過規定次數會被ban掉
maxretry = 3                  #最大嘗試次數
backend = auto              #日誌修改檢測機制(gamin、polling和auto這三種)

[ssh-iptables]                 #單個服務檢查設置,如設置bantime、findtime、maxretry和全局衝突,服務優先級大於全局設置。
enabled  = true               #是否激活此項(true/false)修改爲 true
filter   = sshd                #過濾規則filter的名字,對應filter.d目錄下的sshd.conf
action   = iptables[name=SSH, port=ssh, protocol=tcp]             #動做的相關參數,對應action.d/iptables.conf文件
sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.c
om, sendername="Fail2Ban"]    #觸發報警的收件人
logpath  = /var/log/secure     #檢測的系統的登錄日誌文件。這裏要寫sshd服務日誌文件。 默認爲logpath  = /var/log/sshd.log

#5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時。 配置以下 bantime
= 3600         #禁止用戶IP訪問主機1小時 findtime = 300         #在5分鐘內內出現規定次數就開始工做 maxretry = 3           #3次密碼驗證失敗

啓動服務

[root@xuegod63 fail2ban-0.8.14]# systemctl start fail2ban 
[root@xuegod63 fail2ban-0.8.14]# systemctl enable fail2ban 

測試:

[root@xuegod63 fail2ban]# > /var/log/secure  #清日誌。 從如今開始
[root@xuegod63 fail2ban]# systemctl restart fail2ban
Stopping fail2ban:                                         [  OK  ]
Starting fail2ban:                                         [  OK  ]
[root@xuegod63 fail2ban]# iptables -L -n

會多生成一個規則鏈

測試: 故意輸入錯誤密碼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
[root@www.linuxidc.com ~]# iptables -L |tail -4
Chain fail2ban-SSH (1 references)
target     prot opt source               destination
DROP       all  --  192.168.7.142        anywhere
RETURN     all  --  anywhere             anywhere
#配置好以後咱們檢測下fail2ban是否工做。
[root@xuegod63 fail2ban]# fail2ban-client status
Status
|- Number of jail: 1 `- Jail list: ssh-iptables
#具體看某一項的狀態也能夠看,若是顯示被ban的ip和數目就表示成功了,若是都是0,說明沒有成功。
[root@xuegod63 fail2ban]# fail2ban-client status ssh-iptables
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.64 
   `- Total banned:    1
查看fail2ban的日誌可以看到相關的信息
[root@xuegod63 fail2ban]# tail /var/log/fail2ban.log
2015-03-03 19:43:59,233 fail2ban.actions[12132]: WARNING [ssh-iptables] Ban 192.168.1.64

須要注意的四點:

1.若是作錯了,想清空一下記錄,還原:

只須要 > /var/log/secure  清空就能夠了

service  fail2ban  restart 

 

2.另外若是後期須要把iptables清空或iptables重啓後,也須要把fail2ban重啓一下

3.若是修改ssh默認端口 22 爲2015後. 配置fail2ban來監控sshd服務

須要修改配置文件

[root@xuegod63 fail2ban]# vim jail.conf
#修改iptables動做中的端口號。 默認爲ssh。 
改:port=ssh 爲 port=2015

[root@xuegod63 fail2ban]# vim /etc/fail2ban/action.d/iptables.conf  
#修改動做文件中默認端口號。
改: port=ssh 爲port=2015

重啓服務便可

4.若是想要fail2ban發送告警郵件, 請確保系統的郵件服務可以正常發送郵件

能夠發一封測試郵件

echo 「test mail」|mail -s test cat@xuegod.cn

補充:

經過shell 腳原本防止暴力破解ssh

1. 經過自定義的shell腳原本防禦安全

2. 經過 pam 模塊來防止暴力破解 ssh

[root@xuegod63 ~]# vim /etc/pam.d/sshd
在第一行下面添加一行:
auth    required    pam_tally2.so    deny=3    unlock_time=600 even_deny_root root_unlock_time=1200

說明:嘗試登錄失敗超過3次,普通用戶600秒解鎖,root用戶1200秒解鎖

手動解除鎖定:
查看某一用戶錯誤登錄次數:
pam_tally –-user
例如,查看work用戶的錯誤登錄次數:
pam_tally –-user work
清空某一用戶錯誤登錄次數:
pam_tally –-user –-reset
例如,清空 work 用戶的錯誤登錄次數,
pam_tally –-user work –-reset 

 

3. denyhosts 軟件防禦

當咱們的服務器對外提供服務的時候,不免的會受到其餘用戶的掃描和試圖登陸的操做,以侵入服務器,這樣不只會浪費系統的資源,有可能還會被其餘用戶進行N屢次嘗試後登陸系統,對系統形成破壞影響業務系統的正常運行。DenyHosts是一個使用python編寫的腳本文件,經過運行這個腳本(能夠經過命令行運行、計劃任務或者是做爲服務運行)能夠有效的阻止對SSH服務器的攻擊。

DenyHosts具備以下特性:

1. 對/var/log/secure日誌文件進行分析,查找全部的登陸嘗試,而且過濾出失敗和成功的嘗試。

2.記錄下全部失敗的登陸嘗試的用戶名和主機,若是超過閥值,則記錄主機。

3.保持對每個登陸失敗的用戶(存在系統中或不存在系統中的用戶)的跟蹤

4.對每個可疑的登陸進行跟蹤。(雖然登陸成功,可是有不少次登陸失敗的記錄)

5.將可疑地址的主機加入到/etc/hosts.deny文件中。

相關文章
相關標籤/搜索