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

1 ??清空關閉防火墻

由于前期尚未學習“防火墻”為了不受到防火墻影響實驗的順利進行颓芭,因此清空并關閉防火墻。

[root@root??~]# iptables -F #清空防火墻規(guī)則言缤。

[root@root??~]# systemctl stop firewalld #關閉防火墻。

[root@root??~]# systemctl disable firewalld #設置開機不啟動防火墻。

2 ?關閉SELinux

[root@root??~]# getenforce? ? ? ? ? ? ?#查看SElinux狀態(tài)。

Disabled

[if !supportLists]1.?[endif]永久關閉SElinux:

[root@root??~]# vim /etc/selinux/config #修改SElinux配置文件着倾,修改SELINUX=disabled,如圖 1-1 所示叽唱,修改完成后并保存退出屈呕,修改文件后需要重啟主機則會生效微宝。


注意:永久關閉SElinux需要重啟主機則生效棺亭,如果當前主機是生產(chǎn)環(huán)境不能重啟主機的條件下,但又要實現(xiàn)永久關閉SElinux的情況下蟋软,需要先做臨時關閉镶摘,再修改其配置文件實現(xiàn)永久關閉,但不需要重啟主機岳守。?f??

3 ?配置靜態(tài)IP

[root@root??~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

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

NETMASK=255.255.255.0

DNS1=114.114.114.114

NAME="ens32"

UUID="5e02ab66-a084-404a-bb4c-50bf47bd1bd5"

DEVICE="ens32"

ONBOOT="yes"

?

注釋:修改網(wǎng)卡配置文件凄敢,主要修改內(nèi)容項BOOTPROTO="static" 、ONBOOT="yes" 湿痢、IPADDR=192.168.0.63 涝缝、GATEWAY=192.168.0.1 、NETMASK=255.255.255.0 譬重、DNS1=114.114.114.114 ?以上6項拒逮。

?

關閉NetworkManager 服務:

[root@root?? ~]# systemctl stop NetworkManager? ? ? ? ? ? ? ? ? ??#關閉 NetworkManager 。

[root@root??~]# systemctl disable NetworkManager? ? ? ? ? ? ? ??#設置開啟不啟動臀规。

?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

?

注釋:修改?/etc/hosts配置文件滩援,添加以下兩項。

192.168.1.63 ???xuegod63.cn ????xuegod63

192.168.1.64 ???xuegod64.cn ????xuegod64

5 ?修改主機名

[root@root??~]# vim /etc/hostname #修改主機名配置文件(永久生效塔嬉,需要重啟)玩徊。

xuegod63

[root@root??~]# hostname xuegod63 ? #臨時設置,立即生效(需要重啟當前終端)谨究。

xuegod63

6 ?配置Yum源

[if !supportLists]1.[endif]配置本地Yum源:

[root@root??~]# mount /dev/sr0 ?/mnt/ #掛載光驅(qū)恩袱。

[root@root??~]# echo "/dev/sr0 /mnt iso9660 defaults 0 0" >>?/etc/fstab #設置開機自動掛載光驅(qū)。

[root@root??~]# rm -rf /etc/yum.repos.d/* #刪除/etc/yum.repos.d/目錄的所有文件胶哲。

[root@root??~]# cat > /etc/yum.repos.d/centos7.repo <<EOF

> [centos7-source]

>name=?centos7-source

>baseurl=file:///mnt

> enabled=1

>gpgcheck=0

> EOF

注釋:生成文檔畔塔,并在< EOF結(jié)束符以內(nèi)的內(nèi)容。

[if !supportLists]2.[endif]配置網(wǎng)絡yum源:

阿里云鏡像源站點(http://mirrors.aliyun.com/)。

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

[if !supportLists](1)?[endif]備份:

把CentOS-Base.repo文件重新命名為CentOS-Base.repo.backup 俩檬。

[root@root??~]# mv /etc/yum.repos.d/CentOS-Base.repo{,.backup}

[if !supportLists](2)?[endif]下載新的CentOS-Base.repo 到/etc/yum.repos.d/

安裝wget工具:

[root@root??~]# rpm -ivh /mnt/Packages/wget-1.14-15.el7.x86_64.rpm

下載Yum源:

[root@root??~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

生成Yum緩存:

[root@root??~]# yum makecache

百度:163源




7 ?epel源

[root@root??~]# yum install epel-release -y

8 ?開機配置成: init 3 ?模式

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

重啟主機萎胰,使以上設置生效:

[root@xuegod63 ~] reboot

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

1 ?SSHD服務

介紹:SSH協(xié)議:安全外殼協(xié)議。為Secure Shell的縮寫棚辽。SSH為建立在應用層和傳輸層基礎上的安全協(xié)議技竟。

?

作用:SSHD服務使用SSH協(xié)議可以用來進行遠程控制,或在計算機之間傳送文件屈藐。

相比較之前用Telnet方式來傳輸文件要安全很多榔组,因為Telnet使用明文傳輸,SSH是加密傳輸联逻。

服務安裝:

需要安裝OpenSSH 是個安裝包:

OpenSSH軟件包搓扯,提供了服務端后臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數(shù)據(jù)包归,并由此來代替原來的類似服務Telnet或Ftp锨推。

安裝包:

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系統(tǒng)的密碼診斷工具

注釋:這四個軟件包在我們的CentOS7鏡像軟件安裝包里有沾鳄。

查看鏡像中的openssh*開頭的程序包:

[root@xuegod63 Packages]# ls /mnt/Packages/openssh*

/mnt/Packages/openssh-5.3p1-104.el6.x86_64.rpm

/mnt/Packages/openssh-askpass-5.3p1-104.el6.x86_64.rpm

/mnt/Packages/openssh-clients-5.3p1-104.el6.x86_64.rpm

/mnt/Packages/openssh-server-5.3p1-104.el6.x86_64.rpm

1.2.2 ?安裝SSH服務

安裝方法有兩種:

[if !supportLists]1.?[endif]通過Yum安裝(推薦使用):

[root@xuegod63 ~]# yum install openssh openssh-clients openssh-server -y

[if !supportLists]2.?[endif]本地直接安裝rpm包文件:

[root@xuegod63 ~]# rpm -ivh /mnt/Packages/openssh*.rpm

以上選擇一種安裝方式即可。

[if !supportLists]3.?[endif]確認軟件包是否已經(jīng)安裝:

[root@xuegod63 ~]# rpm -qa | grep openssh #使用rpm -qa查看所有安裝的程序包确憨,并過慮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

[if !supportLists]4.?[endif]查看軟件安裝生產(chǎn)的文件:

[root@xuegod63 ~]# 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

[if !supportLists]5.?[endif]OpenSSH配置文件:

OpenSSH常用配置文件有兩個/etc/ssh/ssh_config和/etc/sshd_config。

ssh_config為客戶端配置文件休弃,設置與客戶端相關的應用可通過此文件實現(xiàn)吞歼。

sshd_config為服務器端配置文件,設置與服務端相關的應用可通過此文件實現(xiàn)玫芦。

[if !supportLists]6.?[endif]服務啟動關閉腳本:

[root@xuegod~]# systemctl restart|stop|start|status sshd

注釋:Linux下一般用“|”表示或者(多選一)浆熔,其中 restart|stop|start|status,在同一時間僅使用一個桥帆。

[if !supportLists]7.?[endif]開機啟動服務:

[root@xuegod63 ~]# chkconfig sshd on

注意:正在將請求轉(zhuǎn)發(fā)到“systemctl enable sshd.service”医增。

查看所有開機管理服務,過慮sshd服務老虫。

[root@xuegod63 ssh]# systemctl list-unit-files | grep sshd

anaconda-sshd.service ????????????????????????static

sshd-keygen.service ??????????????????????????static ?

sshd.service ?????????????????????????????????enabled

sshd@.service ????????????????????????????????static ?

sshd.socket ??????????????????????????????????disabled

1.2.3 ?如何使用SSH來遠程連接主機

方法一:

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

當在Linux主機上遠程連接另一臺Linux主機時叶骨,如當前所登錄的用戶是root的話,當連接另一臺主機時也是用root用戶登錄時祈匙,可以直接使用ssh IP忽刽,端口默認即可天揖,如果端口不是默認的情況下,需要使用-p 指定端口跪帝。

[root@xuegod ssh]# ssh 192.168.1.64

[root@xuegod64 ~]# useradd cat && echo 123456 | passwd --stdin cat

更改用戶?cat 的密碼 今膊。

passwd:所有的身份驗證令牌已經(jīng)成功更新。

[root@xuegod64 ~]#?exit

.

普通用戶:

創(chuàng)建用戶并設置密碼為123456伞剑。

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

[root@xuegod63 ~]# ssh?cat@192.168.1.64

第一次登錄服務器時系統(tǒng)沒有保存遠程主機的信息斑唬,為了確認該主機身份會提示用戶是否繼續(xù)連

接,輸入yes 后登錄黎泣,這時系統(tǒng)會將遠程服務器信息寫入用戶主目錄下的$HOME/.ssh/known_hosts文件中恕刘,下次再進行登錄時因為保存有該主機信息就不會再提示了,如圖 1-5 所示抒倚。


RSA算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易褐着,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰托呕。

方法二:

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

[root@xuegod63 ~]# ssh -l cat 192.168.1.64

-l :-l選項含蓉,指定登錄名稱。

-p:-p選項镣陕,指定登錄端口(當服務端的端口非默認時谴餐,需要使用-p指定端口進行登錄)姻政。

SSHD服務配置和管理

1.3.1 ?配置文件詳解

注:在配置文件中參數(shù)前面有#號呆抑,表示是默認值,當然#號也表示注釋汁展。

/etc/ssh/sshd_config配置文件內(nèi)容詳解鹊碍。

[if !supportLists]1.?[endif]Port 22

設置SSHD監(jiān)聽端口號。

[if !supportLists](1)?[endif]SSH 預設使用 22 這個port食绿,也可以使用多個port侈咕,即重復使用 port 這個設定項目!

[if !supportLists](2)?[endif]例如想要開放SSHD端口為 22和222器紧,則多加一行內(nèi)容為: Port 222 即可耀销。

[if !supportLists](3)?[endif]然后重新啟動SSHD這樣就好了。 建議大家修改 port number 為其它端口铲汪,防止別人暴力破解熊尉。

?

例1.1:修改SSHD服務默認監(jiān)聽的端口為222.

[root@xuegod63 ~]# vim /etc/ssh/sshd_config #修改ssh服務端配置文件。

改:

Port 22

為:

Port 222

[root@xuegodssh]# systemctl restart sshd #重啟sshd服務掌腰。

測試:

?[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.1.63

[if !supportLists]2.?[endif]ListenAddress 0.0.0.0

設置SSHD服務器綁定的IP 地址,0.0.0.0 表示偵聽所有地址

安全建議:如果主機不需要從公網(wǎng)ssh訪問齿梁,可以把監(jiān)聽地址改為內(nèi)網(wǎng)地址

這個值可以寫成本地IP地址催植,也可以寫成所有地址肮蛹,即0.0.0.0 表示所有IP。

?

[if !supportLists]3.?[endif]Protocol 2

選擇的SSH 協(xié)議版本创南,可以是 1 也可以是 2伦忠,CentOS 5.x 預設是僅支援V2版本,出于安全考慮稿辙,設置為最新的協(xié)議版本缓苛。

?

[if !supportLists]4.?[endif]#HostKey /etc/ssh/ssh_host_key

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

[if !supportLists]5.?[endif]SyslogFacility AUTHPRIV

當有人使用SSH 登入系統(tǒng)的時候,SSH 會記錄信息邓深,這個信息要記錄的類型為AUTHPRIV未桥,sshd服務日志存放在:/var/log/secure。

例:為什么sshd配置文件中沒有指定日志芥备,但日志卻存放在了/var/log/secure冬耿?

[root@xuegod ssh]# vim /etc/rsyslog.conf ? #查看日志配置文件萌壳,如圖 1-6 所示亦镶。

日志文件定義

1.3.2 ?安全調(diào)優(yōu)的重點

[if !supportLists]1.[endif]LoginGraceTime 2m ??????

[if !supportLists](1)?[endif]grace意思是系統(tǒng)給與多少秒來進行登錄。

[if !supportLists](2)?[endif]當使用者連上SSH server 之后袱瓮,會出現(xiàn)輸入密碼的畫面缤骨,在該畫面中。

[if !supportLists](3)?[endif]在多久時間內(nèi)沒有成功連上SSH server 就強迫斷線尺借!若無單位則默認時間為秒绊起。

可以根據(jù)實際情況來修改實際

?

[if !supportLists]2.[endif]# PermitRootLogin yes

是否允許root 登入,默認是允許的燎斩,但是建議設定成no虱歪,真實的生產(chǎn)環(huán)境服務器,是不允許root賬號直接登陸的栅表,僅允許普通用戶登錄笋鄙,需要用到root用戶再切換到root用戶。

?

[if !supportLists]3.[endif]PasswordAuthentication yes

密碼驗證當然是需要的怪瓶!所以這里寫yes萧落,也可以設置為no,在真實的生產(chǎn)服務器上洗贰,根據(jù)不同安全級別要求找岖,有的是設置不需要密碼登陸的,通過認證的秘鑰來登陸哆姻。

?

[if !supportLists]4.[endif]# PermitEmptyPasswords no

是否允許空密碼的用戶登錄宣增,默認為no,不允許空密碼登錄矛缨。

?

例1.2:給sshd服務添加一些警告信息爹脾。

[root@xuegod ~]# cat /etc/motd

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

?

測試:

[root@xuegod ~]# ssh 192.168.1.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!

?

[if !supportLists]5.[endif]# PrintLastLog yes

顯示上次登入的信息!默認為yes 灵妨。

?

例1.3:

[root@xuegod63 ~]# ssh 192.168.1.63 #登錄主機解阅。

Last login: Tue Nov ?4 19:57:31 2014 from 192.168.1.107 ? #PrintLastLog yes項定義即是該回顯上次登錄的信息。

?

[if !supportLists]6.[endif]# UseDNS yes

一般來說泌霍,為了要判斷客戶端來源是正常合法的货抄,因此會使用DNS 去反查客戶端的主機名,但通常在內(nèi)網(wǎng)互連時朱转,該項設置為no蟹地,因此使聯(lián)機速度會快些。

?

1.4 ?SSHD服務防止暴力破解

防止暴力破解的方法有兩種:

1.4.1 ?配置安全的SSHD服務(方法一)

[if !supportLists](1)?[endif]密碼足夠的復雜藤为,密碼的長度要大于8位最好大于20位怪与。密碼的復雜度是密碼要盡可能有數(shù)字、大小寫字母和特殊符號混合組成缅疟。

[if !supportLists](2)?[endif]修改默認端口號分别。

[if !supportLists](3)?[endif]不允許root賬號直接登陸,添加普通賬號存淫,授予root的權(quán)限耘斩。

思考:是否可以禁止root身份登錄?

答:不行桅咆,因為有些程序需要使用root身份登錄并運行括授。另外判斷一個用戶是不是超級管理員,看的是用戶的ID是否為0轧邪。

[if !supportLists](4)?[endif]不允許密碼登陸刽脖,只能通過認證的密鑰來登陸系統(tǒng)。

?

[if !supportLists]1.?[endif]通過密鑰認證實現(xiàn)SSHD認證忌愚。

實驗環(huán)境:

服務端:xuegod63 ?IP:192.168.1.63

客戶端:xuegod64 ?IP:192.168.1.64

客戶端生成密鑰對,然后把公鑰傳輸?shù)椒斩?/b>

?

[root@xuegod64 ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): #提示輸入密鑰文件的保存路徑却邓,選擇默認硕糊,回車繼續(xù)

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/ #切換工作目錄至家目錄下的.ssh目錄下撬腾。

[root@xuegod64 .ssh]# ls #可查看到生成的id_rsa螟蝙、id_rsa.pub文件。

id_rsa ?id_rsa.pub ?known_hosts

?

[if !supportLists]2.?[endif]發(fā)布公鑰到服務端民傻。

使用ssh-copy-id 命令將客戶端生成的公鑰發(fā)布到遠程服務器192.168.1.63 xuegod63胰默。

[root@xuegod64 .ssh]# ssh-copy-id -i 192.168.1.63

The authenticity of host '192.168.1.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 #輸入yes

Warning: Permanently added '192.168.0.64' (RSA) to the list of known hosts.

root@192.168.1.63's password: #輸入192.168.1.63主機登錄密碼场斑。

Now try logging into the machine, with "ssh '192.168.1.63'", and check in:

?

??.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting

#這個時候可以通過ssh 無密鑰直接登陸主機

?

注意:如果服務器不是監(jiān)聽22端口,則需要指定端口傳輸密鑰:

[root@xuegod64 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 222 root@192.168.1.63

?

1.4.2 ?通過開源的防護軟件來防護安全(方法二)

優(yōu)點:使用簡單牵署、靈活漏隐、功能強大

?

實戰(zhàn)背景:

最近公網(wǎng)網(wǎng)站一直被別人暴力破解SSHD服務密碼。雖然沒有成功奴迅,但會導致系統(tǒng)負載很高青责,原因是在暴力破解的時候,系統(tǒng)會不斷地認證用戶取具,從而增加了系統(tǒng)資源額外開銷脖隶,導致訪問公司網(wǎng)站速度很慢。

然而fail2ban程序可以監(jiān)視你的系統(tǒng)日志暇检,然后匹配日志的錯誤信息(正則式匹配)執(zhí)行相應的屏蔽動作(一般情況下是防火墻)浩村,而且可以發(fā)送e-mail通知系統(tǒng)管理員,很實用占哟、很強大心墅!

簡單來說其功能就是防止暴力破解。工作的原理是通過分析一定時間內(nèi)的相關服務日志榨乎,將滿足動作的相關IP利用iptables加入到dorp列表一定時間怎燥。

注:重啟iptables服務的話,所有DORP將重置蜜暑。

?

下載軟件包

官方地址:http://www.fail2ban.org

fail2ban程序下載地址:http://www.fail2ban.org/wiki/index.php/Downloads铐姚,

[if !supportLists]1.?[endif]需要安裝python開發(fā)環(huán)境,并且版本要大于2.4肛捍。

[root@xuegod63 ~]# python -V #查看當前系統(tǒng)中python的版本隐绵。

Python 2.7.5

[if !supportLists]2.?[endif]使用Yum安裝fail2ban

[root@xuegod63 ~]# yum -y install epel-release ??#已經(jīng)安裝好了epel源,這一步可忽略拙毫。

[root@xuegod63 ~]# yum -y install fail2ban

?

[if !supportLists]3.?[endif]相關主要文件說明

[root@xuegod63 ~]# ls /etc/fail2ban/


/etc/fail2ban/action.d ?#動作文件夾依许,內(nèi)含默認文件。iptables以及mail等動作配置缀蹄。

/etc/fail2ban/fail2ban.conf??? #定義了fai2ban日志級別峭跳、日志位置及sock文件位置。

/etc/fail2ban/filter.d???????????????#與條件相關的目錄缺前,內(nèi)含默認文件蛀醉。過濾日志關鍵內(nèi)容設置。

/etc/fail2ban/jail.conf???? #主要配置文件衅码,模塊化拯刁。主要設置啟用ban動作的服務及動作閥值。

應用實例

設置條件:SSH遠程登錄5分鐘內(nèi)3次密碼驗證失敗逝段,禁止用戶IP訪問主機1小時垛玻,1小時該限制自動解除割捅,用戶可重新登錄。

因為動作文件(action.d/iptables.conf)以及日志匹配條件文件(filter.d/sshd.conf )安裝后是默認存在的夭谤」啄粒基本不用做任何修改。所有主要需要設置的就只有jail.conf文件朗儒。啟用SSHD服務的日志分析颊乘,指定動作閥值即可。

?

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

[root@xuegod63 ~]# vim /etc/fail2ban/jail.conf

[DEFAULT]?????????????? #全局設置醉锄。

ignoreip = 127.0.0.1/8?????? #忽略的IP列表,不受設置限制乏悄。

bantime ?= 600???????????? #屏蔽時間,單位:秒恳不。

findtime ?= 600???????????? #這個時間段內(nèi)超過規(guī)定次數(shù)會被ban掉檩小。

maxretry = 5??????????????? #最大嘗試次數(shù)。

backend = auto??????????? #日志修改檢測機制(gamin烟勋、polling和auto這三種)规求。

?

[sshd]?????????????? #單個服務檢查設置,如設置bantime卵惦、findtime阻肿、maxretry和全局沖突,服務優(yōu)先級大于全局設置沮尿。

port ???= ssh

logpath = %(sshd_log)s

backend = %(sshd_backend)s

#加入如下內(nèi)容

enabled ?= true???????????? #是否激活此項(true/false)修改成 true丛塌。

filter = sshd????????????? #過濾規(guī)則filter的名字,對應filter.d目錄下的sshd.conf畜疾。

action = iptables[name=SSH, port=ssh, protocol=tcp]???????????? #動作的相關參數(shù)赴邻,對應action.d/iptables.conf文件。

sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"] #觸發(fā)報警的收件人啡捶。

logpath = /var/log/secure?? #檢測的系統(tǒng)的登陸日志文件姥敛。這里要寫sshd服務日志文件。 默認為logpath = /var/log/sshd.log 届慈。

#5分鐘內(nèi)3次密碼驗證失敗徒溪,禁止用戶IP訪問主機1小時。 配置如下金顿。

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

findtime = 300 ???#在5分鐘內(nèi)內(nèi)出現(xiàn)規(guī)定次數(shù)就開始工作鲤桥。

maxretry = 3 ??? #3次密碼驗證失敗揍拆。

?

[if !supportLists]2.?[endif]啟動服務

[root@xuegod63 ~]#?systemctl start fail2ban #啟動fail2ban服務。

[root@xuegod63 ~]#?systemctl enable fail2ban #設置開機自動啟動茶凳。

?

[if !supportLists]3.?[endif]測試

[root@xuegod63 ~]# > /var/log/secure ? #清空日志內(nèi)容嫂拴。

[root@xuegod63 fail2ban]# systemctl restart fail2ban #重啟fail2ban服務播揪。

?

[root@xuegod63 ~]# iptables -L -n ???#在fail2ban服務啟動后,iptables會多生成一個規(guī)則鏈筒狠,如圖 1-10 所示猪狈。


?iptables規(guī)則

測試:故意輸入錯誤密碼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,gssapi-keyex,gssapi-with-mic,password).

?

[root@xuegod64 ~]# ssh 192.168.1.63

ssh: connect to host 192.168.1.63 port 22: Connection refused

?

在xuegod63上查看:

[root@xuegod63 ~]# ?iptables -L |tail -4 #可以查看到192.168.1.64該IP被iptables禁止所有訪問认境。

Chain fail2ban-SSH (1 references)

target ????prot opt source ??????????????destination

REJECT ?????all ?-- ?192.168.1.64 ???????anywhere

RETURN ????all ?-- ?anywhere ??????????anywhere

?

[root@xuegod63 ~]# fail2ban-client status #配置好之后我們檢測下fail2ban是否工作。

Status

|- Number of jail: 1

`- Jail list: sshd #具體看某一項的狀態(tài)也可以看竹椒,如果顯示被ban的ip和數(shù)目就表示成功了,如果都是0米辐,說明沒有成功胸完。

?

[root@xuegod63 ~]# fail2ban-client status sshd

Status for the jail: sshd

|- Filter

| ?|- Currently failed: 0

| ?|- Total failed: 0

| ?`- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd

`- Actions

???|- Currently banned: 1

???|- Total banned: 1

???`- Banned IP list: 192.168.1.64

?

[if !supportLists]2.?[endif]查看fail2ban的日志能夠看到相關的信息。

[root@xuegod63 ~]# tail /var/log/fail2ban.log

2018-11-07 16:11:01,476 fail2ban.actions ???????[27932]: NOTICE ?[sshd] Ban 192.168.1.64

?

需要注意的2點:

?

[if !supportLists](1)?[endif]另外如果后期需要把iptables清空后或iptables重啟后翘贮,也需要把fail2ban重啟一下赊窥。

?

[if !supportLists](2)?[endif]如果修改ssh默認端口22為2015后,配置fail2ban來監(jiān)控SSHD服務需要修改配置文件

?

例:

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

改17 #Port 22

為17 Port 2015

?

[root@xuegod63 ~]# systemctl restart sshd

?

[root@xuegod63 ~]# vim /etc/fail2ban/jail.conf

#修改iptables動作中的端口號择膝,默認為SSH誓琼,如圖 1-11 所示。

改:port=ssh

為:port=2015


重啟服務即可:

[root@xuegod63 ~]# systemctl restart fail2ban

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肴捉,一起剝皮案震驚了整個濱河市腹侣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌齿穗,老刑警劉巖傲隶,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窃页,居然都是意外死亡跺株,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門脖卖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乒省,“玉大人,你說我怎么就攤上這事畦木⌒淇福” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛆封。 經(jīng)常有香客問我唇礁,道長,這世上最難降的妖魔是什么惨篱? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任盏筐,我火速辦了婚禮,結(jié)果婚禮上砸讳,老公的妹妹穿的比我還像新娘琢融。我一直安慰自己,他們只是感情好绣夺,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布吏奸。 她就那樣靜靜地躺著,像睡著了一般陶耍。 火紅的嫁衣襯著肌膚如雪奋蔚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天烈钞,我揣著相機與錄音泊碑,去河邊找鬼。 笑死毯欣,一個胖子當著我的面吹牛馒过,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酗钞,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼腹忽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了砚作?” 一聲冷哼從身側(cè)響起窘奏,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎葫录,沒想到半個月后着裹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡米同,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年骇扇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片面粮。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡少孝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熬苍,到底是詐尸還是另有隱情韭山,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布冷溃,位于F島的核電站钱磅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏似枕。R本人自食惡果不足惜盖淡,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凿歼。 院中可真熱鬧褪迟,春花似錦、人聲如沸答憔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虐拓。三九已至心俗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蓉驹,已是汗流浹背城榛。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留态兴,地道東北人狠持。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像瞻润,于是被迫代替她去往敵國和親喘垂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348