ssh服務的原理和配置
-
- 一、概述
- 二、主要功能
- 三、SSH服務
- 四、openssh軟體
- 五、主要配置檔案
- 六、基本配置
-
- 1、改變預設端口
- 2、認證時限
- 3、禁止root登入
- 4、認證嘗試次數
- 5、黑、白名單
-
- (1)設定白名單AllowUsers
- (2)設定黑名單DenyUsers
一、概述
SSH 是 Secure Shell Protocol 的簡寫,由 IETF 網絡工作小組(Network Working Group )制定;在進行資料傳輸之前,SSH先對聯機資料包通過加密技術進行加密處理,加密後在進行資料傳輸。確定了傳遞的資料安全。
SSH是專為遠端登入會話和其他網絡服務提供的安全性協定。利用 SSH 協定可以有效的防止遠端管理過程中的資訊洩露問題。
二、主要功能
- 提供類似telnet遠端聯機伺服器的服務,但是它比telnet安全
- 類似FTP服務的sftp-server,借助SSH協定來傳輸資料的,提供更安全的SFTP服務
三、SSH服務
SSH服務預設端口是22,安全協定版本sshv2,SSH服務端是一個守護講程 (daemon),他在背景運作并響應來自用戶端的連接配接請求。 SSH服務端的講程名為sshd,負責實時監聽遠端SSH用戶端的遠端連接配接請求,并進行處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接配接等。SSH用戶端包含ssh以及像scp(遠端拷貝) slogin(遠端登陸) sftp(安全FTP檔案傳輸)等應用程式。它屬于linux系統開機自啟的服務之一。
四、openssh軟體
openssh是實作SSH協定的開源軟體項目,适用于各種unix、linux作業系統。openssh是由openssh、openssh-server以及openssh-client等軟體包提供的,并已将sshd添加為标準的系統服務,預設系統已安裝。
五、主要配置檔案
- /etc/ssh/sshd_config #ssh服務端配置檔案
- /etc/ssh/ssh_config #ssh用戶端配置檔案
六、基本配置
本節配置都在SSH伺服器端的配置檔案/etc/ssh/sshd_config中配置
配置檔案修改完以後必須重新開機或重載服務,以下省略該步驟
配置參數不區分大小寫!!!如LoginGraceTime=logingracetime
sshd -t
#檢查配置檔案文法,沒錯就無任何輸出,有錯會報錯
1、改變預設端口
Port
#SSH監聽端口,預設是22
修改過端口号之後啟動服務必須把selinux關掉或者setenforce 0才行!!!
2、認證時限
LoginGraceTime
#登入認證時超過多長時間就禁止登入了
注意:這裡如果輸入密碼慢了或者走開了它是不會自動斷開的,這裡設定5秒的意思是如果5秒之後你才輸完密碼,即使密碼正确它也不給你登入了!
3、禁止root登入
為什麼要禁止root登入?因為root的權限最大,如果允許的話,可以登入到對方伺服器進行任意操作,非常不安全!!!
PermitRootLogin
#允許root登入,一般設定為no
為了不給普通使用者利用跳闆随意切換成root使用者,我們需要設定pam認證子產品
這裡有2個使用者:gulf(普通使用者)和shengjie(屬于wheel組的特權使用者)
使用gulf登入,無法切換為root
使用shengjie登入,可以切換為root
有人又說了,既然我知道shengjie可以切換為root那我先用gulf登入再切換為shengjie行不行,答案是不行。也沒有實際意義,你必須知道shengjie的密碼,但是既然知道密碼也就不用切換直接就已shengjie登入就好了
注意:在wheel組的使用者的權限是比普通使用者要大的,它是linux預設的特權組。
4、認證嘗試次數
MaxAuthTries
#最大認證嘗試次數
預設連接配接輸錯密碼3次就退出了,原因是因為用戶端配置有一項NumberOfPasswordPrompts參數
man手冊裡它的定義是:Specifies the number of password prompts before giving up.
The argument to this keyword must be an integer.
The default is 3.(指定放棄密碼提示的次數。此關鍵字的參數必須為整數。預設值是3。)
是以我們隻能嘗試登3次,這裡是指用戶端的嘗試次數,伺服器的是認證次數,伺服器能認證幾次取決于用戶端能登陸幾次,概念容易混淆!
man手冊位置:/usr/share/man/man5/ssh_config.5(需要解壓)
ssh -o NumberOfPasswordPrompts=5 [email protected]
#設定用戶端登入時密碼提示的次數
是以我們要驗證伺服器上MaxAuthTries參數,就必須把用戶端NumberOfPasswordPrompts參數的值設為比6大的數,我們設為8,結果如下
第二種方法:(修改完成需要重新開機sshd服務)
5、黑、白名單
(1)設定白名單AllowUsers
AllowUsers gulf [email protected]
#允許gulf使用者從任何地方登入,隻允許tom從指定終端登入,2個條件之間用空格分隔
(2)設定黑名單DenyUsers
DenyUsers gulf
#拒絕gulf登入
總結:
- 如果黑白名單隻設定其中一個,那就比對這一個,其他不比對,如果同時設定黑白名單,它會比對黑名單!
- 在實際生産環境中,建議隻做白名單,考慮安全性問題,不能随意讓别人遠端,隻放開你信任的使用者即可!