診斷卡在 systemd 關閉螢幕的 SUSE 伺服器
使用 systemd 作業和先前的啟動日誌來尋找運行緩慢的服務、掛載點或儲存依賴項,然後修正它,而不掩蓋原因。
範例場景:假設一位管理員正在準備一台名為 web01 的虛擬 SLES 15 伺服器,用於託管一個小型公共網站。目標是在允許 TCP 連接埠 80 上的入站 HTTP 請求的同時,保持現有的 SSH 管理路徑可用。這只是一個範例,並非測試報告,也不代表每個 SLES 15 安裝都具有相同的介面名稱或服務。
在 SLES 15 中,firewalldfirewalld 是預設的防火牆框架,並由firewall-cmd其控制。首先,確定活動區域並驗證遠端存取權限;然後,在永久配置中將所需的最小服務新增至該區域並重新載入。 SUSE 的《SLES 15 SP7 安全加固指南》詳細記錄了這種基於區域的模型以及運行時規則和永久規則之間的差異。這些步驟假設 firewalld 已安裝並正在運作;較舊的升級系統可能需要單獨的遷移檢查。
透過伺服器控制台或管理會話進行連接,以便在網路存取中斷時可以恢復。如果您透過 SSH 連接,請在進行防火牆變更時保持該會話開啟。確認 firewalld 正在運行,並查看哪個區域擁有該介面:
sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
第一個命令應該會報告結果running。 `active-zones` 指令會列出已指派介面或來源位址的區域;它可能顯示多個區域。在虛構的 web01 範例中,假設它報告了 `<interface>`public和 `<interface> ens192`。在後續命令中,請使用附加到傳入網路介面的區域。不要假設介面名為 `<interface>` eth0,也不要public因為 `<interface>` 是常見的預設值就假設它是活動的。

如果服務未運行,請在啟動前檢查其狀態:sudo systemctl status firewalld。在標準的 SLES 15 安裝中,firewalld 預設已安裝並啟用,但鏡像設定檔、升級或本機原則可能有所不同。如果 firewalld 已安裝但已停止,請僅在確認其目前原則能夠保留您所需的存取權限後才啟動並啟用它:sudo systemctl enable --now firewalld。在遠端管理的主機上,在啟動目前規則未知的防火牆之前,請確認控制台存取權限和 SSH 權限。
firewalld 服務是包含連接埠和協定的命名集合。打開它之前,請檢查本地定義:
sudo firewall-cmd --info-service=http
sudo firewall-cmd --zone=public --list-all
在 SLES 系統中,預先定義http服務對應於 TCP 連接埠 80。區域清單可讓您檢查目前允許的服務和連接埠。請將 `<zone_name>` 替換public為您找到的活動區域。如果您使用 SSH 管理伺服器,請確保ssh在繼續操作之前,該區域已允許 SSH 服務。 SLES 的安裝行為和現有策略可能有所不同,因此請務必檢查,不要僅憑假設。如果已安裝的 SSH 守護程序監聽非標準端口,則通用ssh服務條目可能不匹配;請先確認守護程序的實際監聽端口和現有防火牆策略。

Firewalld 維護獨立的運作時配置和永久配置。普通命令僅更改活動的運行時規則;--permanent寫入已儲存的配置,但不會立即啟動該更改。對於 web01,請將 HTTP 服務新增至擁有其公共介面的區域:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
明確使用--zone規則,可以避免規則被錯誤地應用到預設區域。重新載入會將永久規則套用到執行時間。未儲存的執行時間變更會在重新載入期間被丟棄,因此請在執行前檢查並保留任何您需要的臨時規則。若要在將服務永久化之前對其進行測試,您可以先執行sudo firewall-cmd --zone=public --add-service=http不帶--permanent永久規則的服務;如果測試成功,再新增永久規則並重新載入。運行時測試會在重新載入或防火牆重新啟動後遺失。

如果您需要的是單一連接埠而不是預先定義的服務,請同時指定連接埠和協議,例如:`example.com/ --add-port=8080/tcp...
檢查正在運行和已儲存的配置:
sudo firewall-cmd --zone=public --list-services
sudo firewall-cmd --permanent --zone=public --list-services
sudo firewall-cmd --check-config
輸出結果應同時包含http在兩個服務清單中,且設定檢查應順利完成,不報告任何錯誤。此外,還應驗證應用程式是否正在本機監聽(例如使用 ` sudo ss -lntpdocker ps` 命令),並從目標網路上的用戶端測試該網站。防火牆清單僅確認規則,而非端對端可達性:DNS、雲端防火牆、路由以及 Web 伺服器本身仍可能封鎖或拒絕請求。

如果不再需要 HTTP,請移除已儲存的規則並重新載入:sudo firewall-cmd --permanent --zone=public --remove-service=http,然後執行sudo firewall-cmd --reload。之後重新檢查運行時列表和永久列表。避免為了解決單一存取問題而清除所有規則或切換到受信任區域;這些更廣泛的變更可能會暴露不相關的服務。
有關特定版本的指導,請參閱SUSE SLES 15 SP7 安全加固指南。有關不同 firewalld 版本下的命令行為,請參閱上游firewall-cmd 文件和運行時配置與永久配置參考。可用選項可能會因特定 SLES 服務包中提供的 firewalld 版本而異,因此firewall-cmd --help如果某個命令不可用,請確認本機說明。
使用 systemd 作業和先前的啟動日誌來尋找運行緩慢的服務、掛載點或儲存依賴項,然後修正它,而不掩蓋原因。
使用 firewall-cmd 檢查活動區域,安全地允許 HTTP,保留 SSH 訪問,並驗證該規則在 SLES 15 上重新加載後是否仍然存在。
追溯 PAM 故障到其服務、帳戶原則或身分提供者,然後在保持管理員會話正常運作的情況下修復正確的 SLES 配置。
在 ONLYOFFICE 文件伺服器中安裝自訂字體,比較持久 Docker 掛載與直接複製,重建字體列表,並驗證結果。
將 Nextcloud 的檔案和 MariaDB 一起備份,使用 cron 安排加密的 Restic 快照,並在不危及執行伺服器的情況下驗證復原。
匯出單一 Zimbra Community Edition 信箱,驗證其 TGZ 備份,並在不覆寫現有郵件的情況下還原遺失的項目。
僅允許已批准的帳戶使用 Keycloak 和令牌身份驗證啟動 Jitsi Meet 會議室,同時在需要時允許訪客加入。
將 ONLYOFFICE DocSpace 連接到 Active Directory 或 OpenLDAP,安全地匯入使用者和群組,映射帳戶字段,並安排可靠的同步。
在不停用安全啟動的情況下載入自訂 SLES 15 核心模組。匹配正在運行的內核,對 .ko 檔案進行簽名,註冊 MOK 金鑰,並驗證載入情況。
為 ONLYOFFICE Docs 設定 HAProxy HTTPS、轉送標頭、WebSocket 逾時和執行狀況檢查,然後驗證編輯和儲存功能。