你是否遇到過服務器突然卡頓、日志里出現大量陌生IP的登錄嘗試?這很可能是黑客在暴力破解你的SSH密碼!SSH(遠程登錄協議)默認使用22端口,就像你家大門的鎖眼位置被所有人知道一樣,極易成為攻擊目標。本文將用“保姆級教程”,教你如何通過修改SSH端口這個簡單操作,讓攻擊者“摸不著門路”!
黑客常用自動化工具全網掃描22端口,嘗試暴力破解密碼。
修改端口后,相當于把“大門鎖眼”藏到隱蔽位置,攻擊者需要掃描全部6萬多個端口才能找到入口,成本大幅增加。
端口修改后,可進一步限制新端口的訪問權限(如僅允許特定IP連接),形成“多重保險”。
重要提示:操作失誤可能導致無法遠程登錄服務器!
先備份SSH配置文件:
bash 復制sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
避免使用常見端口(如2222、22222),推薦在 1024-65535 之間選不連續的數字(如58231)。
注意:不要使用已被系統占用的端口(可通過 netstat -tuln 查看已用端口)。
使用命令行編輯器(如nano或vim)打開配置文件:
bash 復制sudo nano /etc/ssh/sshd_config
找到 #Port 22 這一行(可能被注釋),刪除 # 并添加新端口:
bash 復制Port 22 # 暫時保留舊端口(測試成功后再刪除) Port 58231 # 新增你的自定義端口
(保留舊端口是為了防止新端口配置錯誤導致失聯)
如果使用firewalld(CentOS等):
bash 復制sudo firewall-cmd --permanent --add-port=58231/tcp sudo firewall-cmd --reload
如果使用ufw(Ubuntu等):
bash 復制sudo ufw allow 58231/tcp sudo ufw reload
sudo systemctl restart sshd # 或舊版系統用: sudo service ssh restart
打開新終端窗口,嘗試用新端口連接:
bash 復制ssh 用戶名@服務器IP -p 58231
務必保持當前連接不退出! 測試成功后再關閉舊端口。
確認新端口可用后,再次編輯 /etc/ssh/sshd_config,刪除 Port 22 行,只保留新端口:
bash 復制Port 58231
重啟SSH服務,并關閉防火墻的22端口:
bash 復制sudo systemctl restart sshd sudo ufw deny 22/tcp # Ubuntu # 或 sudo firewall-cmd --permanent --remove-port=22/tcp && firewall-cmd --reload # CentOS
本地電腦執行(替換為你的IP和端口):
bash 復制telnet 服務器IP 58231 # 顯示空白即連通,失敗則提示超時 # 或使用更現代的工具: nc -zv 服務器IP 58231 # 顯示 "succeeded!" 表示成功
檢查防火墻:確保新端口已放行(sudo ufw status 或 firewall-cmd --list-ports)。
檢查SSH服務狀態:systemctl status sshd 確認服務正常運行。
查看日志:sudo tail -f /var/log/auth.log(Ubuntu)或 /var/log/secure(CentOS),觀察連接錯誤信息。
密鑰比密碼更難破解,徹底關閉密碼登錄:
bash 復制# 在sshd_config中修改: PasswordAuthentication no PubkeyAuthentication yes
僅允許辦公室或家的IP連接SSH:
bash 復制# ufw示例(替換為你的IP): sudo ufw allow from 123.45.67.89 to any port 58231
自動封禁多次登錄失敗的IP:
bash 復制sudo apt install fail2ban # Ubuntu sudo yum install fail2ban # CentOS
修改SSH端口是最基礎的防護措施,就像給你的服務器“換個門鎖位置”。配合密鑰登錄、IP限制和Fail2Ban,能構建多層次安全防線。記住:
永遠先備份配置文件!
測試新端口時不要關閉原有連接!
復雜密碼仍是最后一道屏障!
動手試試吧,5分鐘操作,讓服務器安全性提升一個等級!