Linux防止暴力破解密碼指令碼

2021-10-24 23:59:24 字數 3392 閱讀 5812

1.認識記錄linux記錄安全的日誌

[root@testpm ~]# cd /var/log/

[root@testpm log]# ls | grep secure

secure

2.該日誌的內容檢視

[root@testpm log]# tail -f secure

#表示ssh身份驗證失敗

aug 29 23:35:03 testpm sshd[111245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.43.199 user=root

aug 29 23:35:03 testpm sshd[111245]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"

#表示root使用者密碼輸出失敗

aug 29 23:35:04 testpm sshd[111245]: failed password for root from 192.168.43.199 port 50602 ssh2

#表示root使用者密碼輸入正確

aug 29 23:35:44 testpm sshd[111245]: accepted password for root from 192.168.43.199 port 50602 ssh2

#表示給root使用者開啟了乙個終端

aug 29 23:35:44 testpm sshd[111245]: pam_unix(sshd:session): session opened for user root by (uid=0)

#從192.168.43.199埠50602:11接收到斷開連線:使用者已斷開連線

aug 29 23:36:26 testpm sshd[111245]: received disconnect from 192.168.43.199 port 50602:11: disconnected by user

#表示斷開連線

aug 29 23:36:26 testpm sshd[111245]: disconnected from 192.168.43.199 port 50602

#表示root使用者關閉了會話也就是退出了終端

aug 29 23:36:26 testpm sshd[111245]: pam_unix(sshd:session): session closed for user root

​ 如果傳了公鑰通過金鑰登陸提示如下:

#表示接受root使用者的金鑰

aug 29 23:50:31 testpm sshd[13123]: accepted publickey for root from 192.168.43.199 port 50610 ssh2: rsa sha256:hiug8oq5zydu7e2vephadm3tiliqmcxx8m0mldfgpqa

#表示為root使用者開啟會話

aug 29 23:50:31 testpm sshd[13123]: pam_unix(sshd:session): session opened for user root by (uid=0)

2.編寫密碼輸入錯誤三次將該ip禁止連線的指令碼

[root@testpm script]# vim ssh.sh

#!/usr/bin/bash

#這是乙個防止破解密碼的指令碼,當使用者輸入密碼錯誤次數大於3次時,將禁止連線伺服器

ip=`cat /var/log/secure | awk '/failed password/ ' | sort | uniq`

num=`awk '/failed password/ ' /var/log/secure | awk ' end' | awk ''`

if [ $num -ge 3 ];then

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

fi 新增到計畫任務中

[root@testpm script]# crontab -l

* * * * * /usr/bin/bash /opt/script/ssh.sh

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

​ #port 22 #監聽埠,預設監聽22埠 【預設可修改】

#addressfamily any #ipv4和ipv6協議家族用哪個,any表示二者均有

#listenaddress 0.0.0.0 #指明監控的位址,0.0.0.0表示本機的所有位址 【預設可修改】

#listenaddress :: #指明監聽的ipv6的所有位址格式

​ #protocol 2 #使用ssh第二版本,centos7預設第一版本已拒絕

​ # hostkeys for protocol version 2 #使用第二版本傳送秘鑰,支援以下四種秘鑰認證的存放位置

hostkey /etc/ssh/ssh_host_rsa_key #rsa私鑰認證 【預設】

​ #loglevel info #日誌記錄級別,預設為info

#logingracetime 2m #登入的寬限時間,預設2分鐘沒有輸入密碼,則自動斷開連線

#permitrootlogin yes #是否允許管理員直接登入,'yes'表示允許,實際生產中建議修改為no

#strictmodes yes #是否讓sshd去檢查使用者主目錄或相關檔案的許可權資料

#maxauthtries 6 #最大認證嘗試次數,最多可以嘗試6次輸入密碼超過之後斷開連線

#maxsessions 10 #最大允許保持多少個連線。預設值是 10

​ #pubkeyauthentication yes #是否開啟公鑰驗證

​ authorizedkeysfile .ssh/authorized_keys #公鑰驗證檔案路徑

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

37 #logingracetime 2m

38 #permitrootlogin yes #預設為允許root使用者遠端登陸

39 #strictmodes yes

進行修改如下

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

37 #logingracetime 2m

38 permitrootlogin no #將注釋開啟並將yes修改為no

39 #strictmodes yes

儲存退出並重啟sshd服務

[root@testpm ~]# systemctl restart sshd

python 暴力破解密碼指令碼

python 暴力破解密碼指令碼 以下,僅為個人測試 環境也是測試環境,暴力破解原理都是一樣的,假設要暴力破解登陸 www.a.com 使用者 testuser的密碼,首先,該 登陸的驗證要支援 無限次的密碼嘗試 假設testuser 的密碼為 6位的純數字 1 先長成 6位純數字密碼字典 impo...

burpsuite實戰 暴力破解密碼

某日閒來無事抓包,發現了學校某個管理平台沒有驗證碼的登陸頁面,尤其上面還寫著初始密碼,本著圍觀學姐 的心理,就開始拿burpsuite搞了一波爆破。下面簡述要點。當然,本文章內沒有學姐 想看 的可以關網頁了 0x01基本過程 burpsuite設chrome 通過chrome訪問站點 獲取資料報 分...

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

方法一 收集 var log secure 裡面的資訊,若是某個ip 鏈結次數超過一定次數 則把此ip記錄到 etc hosts.deny裡面。通過crontab來執行,每分鐘執行一次。1 root denyhosts denyhosts.sh bin bash cat var log secure...