返回文章列表

Linux 網路操作與發行版

本文探討 Linux 發行版的選擇、網路設定與操作,涵蓋主流發行版如 Red Hat、SUSE、Ubuntu,BSD 家族,以及特殊用途發行版如 Kali Linux 和 Security Onion。同時,文章也介紹了虛擬化技術和雲端運算與 Linux 的密切關係,以及如何根據組織需求選擇合適的 Linux

Linux 網路管理

Linux 系統管理員需要熟悉各種發行版,才能根據不同情境選擇合適的系統。從常見的 Red Hat、SUSE 和 Ubuntu 到安全性導向的 Kali Linux 和 Security Onion,每個發行版都有其獨特的優勢和適用場景。同時,瞭解虛擬化技術如 KVM 和 VirtualBox,以及雲端運算的特性,對於現代系統管理至關重要。此外,掌握 Linux 網路基礎設定,例如使用 ipifconfig 命令管理網路介面,是確保系統正常運作的關鍵技能。

Linux 家族介紹

Linux 和 BSD Unix 都強調其作業系統的自由可用性。雖然市面上有商業版本和衍生版本,但幾乎所有商業版本都有對應的免費版本。在本章中,我們將探討 Linux 在運算領域的歷史和重要性,瞭解 Linux 如何興起以及如何在運算領域的某些領域獲得流行。接下來,我們將介紹可用的不同 Linux 版本,以幫助我們在後續章節中做出選擇。

主流資料中心 Linux 發行版

Linux 並不是一個單一的整體,而是一個多樣化的生態系統,不同的發行版根據相同的 GNU/Linux 核心,但被封裝成具有不同目標和理念的群組,為組織在標準化伺服器和工作站平台時提供了多種選擇。

Red Hat

Red Hat 近期被 IBM 收購(2019 年),但仍保持 Fedora 作為其主要專案之一。Fedora 有伺服器和桌面版本,並且仍然免費提供。Fedora 的商業版本是 Red Hat Enterprise Linux(RHEL),具有正式的支援管道。

CentOS 最初是一個免費、社群支援的 Linux 版本,在功能上與 Red Hat Enterprise 版本相容,因此在許多組織的伺服器實作中非常流行。2020 年底,CentOS 宣佈將不再作為 RHEL 相容發行版維護,而是成為介於 Fedora 和 RHEL 之間的版本。

Oracle/Scientific Linux

Oracle Linux 也常見於許多資料中心(以及 Oracle 的雲端服務)。Oracle Linux 根據 Red Hat,並宣稱其產品與 RHEL 完全相容。Oracle Linux 可免費下載和使用,但來自 Oracle 的支援是根據訂閱的。

SUSE

OpenSUSE 是 SUSE Linux 的社群發行版,類別似於 Red Hat Enterprise Linux 根據 Fedora 的關係。SUSE Linux Enterprise Server(SLES)在 Linux 早期是 Red Hat 發行版的主要歐洲競爭對手。SUSE 維護桌面和伺服器版本,並提供「高效能」版本的作業系統,預先安裝了平行運算的最佳化和工具。

Ubuntu

Ubuntu Linux 由 Canonical 維護,免費下載,無商業或「上游」選項。Ubuntu 根據 Debian,具有獨特的發布週期。每 6 個月發布新的伺服器和桌面版本,每 2 年發布一個長期支援(LTS)版本,LTS 版本的支援期限為 5 年。

BSD/FreeBSD/OpenBSD

BSD 「樹」家族源自 Unix 而不是 Linux 核心,但有許多分享程式碼,尤其是在非核心套件中。FreeBSD 和 OpenBSD 在歷史上被視為比早期版本的 Linux 更安全,因此許多防火牆和網路裝置根據 BSD 作業系統家族。

特色 Linux 發行版

除了主流 Linux 發行版外,還有一些針對特定需求而開發的發行版。它們都根據更主流的發行版,但針對特定需求進行了客製化。下面介紹幾個網路專業人士最有可能遇到或使用的發行版。

SELinux 和 AppArmor

Linux 現在有安全模組可供選擇,以顯著提高其安全姿態。SELinux 和 AppArmor 是兩個主要選項。SELinux 源自 Red Hat 發行版,也完全適用於 SUSE、Debian 和 Ubuntu。AppArmor 通常被視為更容易實施的選項,具有許多(但不是全部)相同的功能。AppArmor 可在 Ubuntu、SUSE 和大多數其他發行版上使用。

圖表說明

@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 發行版及其相關聯的社群發行版之間的關係,以及 BSD 家族的主要成員。

內容解密:

本章節透過介紹不同Linux發行版及其特點,讓讀者瞭解Linux的多樣性與應用範圍。同時,也說明瞭BSD家族的重要性和Linux安全模組的作用。這有助於讀者在實際應用中選擇最合適的作業系統,並理解其背後的技術原理和歷史背景。

專注於特定領域的Linux發行版

