如何安全地將SLES系統日誌匯出到遠端Syslog伺服器

將 SUSE Linux Enterprise Server (SLES) 系統日誌匯出到遠端 syslog 收集器的最安全實用方法是使用 TLS 加密的 TCP 協定透過 rsyslog 傳輸日誌,並按名稱驗證收集器證書,同時為轉送操作指派一個獨立的佇列。純 UDP syslog 雖然簡單,但無法提供機密性或對等身份驗證。純 TCP 雖然可以改善日誌傳輸效能,但日誌內容在傳輸過程中仍會暴露。

本指南使用 GnuTLS 網路流驅動程式 ( gtls) 和最新的 rsyslog 操作語法。此流程適用於 SLES 15 SP7 系統,其管理指南已於 2026 年 10 月 1 日更新。在直接複製配置之前,請務必檢查主機上確切的軟體包和 rsyslog 版本。上游 rsyslog 文件建議在現代部署中使用帶有 TLS 的 TCP,並建議使用操作佇列進行 TCP 轉送。

權威參考資料:SUSE Linux Enterprise Server 15 SP7 文件、rsyslog omfwd 文件、rsyslog TLS 用戶端設定以及RFC 5425:Syslog 的 TLS 傳輸映射。

快速參考

物品建議值為什麼這很重要
運輸使用 TLS 的 TCP對日誌流量進行加密,並支援基於憑證的身份驗證。
典型目的港6514/tcpRFC 5425 將 TCP 連接埠 6514 指派給透過 TLS 傳輸的 syslog。
rsyslog 流驅動程式gtls安裝 SLES 模組後,透過 GnuTLS 提供 TLS 功能。
TLS模式StreamDriverMode="1"強制使用 TLS 保護的操作,而不是普通的 TCP。
驗證x509/name驗證憑證鏈並檢查預期的伺服器名稱。
轉發佇列queue.type="linkedList"將本機日誌處理與臨時收集器故障解耦。

配置轉送之前

您需要遠端收集器的完全限定網域名稱、其監聽的 TCP 連接埠以及簽署收集器憑證的憑證授權單位 (CA) 憑證。對於雙向 TLS,您還需要 SLES 機器的用戶端憑證和私鑰。收集器憑證必須對您在 rsyslog 中配置的主機名稱有效,最好透過主題備用名稱 (SAN) 進行驗證。請勿透過停用證書驗證來解決名稱不符的問題。

遠端收集器必須已配置為接受 TLS syslog。本文重點介紹 SLES 傳送方,因為接收方的配置在 rsyslog、syslog-ng、SIEM 設備和託管日誌服務之間有所不同。如果系統之間存在防火牆,則允許 SLES 主機透過設定的連接埠向收集器發起 TCP 連線。預設的基於狀態的 firewalld 政策通常不需要在 SLES 發送方上開啟入站連接埠。

步驟 1:確認 rsyslog 已安裝並確定目前版本

首先檢查軟體包和守護程式的版本。這可以避免因舊範例使用伺服器上建立版本不支援的指令而導致的混淆。

rpm -q rsyslog
rsyslogd -v
systemctl status rsyslog --no-pager
SLES 終端機顯示 rpm -q rsyslog 指令,用於確認已安裝的 rsyslog 軟體包。
在變更 rsyslog 軟體包的設定之前,請檢查已安裝的 rsyslog 軟體包。

如果未安裝 rsyslog,請從已啟用的 SLES 軟體倉庫安裝。在建立長時間日誌連線之前,請透過正常的 SUSE 更新流程保持系統修補程式完整。

步驟 2:安裝 GnuTLS rsyslog 模組

在 SLES 系統中,TLS 網路驅動程式是單獨打包的。請安裝 GnuTLS 模組並保留基礎的 rsyslog 軟體包:

sudo zypper install rsyslog rsyslog-module-gtls
使用 zypper install rsyslog-module-gtls 指令在 SLES 終端機中執行。
安裝提供 gtls 網路流驅動程式的 rsyslog GnuTLS 模組。

您可以使用以下命令確認文件是否來自預期的軟體包rpm -ql rsyslog-module-gtls。軟體包名稱因發行版而異,因此請勿從 Debian 或 RHEL 指南中複製軟體包名稱。

步驟 3:安全存放 CA 憑證和用戶端憑證。

請使用貴組織或日誌平台頒發的憑證。對於生產系統,請避免在日誌發送主機上建立新的私有 CA。實驗室環境可以使用測試 CA,但生產環境中的信任材料應遵循貴組織的 PKI 流程。

建立一個root權限的目錄,複製文件,並限制私鑰的存取權限。將範例檔案名稱替換為您的PKI團隊提供的路徑:

