返回文章列表

Linux 系統安全強化

本文探討如何強化 Linux 系統安全,涵蓋登入警告橫幅設定、系統更新管理、時間同步服務組態、移除不必要服務及套件等導向。文章提供詳細步驟及程式碼範例,說明如何編輯設定檔、使用 apt 命令管理套件、組態 NTP 服務等,以提升系統安全性並減少潛在風險。此外,文章也提供最佳實務建議,例如移除 X Window

系統管理 資安

強化 Linux 系統安全涉及多個層面,從使用者登入到系統服務都需要仔細組態。設定登入警告橫幅能有效提醒使用者系統使用規範,同時也展現系統的安全性政策。系統更新管理則確保系統漏洞得到及時修補,降低被攻擊的風險。選擇合適的時間同步服務並正確組態,才能確保系統日誌時間的一致性,並支援 Kerberos 等安全機制。此外,移除不必要的服務和套件,例如 X Window System、Avahi Server、CUPS、DHCP Server 和 LDAP Server 等,可以有效減少系統的攻擊面,降低系統受攻擊的風險,並提升系統整體效能。

加強 Linux 系統安全:登入警告橫幅與更新管理

在維護 Linux 系統的安全時,正確組態登入警告橫幅以及保持系統更新至關重要。本文將探討如何透過編輯特定設定檔和使用適當的更新命令來增強系統安全性。

組態登入警告橫幅

登入警告橫幅是在使用者登入系統前顯示的重要安全措施。它告知使用者系統的使用政策和監控狀態。根據 CIS Controls 的建議,應當正確組態 /etc/issue.net/etc/issue 檔案,以顯示授權使用的警告訊息。

編輯 /etc/issue.net 檔案

  1. 使用文字編輯器開啟 /etc/issue.net 檔案。
  2. 移除任何與作業系統相關的資訊,如 \m\r\s\v 等。
  3. 新增符合組織政策的警告訊息,例如:
    Authorized uses only. All activity may be monitored and reported.
    

範例命令:

echo "Authorized uses only. All activity may be monitored and reported." > /etc/issue.net

編輯 /etc/issue 檔案

同樣地,編輯 /etc/issue 檔案以確保本地登入時顯示正確的警告訊息。

  1. 檢查 /etc/issue 檔案內容是否符合組織安全政策。
  2. 移除任何與作業系統相關的資訊。
  3. 設定正確的警告訊息。

範例命令:

echo "Authorized uses only. All activity may be monitored and reported." > /etc/issue

圖形登入管理器的組態

如果系統使用 GNOME Display Manager (GDM),需要組態 /etc/gdm3/greeter.dconf-defaults 檔案,以啟用警告訊息並停用最後登入使用者列表。

組態 GDM

  1. 編輯或建立 /etc/gdm3/greeter.dconf-defaults 檔案。

  2. 新增或修改以下設定:

    [org/gnome/login-screen]
    banner-message-enable=true
    banner-message-text='Authorized uses only. All activity may be monitored and reported.'
    disable-user-list=true
    
  3. 執行以下命令以重新載入 GDM 設定:

    dpkg-reconfigure gdm3
    

確保系統更新和安全性

保持系統更新是維護系統安全的基本措施。Linux 系統可以使用 apt 命令來更新和升級軟體包。

更新和升級系統

  1. 更新套件列表

    apt update
    
  2. 升級套件

    apt upgrade
    
  3. 智慧型升級(處理相依性變更)

    apt dist-upgrade
    

#### 內容解密:

  • apt update:更新本地套件列表,以反映最新的可用版本。
  • apt upgrade:升級所有已安裝的套件到最新版本,但不移除任何套件。
  • apt dist-upgrade:除了升級套件外,還會處理新版本套件的相依性變更,可能會移除某些套件。

加強系統安全:時間同步服務的組態與最佳實踐

在維護系統安全性方面,正確組態時間同步服務是至關重要的。這不僅確保了系統日誌的時間一致性,也支援瞭如Kerberos等對時間敏感的安全機制。本文將探討時間同步服務的重要性、不同實作方式的比較,以及如何根據實際需求進行組態。

時間同步的重要性

時間同步是確保系統安全性和進行事件調查的關鍵因素。當所有系統的時間保持同步時,管理員可以更輕鬆地分析和相關不同系統上的事件,從而提高安全監控和事件回應的效率。此外,許多安全協定和機制,如Kerberos,依賴於精確的時間同步來防止重放攻擊等威脅。

時間同步服務的選擇

常見的時間同步服務包括 systemd-timesyncdchronyntp。每種服務都有其特點和適用場景:

  • systemd-timesyncd:作為 systemd 的一部分,它提供了一個簡單的 SNTP 客戶端實作。它適合大多數基本需求,尤其是在嵌入式裝置或 Raspberry Pi 等缺乏 RTC(實時時鐘)的系統上。由於其簡潔性和與 systemd 的緊密整合,它是許多 Linux 發行版的預設選擇。

  • chrony:提供了更全面的 NTP 實作,包括客戶端和伺服器功能。它支援多種時間源,並能提供更高的時間精確度。chrony 適合需要更高階時間同步功能或加密時間同步的環境。

  • ntp:這是 NTP 協定的參考實作,提供了完整的 NTP 功能。它適合需要高度可組態性和與 NTP 協定完全相容的環境。