許多商業的網路附加儲存(NAS)和儲存區域網路(SAN)供應商都是根據Linux或BSD系統。目前開源NAS/SAN服務的領先者似乎是TrueNAS(前身為FreeNAS)和XigmaNAS(前身為NAS4Free)。這兩者都提供免費和商業版本。

開源防火牆解決方案

網路和安全公司提供了多種防火牆裝置,其中大多數根據Linux或BSD。許多公司提供免費的防火牆,一些更受歡迎的包括pfSense(提供免費版本和預先構建的硬體解決方案)、OPNsense(免費提供,可接受捐款)和Untangle(也有商業版本)。Smoothwall是另一種替代方案,提供免費和商業版本。

在本文中,我們將探討如何使用Linux內建的防火牆來保護個別伺服器或網路周界的安全。

Kali Linux:滲透測試和道德駭客工具

Kali Linux源自BackTrack,並進一步追溯到KNOPPIX,它是一個根據Debian的發行版,專注於資訊安全。這個發行版的主要目標是盡可能在一個平台上收集有用的滲透測試和道德駭客工具,並確保它們都能正常運作而不會互相干擾。較新版本的發行版專注於維護這些工具之間的互操作性,因為作業系統和工具會不斷更新(使用apt工具集)。

Kali Linux的特點

  • 蒐集多種滲透測試和道德駭客工具
  • 確保工具之間的互操作性
  • 根據Debian,使用apt進行工具和系統更新

SIFT:數位鑑識和事件回應工具

SIFT是由SANS研究所的數位鑑識團隊開發的發行版,專注於數位鑑識和事件回應工具及調查。與Kali類別似,SIFT的目標是成為一個「一站式商店」,提供免費/開源工具,用於數位鑑識和事件回應(DFIR)。歷史上,這是一個根據Ubuntu的發行版,但近年來,這已經改變了——SIFT現在也作為一個指令碼分發,用於在Ubuntu桌面或Windows Services for Linux(根據Ubuntu)上安裝工具。

Security Onion:網路安全監控和日誌管理

Security Onion與Kali Linux相似,因為它包含了多種資訊安全工具,但其重點更多地放在防禦者的角度。這個發行版以威脅獵殺、網路安全監控和日誌管理為中心。其中一些工具包括Suricata、Zeek和Wazuh等。

虛擬化技術在Linux中的應用

虛擬化技術在Linux的採用中發揮了重要作用,使得能夠同時與多個發行版一起工作。透過本地虛擬化管理程式,網路專業人員可以在筆記型電腦或桌面電腦上執行數十台不同的「機器」。雖然VMware是這一領域的先驅(桌面和專用虛擬化),但後來Xen、KVM、VirtualBox和QEMU等也加入了這一領域。雖然VMware的產品都是商業產品(除了VMware Player),但上述其他解決方案在撰寫本文時仍然是免費的。VMware的旗艦虛擬化管理程式ESXi也可以作為獨立產品免費使用。

Linux與雲端運算

Linux的日益穩定以及虛擬化現在已成為主流,這在許多方面使得我們現代的雲端生態系統成為可能。再加上佈署和維護後端基礎設施的自動化能力的日益增強,以及Web應用程式和應用程式介面(API)開發人員的成熟度,我們就得到了今天的雲端基礎設施。其中一些關鍵特徵如下:

  • 多租戶基礎設施,每個客戶都在雲端維護自己的例項(虛擬伺服器和虛擬資料中心)。
  • 根據使用時間按資源精細收費,通常按月或更常見。
  • 可靠性與許多現代資料中心一樣好或更好(儘管最近的中斷表明,當我們把太多雞蛋放在同一個籃子裡時會發生什麼)。
  • 使自動化基礎設施相對容易的API,如此之多,以至於對於許多公司來說,組態和維護基礎設施已經成為一種編碼活動(通常稱為基礎設施即程式碼)。
  • 這些API使得根據需要擴充套件或縮減容量成為可能,無論是儲存、計算、記憶體、會話計數還是全部四項。

雲端服務是以盈利為目地的——任何決定將其資料中心「原樣」遷移到雲端服務的公司很可能會發現,所有那些小額費用隨著時間的推移而累積,最終達到或超過其內部佈署資料中心的成本。然而,在美元方面,它仍然很有吸引力,因為這些美元被花費在營運支出上,可以比內部佈署資本支出模型(通常稱為Cap-Ex與Op-Ex模型)更容易直接歸屬。

正如您所看到的,將資料中心遷移到雲端服務為組織帶來了許多好處,而這些好處在內部佈署模型中可能無法實作。只有當更多雲端獨有的功能被利用時,這一點才會變得更加明顯。

為組織挑選合適的Linux發行版

在許多方面,為資料中心選擇哪個Linux發行版並不重要,因為主要發行版的功能相似,元件相同,且支援選項也類別似。然而,由於這些發行版之間的差異,重要的是選擇一個(或一套相似的)發行版。

期望的結果是,組織能夠標準化一個發行版,使團隊能夠發展相關專業知識。這也意味著可以與相同的升級團隊合作,以獲得更進階的支援和故障排除,無論是諮詢組織、付費供應商支援團隊,還是網路論壇上的志同道合者。許多組織會與「三大巨頭」(Red Hat、SUSE或Canonical,取決於其發行版)購買支援合約。

