如何強化 Linux 伺服器的安全性 (★ 43 分)
這份開源指南由 imthenachoman 提供,是為一般家用或小型 Linux 伺服器打造的安全強化參考。內容從安裝前準備、威脅模型設定、發行版選擇到系統基礎最佳化,並經由可複製貼上的 Shell 指令或 Ansible 劇本示範如何配置 SSH (Secure Shell 安全殼層協定) 公私鑰、限制 root 登入與 sudo 權限,開啟自動安全更新並設置郵件提醒,還介紹 NTP (Network Time Protocol 網路時間協定) 客戶端同步時鐘與 /proc hidepid 保護等技巧,以及 Ansible 劇本集中化自動化部署範例。
在 SSH 強化方面,本指南建議採用 Ed25519 金鑰並建立 sshusers 群組透過 AllowGroups 控制登入,移除弱 Diffie-Hellman 金鑰、調整 Cipher 與 MAC 為 Mozilla 現代建議,並關閉 PasswordAuthentication 密碼登入與 PermitRootLogin root 登入,配合 2FA (Two-Factor Authentication 雙因子驗證) 模組整合 Google PAM 多因素認證 (TOTP 時基一次性密碼),提高防禦強度;若需額外層級,可結合 Fail2Ban 及 CrowdSec 創建白名單/黑名單,並利用 PSAD (Port Scan Attack Detector 端口掃描攻擊偵測器) 檢測封包異常。
系統基本面則包含限制 sudo 與 su,運用 Firejail 沙盒化重要應用、清理 entropy pool、入口設置 pam_pwquality 強制密碼強度、動態 /proc 掛載參數加 hidepid,以及開啟 unattended-upgrades 自動套用安全更新並搭配 apticron 電郵通知。網路層面則以 UFW (Uncomplicated Firewall 簡易防火牆) 作為 iptables 前端,預設封鎖所有流量並按需放行,並依序應用 PSAD、fail2ban 與 CrowdSec 等工具,建立多層次入侵偵測與攔截;另透過 ss 檢視監聽埠、logwatch 每日彙整日誌,及 Lynis、OSSEC 主機稽核強化監控。
進階「危險區」涵蓋 Linux 內核 sysctl 參數硬化、GRUB 密碼保護、鎖定 root 帳號、調整預設 umask 與清理孤立套件等高風險步驟,提醒務必先測試服務相依性後才實施;其他可選策略還有磁碟加密並將金鑰委由 TPM (Trusted Platform Module 受信任平台模組) 自動解密,或採用 Exim4 隱式 TLS、msmtp 精簡郵件傳送設定,以及將 iptables 日誌導向獨立檔案並結合 logrotate 控制滾動。
Hacker News 討論中,多位資深網友提出此指南雖細節豐富,卻難免舊文搬磚與拼貼,缺少對磁碟加密、TPM 晶片、SELinux (Security-Enhanced Linux)、AppArmor、eBPF (extended Berkeley Packet Filter 延伸 Berkeley 封包過濾器) 等內核防護機制的整體驗證,且 Fail2Ban 可能給予誤導性安全感,建議改用 spiped、WireGuard 隧道或 YubiKey、NitroKey 類硬體金鑰管理登入流程,並聚焦基本步驟:及時打 patch、嚴謹備份、以金鑰取代密碼遠端登入,參考 Debian 安全手冊、Linux Kernel Defence Map 與 Linux Kernel Hardening Checker 等專案進行實戰驗證與持續更新。
👥 38 則討論、評論 💬
https://news.ycombinator.com/item?id=44755298