本集將帶您深入了解 Daemon(常駐程式) 的世界。在電腦系統中,Daemon 是一種在後台運行的程式,它獨立於使用者直接控制,通常在系統啟動時就開始執行,並且不知疲倦地執行系統的例行性工作、回應網路請求或硬體活動,或是執行排定的任務。其名稱通常以字母「d」結尾,例如 sshd。
「Daemon」這個詞源於古希臘語的 δαίμων,意指「神聖的力量」或「守護神」,也受到物理學中「麥克斯韋妖」(Maxwell's demon)概念的啟發,用來描述那些在後台「不知疲倦地處理系統雜務」的程式。請注意,它與許多文化中代表邪惡的「Demon」(惡魔)是不同的概念。在電腦領域中,「Daemon」的發音可以是 /ˈdiːmən/ 或 /ˈdeɪmən/。
其中一個重要的 Daemon 程式是 SSH Daemon (sshd),它負責處理傳入的 SSH 連線。對於 Web 開發者來說,正確配置 SSH Daemon 是保護伺服器安全的關鍵步驟。我們將分享一些重要的最佳實踐:
- 禁用 root 登入:將配置檔中的 PermitRootLogin 指令設為 no。這能防止攻擊者直接取得管理權限,據統計,禁用 root 登入可使伺服器成功遭受暴力破解攻擊的機率降低高達 50%。
- 使用金鑰驗證而非密碼:根據專家說法,採用此方法的系統被入侵的可能性比依賴密碼的系統降低 99%。金鑰對提供了更強固的安全措施,約 80% 的成功入侵事件是因弱密碼或密碼被竊取所致。配置時需要產生公鑰/私鑰對,並在遠端主機上禁用密碼驗證(將 PasswordAuthentication 設為 no)。有調查顯示,使用金鑰驗證的組織未經授權的存取嘗試減少了 70%。
- 限制使用者存取:使用 AllowUsers 指令指定允許連線的特定使用者。限制存取能減少潛在的入侵點。統計顯示,90% 的成功入侵源於不嚴謹的私人存取控制。
- 更改預設連接埠:將 SSH 連線從標準的 22 埠移開。許多自動化攻擊都針對已知連接埠,更改埠號可以降低這類攻擊的可能性達 50%。
- 監控存取日誌:監控異常模式以主動偵測威脅。研究表明,66% 的網路事件源於未經授權的存取嘗試。使用 LogLevel VERBOSE 選項可以獲得詳細的登入嘗試記錄。可以利用 rsyslog 或 syslog-ng 等框架集中儲存日誌,並分析如 /var/log/auth.log 或 /var/log/secure 中的日誌檔。
- 設定防火牆規則:限制只能從特定 IP 位址存取 SSH。例如,使用 iptables 允許來自信任 IP 的流量並丟棄其他連線。加固防火牆設定可大幅降低外部攻擊的風險,超過 80% 的網路事件涉及外部攻擊。
- 整合入侵偵測系統:使用像 Fail2ban 這樣的工具監控日誌檔,自動封鎖重複失敗登入嘗試的 IP 位址,這是一種預防暴力破解攻擊的主動方法。
- 設定關鍵事件警報:為 root 登入嘗試、使用者建立、來自未知 IP 的失敗登入等設定警報。有報告指出,70% 的成功入侵是由於未監控的日誌檔。
透過實施這些關鍵策略,可以顯著提升伺服器的安全性,降低未經授權存取的風險高達 80%。