Linux 服務(wù)器 SSH 安全加固
歡迎來(lái)到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識(shí)。在Linux服務(wù)器運(yùn)維中,SSH服務(wù)是遠(yuǎn)程管理的核心入口,也是黑客攻擊的主要目標(biāo)——弱密碼暴力破解、默認(rèn)端口暴露、密鑰權(quán)限不當(dāng)?shù)葐?wèn)題,都可能導(dǎo)致服務(wù)器被入侵。很多新手因忽視SSH安全配置,剛部署的服務(wù)器就遭遇挖礦程序植入,數(shù)據(jù)被竊取的案例屢見(jiàn)不鮮。今天我們就聚焦“Linux 服務(wù)器 SSH 安全加固”,從幾個(gè)關(guān)鍵維度講透配置技巧,構(gòu)建起 SSH 安全防線。
一、基礎(chǔ)加固:從端口和密碼下手
SSH 默認(rèn)配置存在明顯安全隱患,先從最易被攻擊的“端口”和“密碼”兩個(gè)點(diǎn)進(jìn)行加固,成本低且效果顯著。
1. 修改 SSH 默認(rèn)端口(避開(kāi)掃描)
SSH默認(rèn)22端口是黑客掃描重點(diǎn),改至10000-65535間隨機(jī)端口(如23456),可大幅降低攻擊風(fēng)險(xiǎn)。
1. 改SSH配置(去掉Port 22前#號(hào),改為自定義端口)
vim /etc/ssh/sshd_config
Port 23456
2. 重啟服務(wù)(CentOS用sshd,Ubuntu用ssh)
systemctl restart sshd
systemctl restart ssh
3. 防火墻開(kāi)放新端口
firewall-cmd --add-port=23456/tcp --permanent && firewall-cmd --reload
2. 強(qiáng)化密碼策略(抵御暴力破解)
設(shè)置8位以上復(fù)雜密碼(含大小寫(xiě)、數(shù)字、特殊符號(hào)),限制90天有效期,禁止空密碼登錄。
1. SSH配置禁用空密碼
vim /etc/ssh/sshd_config
PermitEmptyPasswords no
2. CentOS安裝密碼策略工具,配置復(fù)雜度
yum install -y pam_cracklib
vim /etc/pam.d/system-auth
password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
3. 設(shè)密碼有效期90天(root及全局)
chage -M 90 root
sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
重啟SSH生效
systemctl restart sshd
二、進(jìn)階防護(hù):登錄控制與權(quán)限限制
通過(guò)限制登錄用戶、禁止root直接登錄等方式,進(jìn)一步縮小攻擊面,即使密碼泄露也能降低風(fēng)險(xiǎn)。
1. 禁止 root 直接登錄(核心防護(hù))
禁止root直接登錄,需通過(guò)普通用戶(如admin)登錄后sudo切換,避免root賬號(hào)暴露。
1. 建普通用戶并設(shè)密碼
useradd admin && passwd admin
2. 配置sudo權(quán)限
echo "admin ALL=(ALL) ALL" >> /etc/sudoers
3. 禁用root SSH登錄,重啟服務(wù)
sed -i 's/PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
2. 限制允許登錄的用戶
僅允許指定用戶/組登錄,實(shí)現(xiàn)白名單防護(hù),拒絕所有未授權(quán)用戶。
編輯配置,允許admin/ops用戶(或wheel組)登錄
vim /etc/ssh/sshd_config
AllowUsers admin ops
AllowGroups wheel
systemctl restart sshd
三、最終方案:?jiǎn)⒂?SSH 密鑰登錄
密鑰登錄比密碼更安全,生產(chǎn)環(huán)境優(yōu)先使用。以下是本地-服務(wù)器完整配置流程。
1. 本地生成4096位RSA密鑰(按回車(chē)默認(rèn)保存)
ssh-keygen -t rsa -b 4096
2. 上傳公鑰到服務(wù)器(替換端口、用戶、IP)
ssh-copy-id -p 23456 admin@192.168.1.100
3. 服務(wù)器禁用密碼登錄,僅啟密鑰
vim /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
systemctl restart sshd
4. 本地測(cè)試登錄(無(wú)需輸密碼即成功)
ssh -p 23456 admin@192.168.1.100
四、安全審計(jì):記錄與監(jiān)控 SSH 登錄行為
通過(guò)日志監(jiān)控SSH登錄,快速發(fā)現(xiàn)異常行為,追溯攻擊來(lái)源。
查看SSH日志(CentOS用secure,Ubuntu用auth.log)
grep "sshd" /var/log/secure
grep "sshd" /var/log/auth.log
篩選成功/失敗登錄記錄
grep "Accepted" /var/log/secure
grep "Failed password" /var/log/secure | grep -v "invalid"
實(shí)時(shí)監(jiān)控登錄行為
tail -f /var/log/secure | grep "sshd"
五、總結(jié)
SSH安全加固核心是“縮小攻擊面+強(qiáng)化認(rèn)證”,改端口、禁root、限用戶、用密鑰這幾步做好,就能大幅降低入侵風(fēng)險(xiǎn),新手按步驟實(shí)操即可快速上手。
藍(lán)隊(duì)云官網(wǎng)上有更詳細(xì)的 Linux 安全運(yùn)維手冊(cè),包含防火墻進(jìn)階配置、入侵檢測(cè)系統(tǒng)部署等內(nèi)容,大家可自行查閱。更多技術(shù)問(wèn)題,可直接咨詢藍(lán)隊(duì)云技術(shù)支持;我們整理的“Linux 安全加固工具包”中,也包含了 SSH 配置檢查腳本、登錄日志分析工具,需要的朋友隨時(shí)聯(lián)系獲取。