在絕大部分的 Linux 服務器上都使用 OpenSSH 作為 SSH server,所以這篇文章只針對 OpenSSH。其實這些技巧都是很基礎的,但如果你能好好使用它們的話,一定程度上確實可以有效提升 SSH 的安全性.
#以下配置項都是在 /etc/ssh/sshd_config 文件中修改。
1. 禁止 root 登錄
PermitRootLogin no
當你啟用這一選項後,你只能用普通用戶登錄,然後再用 su 或 sudo 切換到 root 帳戶。
2. 僅允許指定用戶和組登錄
指定用戶
AllowUsers ramesh john jason
指定組
AllowGroups sysadmin dba
3. 禁止指定的用戶或組登錄
指定用戶
DenyUsers cvs apache jane
指定組
DenyGroups developers qa
注:Allow 和 Deny 可以組合使用,它們的處理順序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups
4. 修改 SSH 監聽端口
把 SSH 監聽端口改為 222
Port 222
5. 修改默認登錄時間
當你連接到 SSH 後,默認是提供 2 分鐘的時間讓你輸入帳戶和密碼來進行登錄,你可以修改這個時間為 1 分鐘或 30 秒。
LoginGraceTime 1m
6. 限制監聽 IP
如果你的服務器上有多個網卡及 IP ,那麼你可以限制某些 IP 不監聽 SSH,只允許通過某些 IP 來登錄。
比如你有四個網卡
eth0 – 192.168.10.200
eth1 – 192.168.10.201
eth2 – 192.168.10.202
eth3 – 192.168.10.203
你只想讓用戶通過 202, 203 這兩個 IP 來登錄,那麼做以下設定
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202
7. 當用戶處於非活動時斷線
當用戶在 10 分鐘內處於非活動狀態的話,就自動斷線。
ClientAliveInterval 600
ClientAliveCountMax 0
ClientAliveCountMax:默認為 3 ,表示當 SSH 沒有任何活動時, SSH Server 會發送三次檢查是否在線(checkalive)的消息。
ClientAliveCountMax:默認為 0,表示當過了幾秒後,SSH Server 會發送消息要求用戶響應(0 的話表示永遠不發送),否則就斷線。