組態時間同步服務

根據所選擇的時間同步服務,組態步驟會有所不同。以下是針對 systemd-timesyncd 的基本組態:

  1. 安裝與啟用:首先確認 systemd-timesyncd 已經安裝並啟用。使用命令 systemctl is-enabled systemd-timesyncd 檢查其狀態。如果未啟用,可以使用 systemctl enable --now systemd-timesyncd 來啟用並立即啟動服務。

  2. 組態:編輯 /etc/systemd/timesyncd.conf 檔案來設定 NTP 伺服器。可以指定多個 NTP 伺服器位址,例如:

    [Time]
    NTP=0.pool.ntp.org 1.pool.ntp.org
    
  3. 驗證組態:使用 timedatectl status 命令檢查時間同步狀態,確認 systemd-timesyncd 是否正確同步了系統時間。

程式碼示例:編輯 timesyncd.conf

# 編輯 timesyncd.conf 檔案
sudo nano /etc/systemd/timesyncd.conf

# 在檔案中加入或修改 NTP 伺服器位址
[NTP]
NTP=0.pool.ntp.org 1.pool.ntp.org

# 儲存並離開編輯器後,重啟 timesyncd 服務
sudo systemctl restart systemd-timesyncd

# 檢查 timesyncd 狀態
timedatectl status

內容解密:

  1. sudo nano /etc/systemd/timesyncd.conf:使用 nano 編輯器開啟 timesyncd.conf 組態檔案,需要管理員許可權。
  2. [NTP]NTP=0.pool.ntp.org 1.pool.ntp.org:在組態檔案中指定 NTP 伺服器。這裡使用了 NTP Pool Project 的伺服器,可以根據需要替換為其他可靠的 NTP 伺服器。
  3. sudo systemctl restart systemd-timesyncd:重啟 systemd-timesyncd 服務以套用新的組態。
  4. timedatectl status:檢查系統的時間同步狀態,包括是否啟用了 NTP 同步。

最佳實踐與建議

  • 選擇合適的時間同步服務:根據實際需求選擇合適的時間同步服務。如果需要簡單的客戶端功能,systemd-timesyncd 可能就足夠了;如果需要更複雜的功能或更高的精確度,應考慮使用 chronyntp

  • 正確組態 NTP 伺服器:確保所使用的 NTP 伺服器是可靠和可信的。使用多個 NTP 伺服器可以提高時間同步的可靠性。

  • 定期檢查和驗證:定期檢查時間同步服務的狀態和組態,確保系統時間保持準確和一致。

綜上所述,正確組態和管理時間同步服務是維護系統安全性和穩定性的重要一環。透過選擇合適的時間同步服務並遵循最佳實踐,可以有效地提高系統的安全性和管理的便捷性。

時間同步服務的安全組態與稽核

在現代的IT基礎設施中,時間同步服務扮演著至關重要的角色。準確的時間同步對於日誌記錄、安全驗證以及眾多分散式系統的正常運作都是必不可少的。本文將詳細介紹如何在Linux系統中正確組態和稽核時間同步服務,以滿足安全性和合規性要求。

時間同步服務的選擇

目前常見的時間同步服務實作包括ntpchronysystemd-timesyncd。根據CIS(Center for Internet Security)控制項的建議,系統應該只使用一種時間同步方法。

移除多餘的時間同步服務

首先,需要移除不必要的時間同步服務。例如,如果決定使用systemd-timesyncd,則應移除ntpchrony

# apt purge ntp
# apt purge chrony

組態systemd-timesyncd

  1. 啟用並啟動systemd-timesyncd服務

    # systemctl enable systemd-timesyncd.service
    # systemctl start systemd-timesyncd.service
    # timedatectl set-ntp true
    
  2. 編輯/etc/systemd/timesyncd.conf

    新增或修改以下行以組態NTP伺服器、FallbackNTP伺服器和RootDistanceMaxSec:

    NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org
    FallbackNTP=2.debian.pool.ntp.org 3.debian.pool.ntp.org
    RootDistanceMaxSec=1
    

    內容解密:

    • NTP:指定主要使用的NTP伺服器,應根據本地政策選擇合適的伺服器。
    • FallbackNTP:指定當主要NTP伺服器不可用時的備用NTP伺服器,同樣應符合本地政策。
    • RootDistanceMaxSec:設定最大根距離(秒),此引數影響時間同步的精確度。

稽核時間同步組態

為了確保時間同步服務正確組態並運作,需要進行稽核檢查。

  1. 檢查systemd-timesyncd狀態

    # timedatectl status
    

    此命令應顯示類別似以下輸出,確認NTP已啟用且同步:

    NTP enabled: yes
    NTP synchronized: yes
    
  2. 檢查/etc/systemd/timesyncd.conf組態

    檢閱該檔案以確保NTP伺服器、FallbackNTP伺服器和RootDistanceMaxSec設定正確。

