Linux 遠端登入(SSH)是伺服器管理的生命線,也是攻擊者暴力破解、暴力破解、鍵盤記錄的首選目標。本文示範使用 TCP Wrappers(/etc/hosts.allow、/etc/hosts.deny)實施名單式存取控制,並說明關鍵審計日誌位置,構建第一道防線。
# 編輯 /etc/hosts.deny,拒絕所有服務的所有 IP 連線
ALL: ALL
# 編輯 /etc/hosts.allow,僅允許受信任管理 IP 存取所有服務
# 格式:服務名稱: 允許的IP清單(空格分隔)
# 範例:僅允許 222.222.222.222 與 222.222.222.223 連線
ALL: 222.222.222.222 222.222.222.223
# 或針對特定服務(如 sshd)單獨控制
sshd: 222.222.222.222 222.222.222.223
# 測試語法正確性
tcpdchk -v
# 模擬連線測試(需從受信/非受信 IP 實測)
ssh user@server_ip
Accepted password、Failed password、Invalid usersudo:、su: 相關紀錄useradd、userdel、passwd 紀錄error:、refused connect、kex_exchange_identification# 即時監控登入嘗試
tail -f /var/log/auth.log | grep -E "(Accepted|Failed|Invalid user)"
# 統計最近 1 小時失敗登入來源 IP 前 10 名
grep "Failed password" /var/log/auth.log | \
grep "$(date -d '1 hour ago' '+%b %d %H:')" | \
awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
# 檢測暴力破解特徵:同一 IP 短時間大量失敗
# 建議搭配 fail2ban 自動封鎖
Protocol 2、PermitRootLogin no、PasswordAuthentication no(強制金鑰認證)、PubkeyAuthentication yes、MaxAuthTries 3、LoginGraceTime 30Port 2222(非萬靈丹,但能避開 90% 自動化掃描)pam_google_authenticator.so)滿足等保三級、PCI DSS 8.1、ISO 27001 A.9.4、NIST 800-53 AC-17 等合規要求中的「遠端存取控制」、「審計記錄」、「最小權限」控制目標。