天天看點

CentOS 8 SSH服務的基本原理和配置

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

#檢查配置檔案文法,沒錯就無任何輸出,有錯會報錯

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

1、改變預設端口

Port

#SSH監聽端口,預設是22

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

修改過端口号之後啟動服務必須把selinux關掉或者setenforce 0才行!!!

CentOS 8 SSH服務的基本原理和配置

2、認證時限

LoginGraceTime

#登入認證時超過多長時間就禁止登入了

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

注意:這裡如果輸入密碼慢了或者走開了它是不會自動斷開的,這裡設定5秒的意思是如果5秒之後你才輸完密碼,即使密碼正确它也不給你登入了!

3、禁止root登入

為什麼要禁止root登入?因為root的權限最大,如果允許的話,可以登入到對方伺服器進行任意操作,非常不安全!!!

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

PermitRootLogin

#允許root登入,一般設定為no

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

為了不給普通使用者利用跳闆随意切換成root使用者,我們需要設定pam認證子產品

CentOS 8 SSH服務的基本原理和配置

這裡有2個使用者:gulf(普通使用者)和shengjie(屬于wheel組的特權使用者)

CentOS 8 SSH服務的基本原理和配置

使用gulf登入,無法切換為root

CentOS 8 SSH服務的基本原理和配置

使用shengjie登入,可以切換為root

CentOS 8 SSH服務的基本原理和配置

有人又說了,既然我知道shengjie可以切換為root那我先用gulf登入再切換為shengjie行不行,答案是不行。也沒有實際意義,你必須知道shengjie的密碼,但是既然知道密碼也就不用切換直接就已shengjie登入就好了

CentOS 8 SSH服務的基本原理和配置

注意:在wheel組的使用者的權限是比普通使用者要大的,它是linux預設的特權組。

4、認證嘗試次數

MaxAuthTries

#最大認證嘗試次數

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

預設連接配接輸錯密碼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]

#設定用戶端登入時密碼提示的次數

CentOS 8 SSH服務的基本原理和配置

是以我們要驗證伺服器上MaxAuthTries參數,就必須把用戶端NumberOfPasswordPrompts參數的值設為比6大的數,我們設為8,結果如下

CentOS 8 SSH服務的基本原理和配置

第二種方法:(修改完成需要重新開機sshd服務)

CentOS 8 SSH服務的基本原理和配置

5、黑、白名單

(1)設定白名單AllowUsers

AllowUsers gulf [email protected]

#允許gulf使用者從任何地方登入,隻允許tom從指定終端登入,2個條件之間用空格分隔

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

(2)設定黑名單DenyUsers

DenyUsers gulf

#拒絕gulf登入

CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置
CentOS 8 SSH服務的基本原理和配置

總結:

  • 如果黑白名單隻設定其中一個,那就比對這一個,其他不比對,如果同時設定黑白名單,它會比對黑名單!
  • 在實際生産環境中,建議隻做白名單,考慮安全性問題,不能随意讓别人遠端,隻放開你信任的使用者即可!

繼續閱讀