sudo install -d -m 0755 /etc/rsyslog.d/certs
sudo install -m 0644 ca.pem /etc/rsyslog.d/certs/ca.pem
sudo install -m 0644 sles-client.crt /etc/rsyslog.d/certs/sles-client.crt
sudo install -m 0600 sles-client.key /etc/rsyslog.d/certs/sles-client.key
sudo chown root:root /etc/rsyslog.d/certs/*

檢查證書頒發機構 (CA) 和用戶端證書,而不是僅僅信任檔案名稱:

openssl x509 -in /etc/rsyslog.d/certs/ca.pem -noout -subject -issuer
openssl x509 -in /etc/rsyslog.d/certs/sles-client.crt -noout -subject -issuer -dates
SLES 終端機正在檢查 root 使用者擁有的 rsyslog 憑證目錄,並使用 OpenSSL 檢查 CA 憑證的主題和頒發者。
在從 rsyslog 中引用憑證檔案之前,請先驗證憑證檔案及其所有權。

rsyslog TLS 用戶端文件明確警告,必須保護機器私鑰。如果其他使用者可以讀取私鑰,則該使用者可能能夠冒充日誌客戶端。

步驟 4:設定帶有伺服器名稱驗證的 TLS 轉發

建立一個專用的臨時配置,例如/etc/rsyslog.d/60-remote-tls.conf。將遠端轉送與供應商配置分開,可以簡化審查和回滾過程。

global(
    DefaultNetstreamDriver="gtls"
    DefaultNetstreamDriverCAFile="/etc/rsyslog.d/certs/ca.pem"
    DefaultNetstreamDriverCertFile="/etc/rsyslog.d/certs/sles-client.crt"
    DefaultNetstreamDriverKeyFile="/etc/rsyslog.d/certs/sles-client.key"
)

action(
    type="omfwd"
    target="logs.example.com"
    port="6514"
    protocol="tcp"
    StreamDriver="gtls"
    StreamDriverMode="1"
    StreamDriverAuthMode="x509/name"
    StreamDriverPermittedPeers="logs.example.com"
    queue.type="linkedList"
)
配置編輯器顯示了與 TLS 相關的全域設定以及對 TCP 連接埠 6514 上的 logs.example.com 執行的 omfwd 操作,並啟用了 x509 名稱驗證。
轉送操作使用僅 TLS 模式、明確允許的對等方名稱和鍊錶佇列。文章中的完整範例還包括用於雙向 TLS 的客戶端憑證和金鑰。

StreamDriverMode="1"這一點很重要:在預設模式為純 TCP 的配置中,僅選擇支援 TLS 的驅動程式是不夠的。StreamDriverAuthMode="x509/name"它還會驗證遠端證書,並檢查伺服器身分是否與允許的對等方相符。盡可能使用憑證中的確切收集器名稱,而不是寬泛的通配符。

上述操作會轉發所有到達的訊息。如果您只想轉發特定設施或優先順序的訊息,請在操作前新增過濾器。例如,在以安全性為中心的環境中,可能會轉送身份驗證和守護程序事件,同時將大量應用程式偵錯日誌保留在本機。過濾應基於保留、事件回應和合規性需求,而不是簡單地假設所有訊息都必須離開主機。

步驟 5:驗證、重新啟動、發送測試事件並檢查送達情況

重啟 rsyslog 服務之前,請先驗證完整的設定。這是發現語法錯誤和缺失模組引用的最快方法:

sudo rsyslogd -N1

如果驗證成功,則重新啟動 rsyslog 並傳送一條唯一的測試訊息:

sudo systemctl restart rsyslog
sudo systemctl status rsyslog --no-pager
logger -t sles-tls-test "remote syslog TLS test $(date -Is)"
sudo journalctl -u rsyslog -n 50 --no-pager

在收集器上,搜尋標籤sles-tls-test和發送方主機名稱。遠端成功出現證明訊息已到達收集器,但這本身並不能證明憑證驗證配置正確。更可靠的檢查方法是保持x509/name啟用狀態,並確認 rsyslog 服務日誌中沒有 TLS 握手或對等名稱錯誤。

如果連線失敗,請測試 DNS 解析logs.example.com,確認 TCP 6514 連接埠可達,檢查憑證有效期,並驗證收集器憑證是否包含預期的 DNS 名稱。此外,在啟用雙向 TLS 時,也要確認收集器信任頒發 SLES 用戶端憑證的 CA。

故障排除清單

  • 連接被拒絕:收集器未監聽配置的位址/端口,或防火牆拒絕連線。
  • 超時:路由、網路 ACL 或防火牆靜默丟棄流量。
  • 憑證驗證失敗: CA 檔案錯誤、不完整、已過期,或伺服器憑證鏈不完整。
  • 對等名稱不符:target /名稱StreamDriverPermittedPeers與收集器證書標識不符。
  • 金鑰權限被拒絕:金鑰路徑或權限不允許 rsyslog 程序讀取 SLES 服務配置下的檔案。
  • 中斷期間訊息處理停止:請檢查操作佇列的設計和容量。上游 omfwd 文件特別建議使用 TCP 轉送佇列,以避免目標位址不可用時阻塞正常處理。

容易被忽略的安全提示

除非您完全了解其中的利弊,否則請勿以匿名 TLS 替代證書驗證。未經伺服器驗證的加密仍然可能使日誌暴露給活躍的中間人攻擊者。同樣,不要因為目標連接埠使用 TCP 6514 就允許 SLES 發送方接受該連接埠;轉送是客戶端的出站連線。

保護用戶端私鑰作為憑證,在憑證過期前進行輪換,並使用在 IP 位址變更時保持不變的收集器主機名稱。如果您需要比普通 TCP/TLS 轉送更強的交付保證,rsyslog 文件指出 RELP 是一種專為確認交付而設計的替代方案。這與傳輸加密是不同的設計選擇。

最終核實

正確的部署應滿足四個可觀察的條件:rsyslog 設定驗證成功傳回結果、服務重新啟動後保持活動狀態、收集器接收到唯一的測試事件,以及在傳送者日誌中未顯示 TLS 信任或對等名稱錯誤。一旦這些檢查通過,請記錄憑證到期日期和遠端收集器依賴關係,以避免未來的維護工作在不知不覺中中斷集中式日誌記錄。

留下評論

SLES 線上修補程式配置指南:無需重新啟動即可套用核心更新

SLES 線上修補程式配置指南:無需重新啟動即可套用核心更新

在 SLES 15 SP7 上啟用核心即時修補,無需重新啟動即可應用支援的修復程序,驗證活動補丁,並了解何時仍需要重新啟動核心。

如何在 SUSE Linux Enterprise Server 15 上啟用 FIPS 模式

如何在 SUSE Linux Enterprise Server 15 上啟用 FIPS 模式

使用 SUSE 支援的設定公用程式在 SLES 15 上啟用 FIPS 模式,安全重啟,驗證核心和加密策略狀態,並檢查認證限制。

如何在不違反安全策略的情況下在 Gooroom OS 上安裝 Google Chrome

如何在不違反安全策略的情況下在 Gooroom OS 上安裝 Google Chrome

使用官方 .deb 軟體包、APT、策略檢查、更新指南和受管設備修復程序,安全地在 Gooroom OS 上安裝 Google Chrome。

如何安全地將SLES系統日誌匯出到遠端Syslog伺服器

如何安全地將SLES系統日誌匯出到遠端Syslog伺服器

使用 rsyslog、TLS 憑證、對等名稱驗證、佇列、驗證和測試,安全地將 SLES 系統日誌轉送到遠端 syslog 伺服器。

SLES 15 Active Directory 與 SSSD 整合:逐步指南

SLES 15 Active Directory 與 SSSD 整合:逐步指南

使用 YaST 將 SLES 15 加入到具有 SSSD 的 Active Directory。準備 DNS 和時間,配置網域登錄,驗證 Kerberos,並比較 SSSD、Winbind 和 realmd。

修正 Pardus Linux 系統上的 Realtek RTL8821CE Wi-Fi 驅動程式問題

修正 Pardus Linux 系統上的 Realtek RTL8821CE Wi-Fi 驅動程式問題

透過檢查內建的 rtw88 驅動程式、Realtek 韌體、rfkill、NetworkManager 和安全性回退選項來修復 Pardus Linux 上的 RTL8821CE Wi-Fi。

修正 Debian 12 中 systemd-resolved 導致的「DNS 解析暫時失敗」問題

修正 Debian 12 中 systemd-resolved 導致的「DNS 解析暫時失敗」問題

使用 systemd-resolved 診斷和修復 Debian 12 DNS 解析失敗,包括 resolv.conf、NetworkManager、networkd、快取和驗證。

如何安全地在 Windows 11 系統上安裝 Pardus Linux 雙系統

如何安全地在 Windows 11 系統上安裝 Pardus Linux 雙系統

在 Windows 11 旁邊安裝 Pardus 25.2,方法是備份、縮小 Windows 磁碟區、啟動 UEFI USB 並保護現有的 EFI 和復原分割區。

修正 SLES 系統中 Zypper 儲存庫刷新失敗錯誤 500 的問題。

修正 SLES 系統中 Zypper 儲存庫刷新失敗錯誤 500 的問題。

診斷 SUSE Linux Enterprise Server 中 Zypper 刷新失敗所導致的 HTTP 500 錯誤。確定故障儲存庫,檢查代理程式和註冊訊息,然後安全地刷新元資料。

Pardus 軟體套件管理器 (PETA) 與標準 APT 命令列:目前 Pardus 實際使用哪一個?

Pardus 軟體套件管理器 (PETA) 與標準 APT 命令列:目前 Pardus 實際使用哪一個?

將所謂的 Pardus 軟體套件管理器「PETA」與 APT 進行比較,明確目前 Pardus 軟體包工具,並選擇適合桌面使用或管理的介面。