萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 系統安全強化實戰:備份驗證、集中日誌、分區唯讀與最小權限原則

前言:安全是過程,不是產品

Linux 預設相對安全,但「預設」不等於「生產環境就緒」。本文整理四大核心強化策略:完整備份與完整性驗證、集中化日誌審計、關鍵分區唯讀掛載、最小權限與攻擊面縮減,並提供具體實作指令與工具鏈,助您構建纵深防禦體系。

一、建立可信基線:完整備份與完整性驗證

1. 黃金映像與離線備份

  • 系統安裝、硬化、應用部署完成後,立即建立 黃金映像:
    dd if=/dev/sda of=/backup/golden.img.zst bs=1M status=progress (離線/單用戶模式)
    或使用 Clonezilla、FOG Project、Veeam Agent 進行映像備份。
  • 備份介質:唯讀光碟 (M-DISC)、離線硬碟、不可變雲端儲存桶 (WORM/S3 Object Lock)。
  • 定期驗證:sha256sum -c golden.sha256、掛載映像比對關鍵檔案 (/bin, /sbin, /lib, /boot, /etc 核心設定)。

2. 檔案完整性監控 (FIM)

  • AIDE (Advanced Intrusion Detection Environment):
    aideinit 建立資料庫 → aide --check 定期比對 (cron/systemd timer)。
    監控範圍:/bin /sbin /lib /lib64 /boot /etc /usr/bin /usr/sbin /usr/lib。
  • Tripwire、Samhain、OSSEC/Wazuh (HIDS):提供即時告警、中央管理、根套件偵測。
  • systemd-tmpfiles 與 rpm -Va / dpkg -V:套件管理器自帶驗證功能,定期執行檢查套件檔案是否被竄改。

3. 可啟動驗證媒體

製作包含驗證腳本的唯讀 Live USB (Ventoy + 自定 ISO),開機自動掛載系統分區、比對雜湊、檢查開機載入器 (GRUB/EFI) 完整性、檢測核心模組簽名。若驗證通過才允許進入生產環境。

二、集中化日誌審計:讓入侵者無處藏身

1. 專用日誌伺服器架構

# 專用機器:僅運行 rsyslog/syslog-ng + logrotate + 儲存 + 告警
# 硬體:大容量 RAID10/Erasure Coding、ECC 記憶體、雙電源
# 網路:隔離管理網段 (VLAN),僅允許 UDP/TCP 514、6514 (TLS)
# 服務:不運行 SSH (僅 Serial Console/Out-of-band)、無 Web 介面、無資料庫

2. 客戶端轉發配置 (rsyslog)

# /etc/rsyslog.d/90-remote.conf
action(type="omfwd"
       Target="logserver.internal"
       Port="6514"
       Protocol="tcp"
       StreamDriver="gtls"
       StreamDriverMode="1"
       StreamDriverAuthMode="x509/name"
       queue.type="LinkedList"
       queue.size="100000"
       queue.saveonshutdown="on"
       action.resumeRetryCount="-1")
*.* @@logserver.internal:6514

3. 日誌保留與合規

  • 熱資料 (SSD) 保留 30-90 天,冷資料 (HDD/Object Storage) 保留 1-7 年 (依法規:SOX 7 年、HIPAA 6 年、GDPR 視業務)。
  • 簽名/加密日誌檔案防竄改:gpg --sign --armor 或 WORM 儲存。
  • 關鍵事件即時告警:fail2ban、Wazuh、Elastic SIEM、Splunk 規則:連續登入失敗、sudo 提權、核心模組載入、SELinux AVC、掛載/卸載、排程任務異常。

三、關鍵分區唯讀掛載與執行限制

1. 唯讀掛載策略

分區建議掛載選項理由
/ro,relatime (或 rw 但配合 AIDE)核心系統檔案極少變動,唯讀防竄改
/bootro,relatime,nosuid,nodev,noexec核心、initramfs、GRUB 極少更新,防惡意替換核心
/usrro,relatime,nosuid,nodev所有套件安裝檔案,僅套件管理器更新時需 remount rw
/lib, /lib64, /sbin, /binro (通常為 /usr 連結)同上
/varrw,relatime,nosuid,nodev,noexec必須可寫,但禁止執行二進制檔、禁止 SUID、禁止裝置節點
/tmp, /var/tmprw,nosuid,nodev,noexec,relatime,size=2G (tmpfs)記憶體檔案系統,防執行惡意腳本,重啟自動清空
/homerw,relatime,nosuid,nodev,noexec (可選)防使用者執行惡意二進制,視業務需求決定 noexec
/srvrw,relatime,nosuid,nodev,noexecWeb 根目錄等,禁止執行 CGIs/二進制 (除非必要)

2. 實作方式:/etc/fstab 與 systemd mount unit

# /etc/fstab 範例
UUID=xxxx  /boot       ext4    ro,relatime,nosuid,nodev,noexec  0 2
UUID=yyyy  /usr        ext4    ro,relatime,nosuid,nodev         0 2
UUID=zzzz  /var        ext4    rw,relatime,nosuid,nodev,noexec  0 2
UUID=aaaa  /tmp        tmpfs   rw,nosuid,nodev,noexec,size=2G   0 0

# 需更新套件時:mount -o remount,rw /usr; dnf update; mount -o remount,ro /usr

四、最小權限與攻擊面縮減

  • 移除不需要的套件:dnf remove $(dnf repoquery --unneeded)、apt autoremove --purge、最小化安裝 (Minimal Install)。
  • 停用未用服務:systemctl disable --now cups bluetooth avahi-daemon ModemManager。
  • 網路服務綁定本地/特定介面:ListenAddress 192.168.1.10 (sshd)、bind-address = 127.0.0.1 (MySQL)。
  • SELinux Enforcing + 專用布林值:setsebool -P httpd_can_network_connect_db=on,拒絕預設拒絕。
  • Capability 精簡:setcap 'cap_net_bind_service=+ep' /usr/bin/nginx 替代 root 執行綁定 80/443 埠。
  • 核心參數強化 (/etc/sysctl.d/99-hardening.conf):
    kernel.kptr_restrict=2, kernel.dmesg_restrict=1, kernel.yama.ptrace_scope=1, net.ipv4.tcp_syncookies=1, fs.suid_dumpable=0, kernel.unprivileged_bpf_disabled=1。
  • 定期掃描:lynis audit system, openvas/gvm, rkhunter, chkrootkit。

結語

安全無絕對,唯有纵深防禦:備份可驗證、日誌不可竄改、關鍵路徑唯讀、最小權限運行、持續監控審計。將這四大支柱納入基礎設施即代碼、CI/CD 流水線、定期演練,才能在 0-day 漏洞、供應鏈攻擊、內部威脅面前保持韌性。

copyright © 萬盛學電腦網 all rights reserved