Centos下防止ssh暴力破解密碼的方法

2021-08-28 05:21:28 字數 3598 閱讀 4640

方法一、

收集 /var/log/secure 裡面的資訊,若是某個ip 鏈結次數超過一定次數 ,則把此ip記錄到/etc/hosts.deny裡面。

通過crontab來執行,每分鐘執行一次。

*/1 * * * * /root/denyhosts/denyhosts.sh

#!/bin/bash

cat /var/log/secure|awk '/failed/'|sort|uniq -c|awk '' >/root/denyhosts/denyhosts.txt

define="10"

for i in `cat /root/denyhosts/denyhosts.txt`

do ip=`echo $i|awk -f= ''`

num=`echo $i|awk -f= ''`

if [ $num -gt $define ]

then

ipexists=`grep $ip /etc/hosts.deny |grep -v grep |wc -l`

if [ $ipexists -lt 1 ]

then

echo "sshd:$ip" >> /etc/hosts.deny

fifi

done

方法二、

denyhosts官方**為: 安裝

tar -zxvf denyhosts-2.6.tar.gz 

cd denyhosts-2.6

python setup.py install

預設是安裝到/usr/share/denyhosts目錄的。

2. 配置

cd /usr/share/denyhosts/ 

cp denyhosts.cfg-dist denyhosts.cfg

vi denyhosts.cfg

purge_deny = 50m #過多久後清除已阻止ip

hosts_deny = /etc/hosts.deny #將阻止ip寫入到hosts.deny

block_service = sshd #阻止服務名

deny_threshold_invalid = 1 #允許無效使用者登入失敗的次數

deny_threshold_valid = 10 #允許普通使用者登入失敗的次數

deny_threshold_root = 5 #允許root登入失敗的次數

work_dir = /usr/local/share/denyhosts/data #將deny的host或ip紀錄到work_dir中

deny_threshold_restricted = 1 #設定 deny host 寫入到該資料夾

lock_file = /var/lock/subsys/denyhosts #將denyhots啟動的pid紀錄到lock_file中,已確保服務正確啟動,防止同時啟動多個服務。

hostname_lookup=no #是否做網域名稱反解

admin_email = #設定管理員郵件位址

daemon_log = /var/log/denyhosts #自己的日誌檔案

daemon_purge = 10m #該項與purge_deny 設定成一樣,也是清除hosts.deniedssh 使用者的時間。

設定啟動指令碼

cp daemon-control-dist daemon-control 

chown root daemon-control

chmod 700 daemon-control

完了之後執行daemon-contron start就可以了。

./daemon-control start

如果要使denyhosts每次重起後自動啟動還需做如下設定:

ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts 

chkconfig --add denyhosts

chkconfig denyhosts on

然後就可以啟動了:

service denyhosts start

可以看看/etc/hosts.deny內是否有禁止的ip,有的話說明已經成功了。

提高ssh安全性的方法

修改sshd伺服器的配置檔案/etc/ssh/sshd_config,將部分引數參照如下修改,增強安全性。

系統預設使用22號埠,將監聽埠更改為其他數值(最好是1024以上的高階口,以免和其他常規服務埠衝突),這樣可以增加入侵者探測系統是否執行了 sshd守護程序的難度。

port 5555

對於在伺服器上安裝了多個網絡卡或配置多個ip位址的情況,設定sshd只在其中乙個指定的介面位址監聽,這樣可以減少sshd的入口,降低入侵的可能性。

listenaddress 192.168.0.1

如果允許使用者使用root使用者登入,那麼黑客們可以針對root使用者嘗試暴力破解密碼,給系統安全帶來風險。

permitrootlogin no

允許使用空密碼系統就像不設防的堡壘,任何安全措施都是一句空話。

permitemptypasswords no

只允許指定的某些使用者通過ssh訪問伺服器,將ssh使用許可權限定在最小的範圍內。

allowusers sshuser1 sshuser2

同上面的allowusers類似,限定指定的使用者組通過ssh訪問伺服器,二者對於限定訪問伺服器有相同的效果。

allowgroups sshgroup

禁止使用版本1協議,因為其存在設計缺陷,很容易使密碼被黑掉。

protocol 2

關閉x11forwarding,防止會話被劫持。

x11forwarding no

sshd服務執行時每乙個連線都要使用一大塊可觀的記憶體,這也是ssh存在拒絕服務攻擊的原因。一台伺服器除非存在許多管理員同時管理伺服器,否則上面這 個連線數設定是夠用了。

maxstartups 5

注意:以上引數設定僅僅是乙個示例,使用者具體使用時應根據各自的環境做相應的更改。

修改sshd伺服器的配置檔案/etc/ssh/sshd_config的讀寫許可權,對所有非root使用者設定唯讀許可權,防止非授權使用者修改sshd 服務的安全設定。

chmod 644 /etc/ssh/sshd_configsshd:192.168.0.15 10.0.0.11

將需要禁止使用的資訊新增到/etc/hosts.deny中。如對除了在hosts.allow列表中明確允許使用sshd的使用者外,所有其他使用者都禁止使用sshd服務,則新增如下內容到hosts.deny檔案中:

sshd:all

注意:系統對上述兩個檔案的判斷順序是先檢查hosts.allow檔案再檢視hosts.deny檔案,因此乙個使用者在hosts.allow允許使用網路資源,而同時在hosts.deny中禁止使用該網路資源,在這種情況下系統優先選擇使用hosts.allow配置,允許使用者使用該網路資源。

Centos下防止ssh暴力破解指令碼

1.修改 ssh 預設埠 注 修改之前,記得先把對應埠在防火牆新增規則 1.1 修改ssh埠為 2968 這個埠建議使用 1024 以上的 sed i s port 22 port 2968 g etc ssh sshd config1.2 重啟ssh systemctl restart sshd1...

Centos7 如何防止SSH暴力

3 ssh暴力破解檢視 4 驗證多次錯誤被禁止ssh 5 注意點 6 參考資料 ssh 為 secure shell 的縮寫,由 ietf 的網路小組 network working group 所制定 ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供...

防止SSH暴力破解

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