ssh防暴力破解

SSH Secure Shell 的縮寫, SSH 爲建立在應用層和傳輸層基礎上的安全協議. 利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題.

基於口令的安全驗證: 所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到中間人這種方式的***。

基於祕鑰的安全驗證客戶端在本地生成祕鑰對,把公鑰傳給服務器. 當客戶端訪問服務器時,服務器會在用戶的主目錄下尋找公鑰,然後跟客戶端發來的公鑰進行比對,如果祕鑰一致,服務器就用公用密匙加密“質詢”(challenge)並把它發送給客戶端軟件。客戶端軟件收到“質詢”之後就可以用你的私人密匙解密再把它發送給服務器。

 

這裏我們的實驗就是用祕鑰登錄 

在客戶端生成祕鑰

wKiom1anKf3QdpO-AAHitZfiEYg791.jpg

 

然後將其傳給服務器


 wKiom1anKq3TCG8TAAEkvXP582M076.jpg

我們在server端會看到多了一個被驗證的key


 wKioL1anKvvAaYdSAAB2L2GZ6dU486.jpg

root 用戶登陸服務器就不需要密碼了

wKiom1anKsGAhzMYAABTvNhcX5o763.jpg

 

有時公司爲了安全考慮是不允許root用戶ssh 登陸的.

比如我們編輯server端的/etc/ssh/sshd_config 文件.49行的位置 PermitRootLogin 改爲no

wKioL1anKnehubjRAAMOOSrHKMs959.jpg

此時服務端重啓sshd服務後 clent 端用root是登陸不了服務器的

 我們再把普通用戶的公鑰傳給服務器就可以用普通用戶ssh登錄服務器了(普通用戶和root用戶指的是存在於服務器上的用戶.本地用戶是不能登陸遠程服務器的.)

server添加普通用戶test2

useradd test2

echo 123456 | passwd --stdin test2

 

clent傳給服務器公鑰

wKiom1anKkHz3b4oAADJr3UG6t4625.jpg

 

再用test2 用戶登錄服務器


 wKioL1anKo-xZ850AABcFhjSQXc099.jpg

 

用fail2ban軟件 可以防止 別人無限制嘗試破解密碼 佔用帶寬和資源 降低安全風險。

實驗:用fail2ban 限制 ip  登陸嘗試三次失敗後限制ip登陸1個小時

www.fail2ban.org 官網上下載 fail2ban 軟件

wKioL1anKpzychLdAAC_3k-ZGxI483.jpg

 

解壓 README.md 提供的方法 安裝軟件


 wKiom1anKmKh4tFDAAByhpa2dS4727.jpg

添加開機啓動

cp files/redhat-initd /etc/init.d/fail2ban

chkconfig --add fail2ban

 

 

vim /etc/fail2ban/jail.conf

wKioL1anKrzxuWwLAACkA4AJuRw390.jpg

 

5分鐘內 嘗試失敗三次 就觸發bantime  1小時

#logpath 定義日誌存放的目錄路徑

#bantime  定義 屏幕ip的時間

#findtime  定義 在findtime 時間內 嘗試超過maxretry 規定的次數 會被ban掉

#maxretry 定義 最大嘗試次數

wKiom1anKoKQFvdMAAC5wTTjVmY349.jpg

設置完畢後重啓fail2ban服務

systemctl restart fail2ban

rhel6 service fail2ban restart

然後在客戶端嘗試登錄3輸入錯誤密碼  看效果

 

wKioL1anKtGin-QVAAEyhWidLn0121.jpg

 

server /var/log/secure看日誌消息

wKiom1anKpqRpPOFAAFUb32fvq8420.jpg

 


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章