使用Plantuml圖表展示時間同步流程

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Linux 系統安全強化

package "安全架構" {
    package "網路安全" {
        component [防火牆] as firewall
        component [WAF] as waf
        component [DDoS 防護] as ddos
    }

    package "身份認證" {
        component [OAuth 2.0] as oauth
        component [JWT Token] as jwt
        component [MFA] as mfa
    }

    package "資料安全" {
        component [加密傳輸 TLS] as tls
        component [資料加密] as encrypt
        component [金鑰管理] as kms
    }

    package "監控審計" {
        component [日誌收集] as log
        component [威脅偵測] as threat
        component [合規審計] as audit
    }
}

firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成

@enduml

此圖示展示了選擇和組態不同時間同步服務的基本流程。

加強 Linux 系統安全:移除不必要的服務和套件

在維護 Linux 系統的安全性時,移除不必要的服務和套件是至關重要的一步。這不僅可以減少系統的攻擊面,還能降低潛在的安全風險。本文將詳細介紹如何移除不必要的服務和套件,以增強 Linux 系統的安全性。

2.1.1 組態 NTP 服務

確保系統時間的準確性對於日誌記錄和安全稽核至關重要。NTP(網路時間協定)服務可以用來同步系統時間。

移除其他時間同步方法

首先,需要移除或停用其他時間同步方法,例如 chronysystemd-timesyncd

# 移除 chrony
apt purge chrony

# 停止並遮蔽 systemd-timesyncd
systemctl --now mask systemd-timesyncd

組態 NTP

接下來,組態 NTP 服務以確保系統時間的準確性。編輯 /etc/ntp.conf 檔案,新增或修改以下組態:

restrict -4 default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
server <remote-server>

並確保 NTP 以 ntp 使用者身份執行,編輯 /etc/init.d/ntp 檔案:

RUNASUSER=ntp

詳細解說:

  1. restrict 命令:限制 NTP 服務的存取許可權,-4-6 分別代表 IPv4 和 IPv6,kod 表示啟用「Kiss-o’-death」包,nomodify 表示不允許修改 NTP 伺服器的組態,notrap 表示不允許控制訊息,nopeer 表示不允許對等連線,noquery 表示不允許查詢 NTP 伺服器的狀態。
  2. server 命令:指定 NTP 伺服器的地址,用於同步系統時間。
  3. RUNASUSER=ntp:指定 NTP 服務以 ntp 使用者身份執行,提高安全性。

2.1.2 移除 X Window System

X Window System 提供了一個圖形使用者介面(GUI),但對於伺服器來說,通常不需要此功能。

檢查 X Window System 是否已安裝

dpkg -l xserver-xorg*

移除 X Window System

如果不需要 X Window System,可以將其移除以減少攻擊面:

apt purge xserver-xorg*

詳細解說:

  1. dpkg -l xserver-xorg*:列出所有與 xserver-xorg 相關的套件,檢查是否已安裝。
  2. apt purge xserver-xorg*:移除所有與 xserver-xorg 相關的套件。

2.1.3 移除 Avahi Server

Avahi 是一種零組態網路服務,用於自動發現網路上的服務和主機。

檢查 Avahi Server 是否已安裝

dpkg -s avahi-daemon

移除 Avahi Server

如果不需要 Avahi Server,可以將其移除:

systemctl stop avahi-daemon.service
systemctl stop avahi-daemon.socket
apt purge avahi-daemon

詳細解說:

  1. dpkg -s avahi-daemon:檢查 avahi-daemon 套件是否已安裝。
  2. systemctl stop avahi-daemon.servicesystemctl stop avahi-daemon.socket:停止 Avahi Server 的服務和 socket。
  3. apt purge avahi-daemon:移除 avahi-daemon 套件。

2.1.4 移除 CUPS

CUPS(Common Unix Print System)提供列印功能,如果系統不需要列印服務,可以將其移除。

檢查 CUPS 是否已安裝

dpkg -s cups

移除 CUPS

apt purge cups

詳細解說:

  1. dpkg -s cups:檢查 cups 套件是否已安裝。
  2. apt purge cups:移除 cups 套件。

2.1.5 移除 DHCP Server

DHCP Server 用於動態分配 IP 地址,如果系統不是 DHCP 伺服器,可以將其移除。

檢查 DHCP Server 是否已安裝

dpkg -s isc-dhcp-server

移除 DHCP Server

apt purge isc-dhcp-server

詳細解說:

  1. dpkg -s isc-dhcp-server:檢查 isc-dhcp-server 套件是否已安裝。
  2. apt purge isc-dhcp-server:移除 isc-dhcp-server 套件。

2.1.6 移除 LDAP Server

LDAP Server 提供目錄服務,如果系統不需要此功能,可以將其移除。

檢查 LDAP Server 是否已安裝

dpkg -s slapd

移除 LDAP Server

apt purge slapd

詳細解說:

  1. dpkg -s slapd:檢查 slapd 套件是否已安裝。
  2. apt purge slapd:移除 slapd 套件。