SSH 安全性強化實戰:免費方法保護你嘅 Linux 伺服器

# SSH 安全性強化实战:免費方法保護你嘅 Linux 伺服器 今日心血來潮,整多幾台 VM 跑緊舊款 Ubuntu 20.04,撳咗入去 check 吓 security log,見到有大量來自世界各地嘅登入失敗記錄,唔係一兩次,而係一日幾千次。你伺服器係咪都一樣?其實只要你用 Linux,無論係 AWS EC2 、物理機、還是 VM,SSH 永遠係最常被攻擊嘅入口。今次分享下點樣用免費工具同...

# SSH 安全性強化实战:免費方法保護你嘅 Linux 伺服器

今日心血來潮,整多幾台 VM 跑緊舊款 Ubuntu 20.04,撳咗入去 check 吓 security log,見到有大量來自世界各地嘅登入失敗記錄,唔係一兩次,而係一日幾千次。你伺服器係咪都一樣?其實只要你用 Linux,無論係 AWS EC2 、物理機、還是 VM,SSH 永遠係最常被攻擊嘅入口。今次分享下點樣用免費工具同設定技巧,全面強化 SSH 安全。

👉 延伸閱讀:Linux Server SSH 安全加固 5 步搞掂:由基本到進階嘅完整指南

## 第一步:杜絕 root 登入 + 改預設 port

首先,唔好再用 root 帳戶直接登入。編輯 `/etc/ssh/sshd_config`:

“`bash
# 禁 root 直接登入
PermitRootLogin no

# 改 SSH 預設 port(22 係人都知)
Port 2222
“`

**溫馨提示:** 改完 port 之後,記得喺 firewall 開咗個新 port 先再 restart sshd,否則下次連唔入去就扎手紮腳:

“`bash
# Ubuntu/Debian – ufw
ufw allow 2222/tcp
ufw reload

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

# 確認新設定
systemctl restart sshd
“`

## 第二步:SSH Key 認證(密碼靠邊站)

密碼認證係最弱一環,就算幾複雜都好,都可以被 brute-force 爆。今次全面改用 SSH Key:

**1. 生成 SSH Key pair(Mac/Linux client):**
“`bash
ssh-keygen -t ed25519 -C “your_email@company.com”
# 建議設立 passphrase,雙重保障
“`

**2. 將公鑰複製到伺服器:**
“`bash
ssh-copy-id -p 2222 -i ~/.ssh/id_ed25519.pub user@your-server-ip
“`

**3. 關閉密碼認證:**
“`bash
# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
“`

**4. 只允許特定用戶 SSH:**
“`
AllowUsers admin deploy@192.168.1.100
“`

## 第三步:fail2ban 自動封鎖攻擊者

就算你已经改 port + 用 key,黑客依然會不斷撞。fail2ban 可以自動偵測失敗登入,超過設定次數就封 IP:

“`bash
# 安裝
sudo apt install fail2ban -y

# 啟動
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
“`

**自訂設定(/etc/fail2ban/jail.local):**
“`ini
[sshd]
enabled = true
port = 2222
filter = sshd
maxretry = 3
bantime = 3600 # 封 1 小時
findtime = 600 # 10 分鐘內超過 3 次即封

[nginx-http-auth]
enabled = false # 暫時唔用
“`

**常用指令:**
“`bash
# 睇目前被封既 IP
sudo fail2ban-client status sshd

# 手動解封 IP
sudo fail2ban-client set sshd unbanip 1.2.3.4

# 睇日誌
sudo tail -f /var/log/fail2ban.log
“`

## 第四步:雙重認證(2FA)- 最後防線

想再穩陣啲?可以加 Google Authenticator 做 2FA:

“`bash
# Ubuntu/Debian
sudo apt install libpam-google-authenticator -y

# 設定(每個用戶各自執行)
google-authenticator

# 跟住螢幕指示Scan QR code入 Authenticator App
“`

然後編輯 `/etc/pam.d/sshd`,加一行:
“`
auth required pam_google_authenticator.so
“`

再改 `/etc/ssh/sshd_config`:
“`
AuthenticationMethods publickey,keyboard-interactive
“`

## 總結:安全係性價比最高嘅投資

以上四步全部免費,用嘅都係 Linux 內置或主流開源工具,但防護效果顯著:

| 設定 | 抵擋邊種攻擊 | 難度 |
|——|————|——|
| 禁 root + 改 port | 自動攻擊、botnet | ⭐ |
| SSH Key | 密碼破解、釣魚 | ⭐⭐ |
| fail2ban | brute-force | ⭐⭐ |
| 2FA | 憑證盜用 | ⭐⭐⭐ |

你伺服器係咪仲用緊 default port 22?快啲檢查下 fail2ban 有冇運作,呢啲小事可以幫你避開大部分攻擊。有問題歡迎留言討論!

#安全 #技術分享 #IT教學 #SSH #Linux