CentOS7自帶的SSH服務是OpenSSH中的一個獨立守護進程SSHD。由於使用telnet在網路中是明文傳輸所以用其管理伺服器是非常不安全的不安全,SSH協議族可以用來對伺服器的管理以及在電腦之間傳送文件。 一、配置文件 伺服器配置文件 /etc/ssh/sshd_config 日誌文件 / ...
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直接進行登錄
- 做好日誌分析
- 加強用戶登錄的密碼口令