# Linux下如何更改SSH端口號
## 前言
SSH(Secure Shell)是Linux系統中常用的遠程管理協議,默認使用22端口。由于該端口廣為人知,容易成為攻擊目標。本文將詳細介紹如何通過修改SSH端口號來提升系統安全性,涵蓋配置修改、防火墻調整及SELinux設置等關鍵步驟。
---
## 一、為什么需要修改SSH端口?
### 1. 安全風險
- **暴力破解攻擊**:22端口是默認目標,攻擊者常通過自動化工具嘗試破解。
- **減少掃描流量**:修改端口可降低服務器被隨機掃描的概率。
### 2. 注意事項
- 避免使用常見端口(如80、443)。
- 確保新端口未被其他服務占用(可通過`netstat -tuln`或`ss -tuln`檢查)。
---
## 二、修改SSH端口詳細步驟
### 1. 備份配置文件
```bash
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
使用文本編輯器(如nano或vim)打開配置文件:
sudo nano /etc/ssh/sshd_config
找到以下行(若被注釋則取消注釋):
#Port 22
修改為(例如改為2222):
Port 2222
如需同時監聽多個端口,可添加多行:
Port 22
Port 2222
根據系統防火墻工具選擇對應命令:
sudo ufw allow 2222/tcp
sudo ufw reload
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save # 保存規則
sudo ufw status # UFW
sudo firewall-cmd --list-ports # FirewallD
sudo iptables -L -n # iptables
若系統啟用SELinux,需更新策略以允許新端口:
sudo semanage port -l | grep ssh
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo semanage port -l | grep ssh
sudo systemctl restart sshd # 或 sudo service ssh restart
保留當前會話,新開終端測試:
ssh -p 2222 username@server_ip
確認連接成功后,再關閉舊會話。
在配置文件中刪除Port 22并重啟SSH服務。
sudo systemctl status sshdjournalctl -u sshd -fss -tuln | grep 2222若出現權限問題,可臨時禁用SELinux測試:
sudo setenforce 0
(生產環境不建議長期禁用)
禁用root登錄:
在sshd_config中添加:
PermitRootLogin no
密鑰認證替代密碼:
使用ssh-keygen生成密鑰對,并配置:
PasswordAuthentication no
Fail2Ban防護:
安裝Fail2Ban自動封禁暴力破解IP:
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # RHEL/CentOS
通過修改SSH默認端口,結合防火墻和SELinux的配置,可顯著提升系統安全性。建議定期審查日志并更新安全策略,以應對不斷變化的威脅環境。
注意:操作前請確保有其他訪問途徑(如控制臺),避免配置錯誤導致無法連接。 “`
本文共約1200字,涵蓋從基礎配置到高級安全的完整流程,適合不同水平的Linux用戶參考。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。