天天看點

SSH服務端配置、優化加速、安全防護一、配置檔案二、配置檔案詳解三、免密登入(基于KEY驗證登入)四、常見故障五、優化加速六、日志分析七、安全相關

SSH服務端配置、優化加速、安全防護一、配置檔案二、配置檔案詳解三、免密登入(基于KEY驗證登入)四、常見故障五、優化加速六、日志分析七、安全相關
CentOS7自帶的SSH服務是OpenSSH中的一個獨立守護程序SSHD。由于使用telnet在網絡中是明文傳輸是以用其管理伺服器是非常不安全的不安全,SSH協定族可以用來對伺服器的管理以及在計算機之間傳送檔案。

一、配置檔案

  • 伺服器配置檔案 /etc/ssh/sshd_config
  • 日志檔案 /var/log/secure

二、配置檔案詳解

Port    22                  #預設端口
ListenAddress IP            #監聽伺服器端的IP,ss -ntl 檢視22端口綁定的iP位址
LoginGraceTime 2m           #登入時不輸入密碼時逾時時間
HostKey                   # HostKey本地服務端的公鑰路徑
UseDNS no                   #禁止将IP逆向解析為主機名,然後比對正向解析的結果,防止用戶端欺騙
PermitRootLogin yes         #是否允許root使用SSH遠端登入
MaxAuthTries 6              #密碼錯誤的次數6/2=3(MAN幫助中寫明要除2)次後斷開連接配接
MaxSessions 10              #最大的會話連接配接數(連接配接未登入的會話最大值,預設拒絕舊的連接配接未登入的會話)
StrictModes yes             #檢查使用者家目錄中ssh相關的配置檔案是否正确
PubkeyAuthentication yes    #是否使用基于key驗證登入
AuthorizedKeysFile      .ssh/authorized_keys    #key驗證登入的用戶端公鑰路徑
PasswordAuthentication yes  #是否允許使用密碼登入
PermitEmptyPasswords no     #使用者使用空密碼登入
GatewayPorts no             #啟用網關功能,開啟後可以将建立的SSH隧道(端口轉發)共享出去
ClientAliveCountMax 3       #探測3次用戶端是否為空閑會話,↓3*10分鐘後斷開連接配接
ClientAliveInterval 10      #空閑會話時長,每10分鐘探測一次
MaxStartups 10:30:100       #start:rate:full;當連接配接但為進行認證的使用者超過10個,drop30%(rate/full)的連接配接當連接配接但未登入的連接配接達到100個後,建立立的連接配接将被拒絕
Banner /path/file           #認證前輸出的登入提示資訊,指定檔案路徑
GSSAPIAuthentication no 
AllowUsers username         #白名單,如果白名單有使用者隻有白名單的使用者可以登陸
DenyUsers                  #黑名單,被拒絕的使用者,如果即允許又拒絕則拒絕生效
AllowGroups                 #組白名單
DenyGroups                  #組黑名單           

三、免密登入(基于KEY驗證登入)

在用戶端成功密鑰對,然後将公鑰複制到要免密登入的伺服器即可。

注:名稱隻能為 authorized_keys ,添加多個公鑰資訊可以直接追加>> .ssh/authorized_keys

ssh-keygen -t rsa -p “1234”                     #建立密鑰對,-t類型為rsa,-p私鑰密碼為1234
ssh-copy-id -i ~/.ssh/id_rsa.pub IP     #-i指定公鑰路徑後将公鑰複制到遠端IP ~/.ssh/authorized_keys           

四、常見故障

  • 提示 ssh_exchange_identification: Connection closed by remote host

    多數情況為配置檔案出錯,可以使用

    sshd -T

    對配置檔案進行逐一檢查
  • 提示:server refused our key 免密登入被拒絕

    使用免密登入 公鑰檔案的權限不正确是以會拒絕登入,檢查用戶端複制到服務端的公鑰資訊檔案權限是否正确

五、優化加速

伺服器端修改配置檔案中一下兩項進行修改

vim /etc/ssh/sshd_conf
UseDNS no               
GSSAPIAuthentication no           

UseDNS 會對用戶端進行DNS反向解析,然後在比對正向解析的結果檢視是否一緻。

GSSAPIAuthentication大多數情況下使用密碼驗證或者秘鑰驗證是以關閉GSSAPI驗證即可

六、日志分析

  • 檢視方式

    手動檢視日志檔案

    /var/log/secure

    systemctl檢視日志檔案

    systemctl suts sshd

  • 常見警告

    提示:

    Authentication refused:bad ownership or modes for diectory

    ssh連接配接的使用者的家目錄下.ssh目錄所有者或者權限不正确(正确為700),sshd會發出警告但依然允許登入

七、安全相關

- DOS

SSH也可能成為DOS攻擊的對象,例如惡意使用者連接配接SSH但不輸入密碼進行驗證,由于設定了MaxStartups會導緻正常使用者無法進行登入。針對此情況建議:

  • 修改預設端口
  • MaxStartups調大一些例如

    MaxStartups 100:30:1000

  • LoginGraceTime 10 調整連接配接逾時未10秒
  • MaxSessions 10 設定連接配接但未登入的使用者最大值為10

- 其他優化

  • 限制可登入使用者
  • 設定空閑會話逾時時長
  • 充分利用防火牆設定ssh通路政策
  • 僅監聽指定IP的ssh
  • 禁止使用空密碼登入
  • 禁止使用root直接進行登入
  • 做好日志分析
  • 加強使用者登入的密碼密碼

繼續閱讀