封包進入主機的四層防護#
網路封包要存取主機資料,必須依序通過四道關卡:
- 防火牆過濾:netfilter(IP 封包過濾)與 TCP Wrappers(應用層控制),分析 MAC、IP、埠口與連線狀態
- 服務層權限:各網路服務的設定檔可限制特定來源的存取,但若程式本身有漏洞,攻擊者可直接利用
- SELinux 細部管制:透過委任式存取控制(MAC),即使程序擁有 root 權限也受限制
- 檔案系統權限:傳統 rwx 權限設定,決定最終能否存取資料
每一層防護都是獨立的,任何一層失效都可能被入侵。多層防護的冗餘設計是必要的——不能只依賴單一機制。
常見攻擊手法與防護策略#
密碼猜測攻擊#
攻擊者利用工具暴力嘗試密碼。防護重點:減少資訊曝光、建立嚴格密碼規則、完善權限設定以限制被入侵帳號的傷害範圍。
程式漏洞攻擊#
利用已公開的軟體漏洞,無需猜密碼即可取得權限。定期軟體更新是最重要的防護手段,同時關閉不必要的服務與危險功能。
社交工程#
透過釣魚、假冒身份等方式騙取帳號密碼。純技術手段無法完全防禦,需提高人員安全意識與建立驗證程序。
Rootkit(蠕蟲/木馬)#
取得 root 權限後的工具組,會修改系統指令(ls、ps、netstat 等)隱藏蹤跡並開啟後門。防護方式:避免安裝不明來源軟體、減少 SUID/SGID 程式、使用 rkhunter 定期檢查。
DDoS 攻擊#
透過大量僵屍電腦發送連線請求,耗盡伺服器資源。單機難以防禦,需依賴核心層面的自動防護與流量監控。
主機防護三大核心策略#
軟體持續更新#
這是預防入侵最有效的方法。防火牆對已開放的服務無能為力,只有修補漏洞才能真正保護服務。選擇有長期維護承諾的 Linux 發行版至關重要。
減少網路服務#
開啟的埠口越少,可被攻擊的管道越少。透過 netstat 與 nmap 檢查系統開放的埠口,關閉不必要的服務。
啟動 SELinux#
即使權限設定不當(如 chmod 777),SELinux 仍能透過 type/domain 限制程序的實際操作範圍,提供額外的安全保障。
SELinux 安全強化機制#
三元素模型#
- 主體(Subject):程序(process)
- 目標(Object):檔案系統資源
- 政策(Policy):規則集合(
targeted為預設)
安全性本文(Security Context)#
由「身份識別:角色:類型」三部分組成。其中類型最為重要:檔案有 type,程序有 domain,兩者必須符合政策規則才能存取。
運作模式#
- Enforcing:強制執行,阻止違規操作
- Permissive:寬容模式,僅警告不阻止(用於除錯)
- Disabled:完全關閉
遇到權限問題時,先切換至 Permissive 模式觀察是否為 SELinux 造成,再針對性地調整規則或布林值,而非直接關閉 SELinux。
被攻擊後的復原流程#
- 立即拔除網路線:停止攻擊、保護其他主機
- 分析登錄檔:追蹤入侵途徑,避免重蹈覆轍
- 備份重要資料:僅備份使用者資料與設定檔,不備份已被竄改的系統檔案
- 重新全新安裝:最徹底的清潔方式
- 立即更新軟體:安裝完成後、連線前先完成所有更新
- 關閉不必要的服務:減少攻擊面
- 驗證資料恢復:確認所有恢復的設定無誤
- 重新連線:一切準備就緒後才接回網路
被入侵後不要只修補漏洞就繼續使用。系統檔案可能已被植入後門,唯有重新安裝才能確保乾淨。