封包進入主機的四層防護#

網路封包要存取主機資料,必須依序通過四道關卡:

  1. 防火牆過濾:netfilter(IP 封包過濾)與 TCP Wrappers(應用層控制),分析 MAC、IP、埠口與連線狀態
  2. 服務層權限:各網路服務的設定檔可限制特定來源的存取,但若程式本身有漏洞,攻擊者可直接利用
  3. SELinux 細部管制:透過委任式存取控制(MAC),即使程序擁有 root 權限也受限制
  4. 檔案系統權限:傳統 rwx 權限設定,決定最終能否存取資料

每一層防護都是獨立的,任何一層失效都可能被入侵。多層防護的冗餘設計是必要的——不能只依賴單一機制。

常見攻擊手法與防護策略#

密碼猜測攻擊#

攻擊者利用工具暴力嘗試密碼。防護重點:減少資訊曝光、建立嚴格密碼規則、完善權限設定以限制被入侵帳號的傷害範圍。

程式漏洞攻擊#

利用已公開的軟體漏洞,無需猜密碼即可取得權限。定期軟體更新是最重要的防護手段,同時關閉不必要的服務與危險功能。

社交工程#

透過釣魚、假冒身份等方式騙取帳號密碼。純技術手段無法完全防禦,需提高人員安全意識與建立驗證程序。

Rootkit(蠕蟲/木馬)#

取得 root 權限後的工具組,會修改系統指令(lspsnetstat 等)隱藏蹤跡並開啟後門。防護方式:避免安裝不明來源軟體、減少 SUID/SGID 程式、使用 rkhunter 定期檢查。

DDoS 攻擊#

透過大量僵屍電腦發送連線請求,耗盡伺服器資源。單機難以防禦,需依賴核心層面的自動防護與流量監控。

主機防護三大核心策略#

軟體持續更新#

這是預防入侵最有效的方法。防火牆對已開放的服務無能為力,只有修補漏洞才能真正保護服務。選擇有長期維護承諾的 Linux 發行版至關重要。

減少網路服務#

開啟的埠口越少,可被攻擊的管道越少。透過 netstatnmap 檢查系統開放的埠口,關閉不必要的服務。

啟動 SELinux#

即使權限設定不當(如 chmod 777),SELinux 仍能透過 type/domain 限制程序的實際操作範圍,提供額外的安全保障。

SELinux 安全強化機制#

三元素模型#

  • 主體(Subject):程序(process)
  • 目標(Object):檔案系統資源
  • 政策(Policy):規則集合(targeted 為預設)

安全性本文(Security Context)#

由「身份識別:角色:類型」三部分組成。其中類型最為重要:檔案有 type,程序有 domain,兩者必須符合政策規則才能存取。

運作模式#

  • Enforcing:強制執行,阻止違規操作
  • Permissive:寬容模式,僅警告不阻止(用於除錯)
  • Disabled:完全關閉

遇到權限問題時,先切換至 Permissive 模式觀察是否為 SELinux 造成,再針對性地調整規則或布林值,而非直接關閉 SELinux。

被攻擊後的復原流程#

  1. 立即拔除網路線:停止攻擊、保護其他主機
  2. 分析登錄檔:追蹤入侵途徑,避免重蹈覆轍
  3. 備份重要資料:僅備份使用者資料與設定檔,不備份已被竄改的系統檔案
  4. 重新全新安裝:最徹底的清潔方式
  5. 立即更新軟體:安裝完成後、連線前先完成所有更新
  6. 關閉不必要的服務:減少攻擊面
  7. 驗證資料恢復:確認所有恢復的設定無誤
  8. 重新連線:一切準備就緒後才接回網路

被入侵後不要只修補漏洞就繼續使用。系統檔案可能已被植入後門,唯有重新安裝才能確保乾淨。