確保Ubuntu SSH的安全性是非常重要的,因為SSH是遠程訪問服務器的主要方式之一。以下是一些提高Ubuntu SSH安全性的建議:
更改默認端口: 默認情況下,SSH使用端口22。將SSH服務更改為使用非標準端口可以減少自動化攻擊的風險。
編輯SSH配置文件:
sudo nano /etc/ssh/sshd_config
找到#Port 22
這一行,取消注釋并更改為你選擇的端口號,例如:
Port 2222
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart ssh
禁用root登錄: 編輯SSH配置文件:
sudo nano /etc/ssh/sshd_config
找到PermitRootLogin
這一行,將其設置為no
:
PermitRootLogin no
這樣可以防止root用戶直接通過SSH登錄,從而增加一層安全保護。
使用公鑰認證:
使用公鑰認證而不是密碼認證可以大大提高安全性。生成SSH密鑰對并將其添加到服務器的authorized_keys
文件中。
在本地機器上生成SSH密鑰對:
ssh-keygen -t rsa -b 4096
將公鑰復制到服務器:
ssh-copy-id user@server_ip -p 2222
確保在sshd_config
文件中啟用了公鑰認證:
PubkeyAuthentication yes
限制SSH訪問: 使用防火墻限制SSH訪問,只允許特定IP地址訪問SSH端口。
使用ufw
(Uncomplicated Firewall)配置防火墻規則:
sudo ufw allow 2222/tcp
sudo ufw enable
使用Fail2Ban: Fail2Ban是一個入侵防御軟件框架,可以監控日志文件并禁止惡意IP地址訪問SSH。
安裝Fail2Ban:
sudo apt-get install fail2ban
配置Fail2Ban以監控SSH日志并禁止惡意IP地址:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
在[ssh]
部分進行如下配置:
[ssh]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
重啟Fail2Ban服務:
sudo systemctl restart fail2ban
定期更新系統和軟件: 定期更新Ubuntu系統和SSH軟件包,以確保所有安全補丁都已應用。
更新系統:
sudo apt-get update
sudo apt-get upgrade
通過以上步驟,你可以顯著提高Ubuntu SSH的安全性。記住,安全性是一個持續的過程,需要定期檢查和更新你的安全措施。