不希望出現的情況是,曾經見過一些客戶陷入的困境。僱用了一位熱衷於學習的人,一年後卻發現他們建立的每個伺服器都執行在不同的Linux發行版上,且每個伺服器的建置都略有不同。這是讓基礎設施變成「科學實驗」的捷徑,而這種情況永遠不會結束!

相反地,另一位客戶的第一台伺服器是SUSE Linux for SAP,這是一款SUSE Linux伺服器,內含客戶購買的SAP應用程式(SAP HANA)。隨著Linux應用範圍擴大到更多服務,他們堅持使用SUSE平台,但改用「真正的」SLES發行版。這讓他們能夠保持在單一作業系統上,並且同樣重要的是,擁有單一的SUSE支援授權。他們能夠將培訓和專業知識集中在SUSE上。另一個關鍵好處是,當他們新增更多伺服器時,能夠以階段性方式套用單一的更新和修補程式流。在每個修補程式週期中,不太關鍵的伺服器會先被修補,讓核心業務應用程式伺服器在測試完成後幾天再被修補。

挑選Linux發行版的主要建議

挑選發行版的主要建議是堅持使用較大的發行版。如果團隊成員對其中一個發行版有強烈的偏好,那麼一定要考慮這一點。您可能會希望保持接近主流發行版,以便在組織內使用它,這些發行版會定期維護,並且有付費訂閱模式可供支援——即使您今天不覺得需要付費支援,將來也不一定如此。

基本Linux網路組態與操作 - 使用本地介面

在本章中,我們將探討如何在Linux主機上顯示和組態本地介面和路由。我們將盡可能地討論新舊命令,以執行這些操作。這將包括顯示和修改IP位址、本地路由和其他介面引數。在此過程中,我們將討論如何使用二進位方法建構IP位址和子網路位址。

本章應該能夠為我們後續章節中涵蓋的主題提供堅實的基礎,例如故障排除網路問題、強化主機安全性和安裝安全服務。

Linux 網路基礎設定與操作:本地介面操作

技術需求與環境說明

本章節及後續章節所介紹的命令,鼓勵讀者在自己的電腦上實際操作。書中的命令範例均根據 Ubuntu Linux 20(長期支援版本),但大多數命令在其他 Linux 發行版上也具有相似或相同的操作。

使用兩套命令管理網路設定

在 Linux 的發展歷程中,ifconfig(介面組態)及相關命令曾經是 Linux 作業系統的核心工具。儘管現在大多數發行版已棄用這些舊命令,但由於許多系統管理員已經習慣使用它們,因此仍有必要了解。

為何舊命令被取代?

舊命令因以下原因被取代:

  • 部分新硬體(如 InfiniBand 網路介面卡)未獲得良好支援。
  • Linux 核心的演變導致舊命令的操作一致性下降。

舊命令屬於 net-tools 軟體包,而新命令則包含在 iproute2 軟體包中。新的系統管理員應專注於學習新命令,但熟悉舊命令仍然是必要的。

安裝舊版網路工具

要安裝舊版網路命令,可以使用以下指令:

sudo apt install net-tools

執行此命令後,系統會下載並安裝 net-tools 軟體包,同時也會處理相關的依賴套件。

內容解密:
  1. sudo:使用管理員許可權執行命令,避免對系統造成不可預期的變更。
  2. apt:Advanced Package Tool,用於安裝、更新和管理軟體包及其依賴項,簡化了軟體安裝流程。
  3. 軟體包管理工具:不同 Linux 發行版使用不同的軟體包管理工具,如 Debian 和 Ubuntu 使用 aptdeb 檔案,而其他發行版可能使用 rpm 檔案。

顯示介面 IP 資訊

在 Linux 工作站上顯示介面資訊是一項常見任務,尤其是當主機介面卡設定為自動組態時(例如,使用 DHCP 或 IPv6 自動組態)。

使用 ip 命令顯示 IP 資訊

ip 命令允許使用者顯示或組態主機的網路引數。要顯示目前的 IP 位址資訊,可以使用以下命令:

ip address
內容解密:
  1. ip address 命令:用於顯示或更新 IP 位址、路由資訊和其他網路資訊。
  2. 作用:此命令提供目前網路介面的組態資訊,包括 IP 位址、子網路遮罩等。

舊版 ifconfig 命令

在舊版 Linux 系統中,可以使用 ifconfig 命令來顯示網路介面資訊。

瞭解更多命令資訊

對於新命令,可以使用 man 命令來查詢手冊頁面。例如,要查詢 apt 命令的詳細資訊,可以執行:

man apt

這將顯示 apt 命令的使用手冊,幫助使用者瞭解其功能和用法。

內容解密:
  1. man 命令:用於顯示 Linux 命令和函式的手冊頁面,是學習和使用 Linux 命令的重要工具。
  2. 作用:透過閱讀手冊頁面,使用者可以深入瞭解特定命令的使用方法和可選引數。