運(yùn)維寶典之 Linux 系統(tǒng) ssh 加固指導(dǎo)方案
SSH(Secure Shell)是用于遠(yuǎn)程命令行訪問服務(wù)器的核心工具。然而,要真正保障 SSH 的安全性,您需要限制訪問權(quán)限到特定 IP 地址,并遵循一些最佳實(shí)踐。如果默認(rèn)將 SSH 開放給所有人訪問,這將成為巨大的安全隱患,很容易遭受暴力破解攻擊和未經(jīng)授權(quán)的登錄。
本文將介紹如何通過限制 IP 地址來保護(hù) Linux 服務(wù)器上的 SSH 訪問權(quán)限,同時分享一些可能對您有用的 SSH 加固技巧。隨著威脅的不斷演變,加強(qiáng)服務(wù)器的安全性和主動進(jìn)行服務(wù)器管理非常重要。通過這些方法,您可以大幅降低安全漏洞的風(fēng)險,并確保服務(wù)器平穩(wěn)運(yùn)行。
1. SSH 安全性:使用 sshd_config 文件
修改 sshd_config 文件是限制 SSH 訪問 IP 地址的最簡單方法之一。以下是步驟:
打開 sshd_config 文件:
vi /etc/ssh/sshd_config
找到以下配置行:
#PermitRootLogin yes
在它下方添加如下內(nèi)容:
AllowUsers username@ip_address
將 username 替換為要允許訪問的用戶名,ip_address 替換為要允許訪問的 IP 地址。如果需要添加多個 IP 地址,可用空格分隔。
保存并退出文件,然后重啟 SSH 服務(wù):
systemctl restart sshd
這樣,只有指定用戶從指定 IP 地址訪問服務(wù)器時才能使用 SSH。
2. SSH 安全性:使用 TCP Wrappers
TCP Wrappers 是一種基于規(guī)則的訪問控制機(jī)制,可以通過配置 /etc/hosts.allow 和 /etc/hosts.deny 文件來限制網(wǎng)絡(luò)服務(wù)訪問權(quán)限。
使用 TCP Wrappers 限制 SSH 訪問的步驟:
① 編輯 /etc/hosts.allow 文件:
vi /etc/hosts.allow
添加以下行:
sshd: IP_address
將 IP_address 替換為允許訪問的 IP 地址。
② 編輯 /etc/hosts.deny 文件:
vi /etc/hosts.deny
添加以下行:
sshd: ALL
這將禁止其他所有 IP 地址的訪問。
③ 保存并退出文件,然后重啟 SSH 服務(wù):
systemctl restart sshd
3. SSH 安全性:使用防火墻規(guī)則
您還可以通過防火墻規(guī)則限制 SSH 訪問權(quán)限。以下是不同防火墻工具的實(shí)現(xiàn)方法:
(1) 使用 iptables
① 創(chuàng)建一個新規(guī)則鏈并添加規(guī)則:
iptables -N SSHALLOW
iptables -A SSHALLOW -s IP_address -p tcp --dport ssh -j ACCEPT
iptables -A SSHALLOW -j DROP
將 IP_address 替換為允許訪問的 IP 地址。
② 保存規(guī)則:
service iptables save
③ 重載規(guī)則:
sudo service iptables reload
(2) 使用 ufw
① 允許指定 IP 地址訪問:
sudo ufw allow from [IP_address] to any port ssh
將 [IP_address] 替換為允許訪問的 IP 地址。
② 拒絕其他所有 IP 地址的訪問:
sudo ufw default deny incoming
③重載防火墻規(guī)則:
sudo ufw reload
(3) 使用 firewalld
① 允許指定 IP 地址訪問:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP_address]"
② 拒絕其他所有 IP 地址:
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="!
③ 重載規(guī)則:
sudo firewall-cmd --reload
4. SSH 安全加固最佳實(shí)踐
(1) 使用非標(biāo)準(zhǔn)端口
默認(rèn)情況下,SSH 監(jiān)聽 22 端口。更改為非標(biāo)準(zhǔn)端口可以提高安全性:1. 編輯 sshd_config 文件:
vi /etc/ssh/sshd_config
① 找到以下行并更改端口號:
Port 22
將 22 替換為 1024 到 65535 范圍內(nèi)的未使用端口。
② 重啟服務(wù):
systemctl restart sshd
(2) 使用 SSH 密鑰代替密碼
生成 SSH 密鑰對并將公鑰添加到服務(wù)器的 ~/.ssh/authorized_keys 文件中。確保在 sshd_config 文件中啟用以下配置:
PubkeyAuthentication yes
(3) 禁用 root 登錄
在 sshd_config 文件中修改以下配置:
PermitRootLogin no
(4) 使用 Fail2ban
Fail2ban 通過監(jiān)控日志文件并禁止顯示惡意行為的 IP 地址,保護(hù)服務(wù)器免受暴力破解攻擊。安裝和配置 Fail2ban 后,您可以顯著提高 SSH 的安全性。
5. 結(jié)論
保護(hù)服務(wù)器安全需要不斷努力。通過限制 SSH 訪問、使用非標(biāo)準(zhǔn)端口、啟用 SSH 密鑰認(rèn)證以及配置 Fail2ban,您可以顯著降低服務(wù)器遭受攻擊的風(fēng)險。隨著網(wǎng)絡(luò)攻擊的頻率和復(fù)雜性不斷提高,確保服務(wù)器安全顯得尤為重要。
將安全性視為服務(wù)器管理的優(yōu)先事項,并定期更新您的安全策略,是保障系統(tǒng)持續(xù)運(yùn)行的關(guān)鍵。