前段時間在搞等保,根據等保的安全要求,需要對公司的服務器進行安全加固,其中就涉及到對SSH Server的加固。正好最近有空,筆者將加固過程的一些經驗,總結分享一下,于是有了本文。
0×01 等保視角下的SSH 加固之旅
等保規范中 對主機安全要求有以下一個方面
1)身份鑒別
2)訪問控制
3)審計
4)入侵防范
根據這4點規范要求,結合實際加固經驗,總結如下
一、服務端的加固:
1、登錄認證維度的加固
1)、選擇安全的登錄認證方式
首推公鑰認證方式

通過ansible 批量更新,或者通過堡壘機的定時任務實現對管理的服務器上的公鑰進行批量更新
如果需要再進一步提升安全性,可在公鑰認證的基礎上增加二次認證,相關文章有:
基于短信的二次認證
基于TOTP的二次認證
嚴禁選擇基于密碼的、基于主機的認證方式:
PasswordAuthentication no
HostbasedAuthentication no
禁用用戶的 .rhosts 文件
IgnoreRhosts yes
如果有條件的可以接入Kerberos 認證
2)選擇安全的ssh-key生成算法生成的key
ssh key 常見算法及安全性
DSA: 已被證明不安全,且從OpenSSH Server 7 之后便不再支持
RSA: RSA算法產生的私鑰的安全性依賴于密鑰的長度,如果密鑰的長度小于3072,則不夠安全,比如常見的2048 位的ssh key 是不夠安全的,1024位直接被標記為不安全
ECDSA:這個算法產生的密鑰安全性依賴于當前機器產生的隨機數的強度
Ed25519: 目前最為推薦的ssh key 生成算法,安全性最好!
如何查看當前認證公鑰key加密算法及其強度:
for key in ~/.ssh/id_*; do ssh-keygen -l -f "${key}"; done | uniq
如何生成Ed25519算法的key 呢?
shell下執行命令:
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "john@example.com"
3)基于權限最小化原則,限制不同用戶使用不同角色的賬戶
有的同學登錄ssh 服務器是為了執行日常的運維操作命令,有的同學則單存為了上傳下載文件,根據權限最小化原則,則給與日常運維的同學以普通ssh賬戶,可以獲取shell,限制只有上傳下載需求的同學只能sftp登錄ssh 服務器
建議參考文章: 運維安全 | 如何限制指定賬戶不能SSH只能SFTP在指定目錄
2、網絡層的訪問控制
1)禁止端口轉發
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
通過禁止TCP端口轉發,可以禁止SSH 遠程端口和本地端口轉發功能,也可以禁止SSH 遠程隧道的建立
2) 限制指定的IP才能連接
如果接入了堡壘機,則限制只允許堡壘機的IP連接
iptables -A INPUT -s 堡壘機IP -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
除了在防火墻上做規則限制,還可以通過TCP Wrapper 和sshd_config的配置命令
3、審計角度的加固
按照等保的要求,服務器對日常的運維行為必須保留日志,便于審計
為了實現等保的審計要求,可以選擇加入堡壘機,或者將ssh 登錄日志、bash 操作日志集中轉發之SOC或者內部日志平臺(比如通過syslog方式),可以參考的文章有: 安全運維之如何將Linux歷史命令記錄發往遠程Rsyslog服務器
4、openssh server 本身的安全加固
及時更新openssh server及其依賴的openssl庫的補丁,比如openssh server就曾曝出過比較嚴重漏洞:OpenSSH現中危漏洞,可致遠程代碼執行
建議關注:openssh 官方安全通告:https://www.openbsd.org/security.html
5、SSH Server 的入侵防范
1)ssh 相關后門進行排查、比如openssh 后門等,相關文章有:
一款短小精致的SSH后門分析
Linux安全運維丨OpenSSH安全淺析
2)ssh 登錄日志的排查
安全運維之如何找到隱匿于last和w命令中的ssh登錄痕跡
二、客戶端安全加固
從putty、winscp 被爆攜帶后門到xshell多個版本被爆后門,客戶端軟件的安全性值得我們投入更多的精力去關注與改進,不然再牛逼的服務端加固也無濟于事
百度軟件中心版putty被曝惡意捆綁軟件
遠程終端管理工具Xshell被植入后門代碼事件分析報告
從等保安全性要求,建議禁止使用破解版的ssh client 軟件,比如SecureCRT 等,避免軟件供應鏈污染導致的安全問題。
建議從正規官網下載Xshell、MobaXterm、putty、winscp等ssh 客戶端軟件。
0×02 總結
從法律對網絡安全要求趨嚴的大環境下,對服務器的有效的加固是比不可少的環節,本文拋磚引玉,希望更多的業內從業人員分享自己的一線經驗。筆者行文匆忙,定有不足之處,還望各位斧正!
|