防止sshd服務被暴力破解

2022-05-24 12:03:08 字數 4695 閱讀 4698

方法有很多種,這裡介紹兩種。

(1).配置安全的shhd設定

不允許root使用者直接登入到系統,新增乙個普通使用者,必要時再切換到root使用者。

修改預設埠號。

不允許密碼登入,只能通過金鑰登入系統。

root使用者的密碼足夠複雜,足夠長,可以包含大小寫字母、數字和特殊符號。

sshd配置資訊詳見:簡單了解sshd_config配置檔案。

sshd金鑰登入詳見:centos7做ssh免密登入。

(2).使用fail2ban來防護

1)確認python的版本必須大於2.4

[root@youxi1 ~]# python -v

python 2.7.5

2)要有epel擴充套件源

[root@youxi1 ~]# yum list installed | grep epel-release

epel-release.noarch 7-11 @extras

3)yum安裝fail2ban

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

4)修改配置檔案

說明:fail2ban的配置檔案儲存在/etc/fail2ban/目錄下,其中主要的有action.d資料夾、fail2ban.conf檔案與file2ban.d資料夾、filter.d資料夾、jail.conf和jail.d資料夾。action.d資料夾是動作資料夾,內含iptables和mail等動作配置。fail2ban.conf檔案和fail2ban.d資料夾定義了日誌級別、日誌位置和sock檔案位置。filter.d資料夾是過濾條件資料夾。jail.conf檔案和jail.d資料夾是主要配置檔案以及模組化。

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

action.d filter.d paths-common.conf paths-freebsd.conf

fail2ban.conf jail.conf paths-debian.conf paths-opensuse.conf

fail2ban.d jail.d paths-fedora.conf paths-osx.conf

主要修改的就是/etc/fail2ban/jail.conf檔案。這個配置檔案中有許多模組,針對sshd服務需要修改的是[sshd]模組。初始的[sshd]模組只有三行:

port    = ssh

logpath = %(sshd_log)s

backend = %(sshd_backend)s

在[sshd]模組中新增如下行:

//啟用sshd模組

enabled = true

//過濾條件,sshd是過濾條件,對應filter.d資料夾下的sshd.conf檔案

filter = sshd

//動作,iptables是動作,對應action.d資料夾下的iptables.conf檔案,並傳遞三個引數。如果ssh埠不是22,那麼prot的值等於實際的埠號

action = iptables[name=ssh,prot=ssh,protocol=tcp]

//sendmail-whois是第二個動作,對應action.d資料夾下的sendmail-whois.conf檔案,並傳遞四個引數

//dest是接收郵箱,sender是傳送郵箱,sendername是郵件標題

sendmail-whois[name=ssh,[email protected],[email protected],sendername="fail2ban"]

//日誌檔案位址

logpath = /var/log/secure

//禁止時間1小時

bantime = 3600

//指定規定時間為3分鐘

findtime = 180

//規定時間內最大嘗試次數

maxretry = 3

5)啟動fail2ban並設定開機自啟

[root@youxi1 ~]# systemctl start fail2ban

[root@youxi1 ~]# systemctl enable fail2ban

created symlink from /etc/systemd/system/multi-user.target.wants/fail2ban.service to /usr/lib/systemd/system/fail2ban.service.

[root@youxi1 ~]# systemctl status fail2ban

● fail2ban.service - fail2ban service

loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled)

active: active (running) since 二 2019-05-14 15:59:01 cst; 28s ago

docs: man:fail2ban(1)

main pid: 12128 (fail2ban-server)

cgroup: /system.slice/fail2ban.service

└─12128 /usr/bin/python2 -s /usr/bin/fail2ban-server -s /var/run/f...

5月 14 15:59:01 youxi1 systemd[1]: starting fail2ban service...

5月 14 15:59:01 youxi1 fail2ban-client[12125]: 2019-05-14 15:59:01,718 fail...7

5月 14 15:59:01 youxi1 fail2ban-client[12125]: 2019-05-14 15:59:01,719 fail...e

5月 14 15:59:01 youxi1 systemd[1]: started fail2ban service.

hint: some lines were ellipsized, use -l to show in full.

6)測試

連續輸錯密碼3次

[root@youxi2 ~]# ssh 192.168.5.101

the authenticity of host '192.168.5.101 (192.168.5.101)' can't be established.

ecdsa key fingerprint is sha256:l8mum3o4x+apo/ulw0vovdhd0yltanvqeiulquuh0ay.

ecdsa key fingerprint is md5:d2:4f:03:4d:34:67:2c:93:a6:29:ae:f3:cd:23:cf:de.

are you sure you want to continue connecting (yes/no)? yes

warning: permanently added '192.168.5.101' (ecdsa) to the list of known hosts.

[email protected]'s password:

permission denied, please try again.

[email protected]'s password:

permission denied, please try again.

[email protected]'s password:

^c[root@youxi2 ~]# ssh 192.168.5.101

ssh: connect to host 192.168.5.101 port 22: connection refused

另外在本地也可以使用iptables -nl檢視被禁止的ip位址

chain f2b-ssh (1 references)

target prot opt source destination

reject all -- 192.168.5.102 0.0.0.0/0 reject-with icmp-port-unreachable

return all -- 0.0.0.0/0 0.0.0.0/0

也可以使用fail2ban-client status檢視。

7)將被禁止的ip位址從黑名單中移除

有可能手誤被加到黑名單中了,但總不能等一小時吧。所以可以使用一下命令移除黑名單

[root@youxi1 fail2ban]# fail2ban-client set sshd unbanip 192.168.5.102  //sshd對應的jail.conf中的模組名

192.168.5.102

fail2ban-client詳細用法請看幫助說明

8)注意

iptables重啟,那麼fail2ban也需要重啟。

修改埠,fail2ban的jail.conf中[sshd]模組,iptables動作傳遞的port引數也需要修改,最後重啟。

SSHD 服務防止暴力破解總結

openssh配置檔案 openssh常用配置檔案有兩個 etc ssh ssh config和 etc sshd config ssh config 為客戶端配置檔案 sshd config 為伺服器端配置檔案 服務啟動和關閉指令碼 root xuegodssh service sshd rest...

Fail2防止sshd暴力破解

簡介 fail2ban是一款實用軟體,可以監視你的系統日誌,然後匹配日誌的錯誤資訊 正則式匹配 執行相應的遮蔽動作。支援大量服務。如sshd,apache,qmail,proftpd,sasl等等 3 在logpath選項中支援萬用字元 4 需要gamin支援 注 gamin是用於監視檔案和目錄是否...

防止SSH暴力破解

我的伺服器每天都會有無數的ssh失敗嘗試記錄,有些無聊的人一直不停的掃瞄,這些人真夠無聊的,沒事吃飽了撐著,老找些軟體在那裡窮舉掃瞄,所以大家第一要記的設定乙個好的夠複雜的密碼。怎麼樣防,如果要一條一條將這些ip阻止顯然治標不治本,還好有denyhosts軟體來代替我們手搞定他。denyhosts是...