Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

修改 SSH 預設埠口 22 兩大安全策略:直接修改 vs 雙埠過渡法

編輯:Linux 教學

SSH 埠口 22 為暴力破解首選目標。修改預設埠口可避開 90% 以上自動化掃描。本文提供 直接修改法 與 雙埠過渡法 (零停機、防鎖死) 兩種策略,並整合防火牆與 SELinux 配置。

策略一:直接修改 (適用維護窗口、可接受短暫中斷)

1. 修改 sshd 配置

vim /etc/ssh/sshd_config
# 找到 #Port 22
Port 2222          # 新埠口 (建議 1024-65535 非常用埠)
# Port 22         # 註解掉舊埠

2. 重啟 SSH 服務

systemctl restart sshd
# 或
service sshd restart

3. 防火牆開放新埠

# firewalld
firewall-cmd --add-port=2222/tcp --permanent
firewall-cmd --reload

# iptables
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
service iptables save

# ufw
ufw allow 2222/tcp

4. SELinux (RHEL/CentOS/Fedora)

semanage port -a -t ssh_port_t -p tcp 2222
# 驗證
semanage port -l | grep ssh_port_t

5. 客戶端連線

ssh -p 2222 user@host
# 或 ~/.ssh/config
Host myserver
    HostName 192.168.1.100
    Port 2222
    User admin

策略二:雙埠過渡法 (生產環境零風險最佳實踐)

核心邏輯:同時監聽 22 與新埠 → 驗證新埠連線正常 → 移除 22 → 關閉防火牆 22。

步驟

  1. 新增埠口:
    vim /etc/ssh/sshd_config
    Port 22
    Port 2222
  2. 重啟服務:systemctl restart sshd
  3. 開放防火牆:同策略一開放 2222
  4. 驗證新埠:ssh -p 2222 user@host 確認可登入
  5. 移除舊埠:
    vim /etc/ssh/sshd_config
    # Port 22
    Port 2222
  6. 重啟服務:systemctl restart sshd
  7. 關閉防火牆 22:移除 22 允許規則

進階防護:結合 Fail2Ban 限制暴力破解

# 安裝
dnf install fail2ban  # RHEL/CentOS/Fedora
apt install fail2ban  # Debian/Ubuntu

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
findtime = 600
action = iptables-multiport[name=sshd, port="2222", protocol=tcp]

systemctl enable --now fail2ban

其他 SSH 強化配置 (建議同步啟用)

# /etc/ssh/sshd_config
PermitRootLogin no           # 禁止 root 登入
PubkeyAuthentication yes     # 僅允許金鑰認證
PasswordAuthentication no    # 禁用密碼認證
PermitEmptyPasswords no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers admin deploy      # 僅允許特定使用者
# AllowGroups sshusers       # 或允許特定群組

驗證清單

# 1. 確認監聽埠
ss -tlnp | grep sshd
# 2. 測試連線
ssh -p 2222 -o ConnectTimeout=5 user@host
# 3. 檢查防火牆
firewall-cmd --list-ports
# 4. 檢查 SELinux
semanage port -l | grep ssh
# 5. 模擬暴力破解
for i in {1..5}; do ssh -p 2222 fake@host; done
# 第 4 次應被 Fail2Ban 封鎖

結語

修改 SSH 埠口是 安全性收益最高、成本最低 的單一動作。生產環境務必採用 雙埠過渡法 避免鎖死自己。配合 金鑰認證 + Fail2Ban + 禁止 root 登入 構建纵深防禦。記住:security through obscurity (隱匿性安全) 單獨無效,但作為 第一道防線大幅降低雜訊 極其有效。

Copyright © Windows教程網 All Rights Reserved