CentOS7自帶的SSH服務(wù)是OpenSSH中的一個(gè)獨(dú)立守護(hù)進(jìn)程SSHD邪财。由于使用telnet在網(wǎng)絡(luò)中是明文傳輸所以用其管理服務(wù)器是非常不安全的不安全陕壹,SSH協(xié)議族可以用來對服務(wù)器的管理以及在計(jì)算機(jī)之間傳送文件。
一树埠、配置文件
- 服務(wù)器配置文件 /etc/ssh/sshd_config
- 日志文件 /var/log/secure
二糠馆、配置文件詳解
Port 22 #默認(rèn)端口
ListenAddress IP #監(jiān)聽服務(wù)器端的IP,ss -ntl 查看22端口綁定的iP地址
LoginGraceTime 2m #登錄時(shí)不輸入密碼時(shí)超時(shí)時(shí)間
HostKey #HostKey本地服務(wù)端的公鑰路徑
UseDNS no #禁止將IP逆向解析為主機(jī)名弥奸,然后比對正向解析的結(jié)果榨惠,防止客戶端欺騙
PermitRootLogin yes #是否允許root使用SSH遠(yuǎn)程登錄
MaxAuthTries 6 #密碼錯(cuò)誤的次數(shù)6/2=3(MAN幫助中寫明要除2)次后斷開連接
MaxSessions 10 #最大的會(huì)話連接數(shù)(連接未登錄的會(huì)話最大值,默認(rèn)拒絕舊的連接未登錄的會(huì)話)
#
StrictModes yes #檢查用戶家目錄中ssh相關(guān)的配置文件是否正確
PubkeyAuthentication yes #是否使用基于key驗(yàn)證登錄
AuthorizedKeysFile .ssh/authorized_keys #key驗(yàn)證登錄的客戶端公鑰路徑
PasswordAuthentication yes #是否允許使用密碼登錄
PermitEmptyPasswords no #用戶使用空口令登錄
GatewayPorts no #啟用網(wǎng)關(guān)功能盛霎,開啟后可以將建立的SSH隧道(端口轉(zhuǎn)發(fā))共享出去
#
ClientAliveCountMax 3 #探測3次客戶端是否為空閑會(huì)話赠橙,↓3*10分鐘后斷開連接
ClientAliveInterval 10 #空閑會(huì)話時(shí)長,每10分鐘探測一次
MaxStartups 10:30:100 #start:rate:full愤炸;當(dāng)連接但為進(jìn)行認(rèn)證的用戶超過10個(gè)期揪,drop30%(rate/full)的連接
當(dāng)連接但未登錄的連接達(dá)到100個(gè)后,新建立的連接將被拒絕
Banner /path/file #認(rèn)證前輸出的登錄提示信息规个,指定文件路徑
GSSAPIAuthentication no #
#
AllowUsers username #白名單凤薛,如果白名單有用戶只有白名單的用戶可以登陸
DenyUsers #黑名單,被拒絕的用戶诞仓,如果即允許又拒絕則拒絕生效
AllowGroups #組白名單
DenyGroups #組黑名單
三缤苫、免密登錄(基于KEY驗(yàn)證登錄)
在客戶端成功密鑰對,然后將公鑰復(fù)制到要免密登錄的服務(wù)器即可墅拭。
注:名稱只能為 authorized_keys 活玲,添加多個(gè)公鑰信息可以直接追加>> .ssh/authorized_keys
ssh-keygen -t rsa -p “1234” #創(chuàng)建密鑰對,-t類型為rsa,-p私鑰密碼為1234
ssh-copy-id -i ~/.ssh/id_rsa.pub IP #-i指定公鑰路徑后將公鑰復(fù)制到遠(yuǎn)程IP ~/.ssh/authorized_keys
四舒憾、常見故障
- 提示 ssh_exchange_identification: Connection closed by remote host
多數(shù)情況為配置文件出錯(cuò)镀钓,可以使用sshd -T
對配置文件進(jìn)行逐一檢查 - 提示:server refused our key 免密登錄被拒絕
使用免密登錄 公鑰文件的權(quán)限不正確所以會(huì)拒絕登錄,檢查客戶端復(fù)制到服務(wù)端的公鑰信息文件權(quán)限是否正確
五镀迂、優(yōu)化加速
服務(wù)器端修改配置文件中一下兩項(xiàng)進(jìn)行修改
vim /etc/ssh/sshd_conf
UseDNS no
GSSAPIAuthentication no
UseDNS 會(huì)對客戶端進(jìn)行DNS反向解析丁溅,然后在比對正向解析的結(jié)果查看是否一致。
GSSAPIAuthentication大多數(shù)情況下使用密碼驗(yàn)證或者秘鑰驗(yàn)證所以關(guān)閉GSSAPI驗(yàn)證即可
六探遵、日志分析
查看方式
手動(dòng)查看日志文件/var/log/secure
systemctl查看日志文件systemctl suts sshd
常見警告
提示:Authentication refused:bad ownership or modes for diectory
ssh連接的用戶的家目錄下.ssh目錄所有者或者權(quán)限不正確(正確為700)窟赏,sshd會(huì)發(fā)出警告但依然允許登錄
七、安全相關(guān)
-
DOS
SSH也可能成為DOS攻擊的對象别凤,例如惡意用戶連接SSH但不輸入密碼進(jìn)行驗(yàn)證饰序,由于設(shè)置了MaxStartups會(huì)導(dǎo)致正常用戶無法進(jìn)行登錄。針對此情況建議:- 修改默認(rèn)端口
- MaxStartups調(diào)大一些例如
MaxStartups 100:30:1000
- LoginGraceTime 10 調(diào)整連接超時(shí)未10秒
- MaxSessions 10 設(shè)置連接但未登錄的用戶最大值為10
-
其他優(yōu)化
- 限制可登錄用戶
- 設(shè)定空閑會(huì)話超時(shí)時(shí)長
- 充分利用防火墻設(shè)置ssh訪問策略
- 僅監(jiān)聽指定IP的ssh
- 禁止使用空口令登錄
- 禁止使用root直接進(jìn)行登錄
- 做好日志分析
- 加強(qiáng)用戶登錄的密碼口令