它不僅提供了加密的遠程登錄會話,還允許安全地傳輸文件和數據
然而,默認情況下,SSH服務通常監聽在TCP端口22上,這是眾所周知的,也因此成為了許多惡意攻擊者的首選目標
為了提高系統的安全性,重新配置SSH服務以監聽非標準端口是一項重要的安全措施
本文將詳細介紹如何在Linux系統上高效、安全地配置SSH端口,確保你的遠程連接既便捷又安全
一、了解SSH端口配置的重要性 SSH端口配置的首要目的是提高系統的安全性
通過更改默認的SSH端口,你可以大大降低被自動化腳本和惡意軟件掃描及攻擊的風險
此外,不同的應用場景也可能需要不同的SSH端口配置,例如,在受限的網絡環境中,某些端口可能被防火墻規則允許或阻止,這時配置一個合適的SSH端口就變得尤為重要
二、準備工作 在開始配置之前,請確保你擁有對目標Linux系統的root權限或通過sudo權限能夠執行必要的命令
同時,考慮到更改SSH端口可能會導致你暫時失去遠程訪問權限,建議在進行操作前,通過物理訪問或已有的遠程會話來確�?梢噪S時恢復訪問
三、修改SSH配置文件 SSH的配置文件通常位于`/etc/ssh/sshd_config`
要更改SSH端口,你需要編輯這個文件
1.打開配置文件 使用你喜歡的文本編輯器,如`nano`、`vim`或`gedit`(在圖形界面下)
例如,使用`nano`: bash sudo nano /etc/ssh/sshd_config 2.查找并修改Port參數 在文件中找到`#Port 22`這一行(有時可能已經是`Port 22`,沒有注釋符號`#`)
將`22`改為你想要的新端口號(例如`2222`),并確保去掉行首的注釋符號`#`: plaintext Port 2222 如果需要同時監聽多個端口,可以在下面添加更多的`Port`行,例如: plaintext Port 2222 Port 2223 但出于安全考慮,通常建議只更改到一個非標準端口
3.保存并退出 根據使用的編輯器,保存更改并退出
在`nano`中,你可以按`Ctrl+O`保存,然后按`Ctrl+X`退出
四、重啟SSH服務 修改配置文件后,需要重啟SSH服務以使更改生效
在大多數Linux發行版中,可以使用以下命令之一來重啟SSH服務: - 對于基于systemd的系統(如Ubuntu 16.04及以后、CentOS 7及以后等): bash sudo systemctl restart sshd - 對于使用init.d腳本的系統(如較舊版本的Ubuntu、CentOS等): bash sudo service sshd restart 五、驗證配置 重啟SSH服務后,你需要驗證新的SSH端口是否正在監聽,并且確保你仍然能夠通過新的端口連接到服務器
1.檢查端口監聽狀態 使用`netstat`或`ss`命令來檢查新的SSH端口是否正在監聽: bash sudo netstat -tuln | grep ssh 或者: bash sudo ss -tuln | grep ssh 你應該能看到類似于`tcp 0 0 0.0.0.0:2222 0.0.0.- 0: LISTEN`的輸出,表明端口2222正在監聽
2.嘗試通過新端口連接 從你的客戶端機器上,嘗試通過新配置的端口連接到服務器
例如,使用SSH客戶端: bash ssh -p 2222 username@server_ip 如果連接成功,說明你的SSH端口配置已經生效
六、更新防火墻規則 如果你的服務器配置了防火墻,別忘了更新防火墻規則以允許新的SSH端口
對于使用ufw的Ubuntu系統: bash sudo ufw allow 2222/tcp sudo ufw delete allow 22/tcp 如果不再需要默認端口22 sudo ufw reload - 對于使用firewalld的CentOS/Fedora系統: bash sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent 如果不再需要默認端口22 sudo firewall-cmd --reload 七、額外安全措施 雖然更改SSH端口已經顯著提高了安全性,但還有一些額外的措施可以進一步增強保護: - 禁用密碼認證,啟用密鑰認證:通過編輯`/etc/ssh/sshd_config`,設置`PasswordAuthentication no`