1. 程式人生 > 實用技巧 >Linux網路安全,這本搞定了!

Linux網路安全,這本搞定了!

1991年,芬蘭赫爾辛基大學的學生林納斯·本納第克特·託瓦茲(Linus Benedict Torvalds)在使用一個叫作Minix的作業系統。Minix(名稱來源於“mini-Unix”)是設計用於教學的一個類Unix的作業系統。雖然林納斯喜歡Minix的許多功能,但他發現其還是有很多不完善的地方。1991年8月25日,他在網上發表了下面這個帖子:

“所有Minix的使用者,大家好。我正在為使用386或486處理器的計算機開發一款(免費)作業系統(只是一個業餘愛好,不會像是GNU那樣龐大或專業)。從4月開始醞釀,現在開始著手準備。我想要收到大家喜歡或不喜歡Minix系統的所有反饋,因為我開發的這個作業系統與Minix很像(具有相同的檔案系統設計(由於一些現實的原因)以及一些其他方面)。”

這個“只是業餘愛好”的專案最後變成了Linux的起源。從那之後,林納斯的專案已經成長為現代IT生態中的關鍵組成部分。它已經成為世界上數以百萬計的伺服器使用的強大的作業系統。實際上,我們已經很難離開Linux,因為它在支撐著大量的行動電話(安卓是基於Linux的)的使用,大量的Web伺服器、郵件伺服器,以及因特網上的其他伺服器都選擇Linux作為其作業系統。

Linux系統的安全性

縱觀整個IT產業,Linux得到了廣泛的運用,且由於具有安全性、低成本及可擴充套件性,常被作為通用平臺的替代品。Linux作業系統執行在各種伺服器上,包括郵件伺服器和Web伺服器。此外,Linux作為軟體開發平臺更是受到程式設計師的青睞。

和所有其他作業系統一樣,網路安全(cybersecurity)也是Linux系統使用者的痛點。由於Linux系統上執行著各式各樣的軟體,還存在不同版本的Linux(我們稱之為發行版),網路安全涉及系統的使用者和管理者,非常複雜。

遺憾的是,在關於Linux的書籍或課程裡經常忽略網路安全這個部分。通常情況下,這些書籍和課程只是關注如何使用Linux,而網路安全則被認為是後續才需要考慮的事情,或者是具備豐富經驗的“老司機”才能學懂的高階課題。之所以這樣,可能是因為這些書籍和課程的作者認為網路安全是很難學習的部分,但研究Linux而又忽略安全本身就是一個巨大的錯誤。

為什麼說網路安全是學習Linux的重要組成部分?原因之一是,Linux是一個真正的多使用者系統,這意味著即使是普通使用者(終端使用者)也需要懂得如何保護自己資料的安全,以防止他人竊取。

另外一個原因是,大多數Linux系統都執行著許多網路服務,這些服務通常都直接暴露到因特網上。在我們加固自己的個人Linux系統或整個公司的Linux伺服器的時候,需要意識到全世界有無數雙眼睛在盯著我們,想要窺探我們的資料。

《Linux網路安全精要》

本書英文原版入選BookAuthority2019年評選的“學習Linux最適合的10本新書”

涵蓋CompTIA Linux+和LPIC-1考試的關鍵主題

本書的目標是讓你掌握一個Linux專業人士應該具備的技能,所採用的方法也是典型的從零開始學起,但用了獨特的方法來時刻關注安全。在本書中,你會找到安全問題的參考資料。整本書都會討論安全性,並將重點放在建立安全策略上。

Linux是一個很廣泛的話題,不可能在一本書裡把它全部講完,Linux安全亦是如此。我們已經儘可能詳細地講述,但我們還是鼓勵你在本書引入的話題上獨自探索,以取得更大的進步。

本書的讀者物件

或許回答“這本書不適合誰閱讀”這個問題會更容易些,Linux的發行版被形形色色的使用者所採用,包括:

  • 軟體開發人員

  • 資料庫管理員

  • 網站管理員

  • 安全管理員

  • 系統管理員

  • 系統恢復專家

  • “大資料”工程師

  • 黑客

  • 政府部門

  • 手機使用者和研發人員(Android是Linux的一個發行版)

  • 晶片廠商(許多晶片上有嵌入式Linux)

  • 數字取證專家

  • 教育工作者

上面列的這些甚至都不完整,Linux無處不在!Android手機使用Linux作業系統,無數的Web伺服器和郵件伺服器執行在Linux系統上,許多網路裝置上也執行著嵌入式Linux系統,例如路由器和防火牆。

本書適合那些想要更好地使用Linux系統,想讓他們所使用的Linux系統儘可能安全的讀者閱讀。

本書的組織結構

第一部分 Linux基礎

第1章深入講解Linux各相關元件的基本資訊,你會學習Linux作業系統的不同元件,以及什麼是發行版,還會學習如何安裝Linux作業系統。

第2章涵蓋在Linux環境下需要用到的一些基礎命令。

第3章介紹在Linux下獲取更多幫助資訊的方法,包括作業系統自帶的文件,以及一些重要的網頁資源。

第4章重點關注文字檔案的編輯工具。編輯文字檔案是一項非常重要的Linux任務,因為大多數配置檔案都儲存在文字檔案裡。

第5章回顧如何處理Linux系統中可能會出現的錯誤,詳細介紹如何在Linux環境中排除系統問題。

第二部分 使用者和使用者組

第6章主要是對使用者組賬戶的管理,包括增加、修改和刪除組,要特別注意系統組(或特殊組)以及理解主組和附屬組之間的區別。

第7章涵蓋與使用者賬戶相關的內容,如何建立和保護賬戶,以及如何給使用者提供賬戶安全防護方面的最佳安全實踐。

第8章講述如何運用在第6章和第7章所學到的知識制訂賬戶安全策略。

第三部分 檔案和資料儲存

第9章主要介紹如何利用Linux許可權來保護檔案,深入探討很多高階主題,例如特殊許可權、umask、訪問控制列表(ACL)以及檔案屬性等。

第10章涵蓋與本地儲存裝置相關的概念,包括如何建立分割槽和檔案系統,以及檔案系統的一些基本功能。

第11章涵蓋本地儲存裝置管理的高階功能,包括如何使用autofs,以及如何建立加密檔案系統。你還會了解邏輯卷—邏輯卷是本地儲存裝置管理的另一種方式。

第12章討論如何使儲存裝置在網路上可用,還會討論檔案系統共享技術,例如NFS、Samba和iSCSI。

第13章講述如何運用第9~12章所學的知識制訂儲存安全策略。

第四部分 自動化

第14章介紹兩組工具,可以讓我們在將來的某個時間自動執行程序。crontab系統允許使用者以固定的間隔來執行程式,例如一個月或者兩週。at系統為使用者提供了在將來特定時間執行某個程式的方法。

第15章介紹將BASH命令放進檔案中來建立更復雜的命令集合的基礎知識。指令碼用於儲存以後可能需要用到的指令。

第16章介紹普通使用者和系統管理員都會自動化的一些日常任務。重點是安全性,但也會演示其他自動化任務,特別是那些與前幾章討論的主題相關的任務。

第17章講述如何運用第14~16章所學的知識制訂自動化安全策略。

第五部分 網路

第18章涵蓋配置和保護網路連線時所需要了解的基礎知識。

第19章包含配置系統以連線到網路的過程。

第20章涵蓋配置幾個網路工具的過程,包括DNS、DHCP和郵件伺服器。

第21章涵蓋配置幾個網路工具的過程,包括Apache Web伺服器和Squid。

第22章探討如何通過網路登入遠端系統。

第23章講述如何運用第18~22章所學的知識制訂網路安全策略。

第六部分 程序和日誌管理

第24章包括如何啟動、檢視和控制程序。

第25章包括如何檢視系統日誌,以及如何配置系統來建立自定義的日誌條目。

第七部分 軟體包管理

第26章包含如何在基於Red Hat的發行版本(例如Fedora和CentOS)上管理軟體包。

第27章包含如何在基於Debian的發行版本(例如Ubuntu)上管理軟體包。

第28章介紹系統引導的過程和相關工具的使用。

第29章講述如何運用第26~28章所學的知識制訂軟體包管理安全策略。

第八部分 安全任務

第30章介紹黑客用來收集系統資訊的技術。通過學習這些技術,你應該能夠制訂出更好的安全計劃。

第31章探討如何配置防火牆軟體來保護系統免受網路攻擊。

第32章介紹一些用來判斷是否有人成功地危害了你的系統安全的一些工具和技術。

第33章涵蓋一些其他的Linux安全特性,包括fail2ban服務、虛擬專用網(v*n)和檔案加密。

作者簡介

威廉·羅斯韋爾

(William “Bo” Rothwell)

在14歲這個易受外界影響的年齡,威廉·羅斯韋爾與TRS-80微型計算機系統(也被親切地稱為“Trash 80”)相遇了。他的家長犯了一個錯誤,讓他與TRS-80單獨待在一起,不久之後,他就把TRS-80拆了,並開辦了他的第一堂計算機課,向他的朋友們展示這個“計算機”的工作原理。

從這次經歷開始,他對理解計算機的工作原理並與他人分享這些知識的熱情使他在IT培訓方面獲得了一份有價值的工作。他的經驗包括Linux、Unix以及Perl、Python、Tcl和BASH等程式語言。他是IT培訓組織One Course Source的創始人和總裁。

丹尼斯·金賽

(Denise Kinsey)

博士、思科CISSP和休斯敦大學的助理教授。在20世紀90年代末擔任Unix管理員(HP-UX)時,她意識到作業系統的強大功能和靈活性。這促使她在家裡安裝了不同風格的Linux,並在Linux上開設了幾門學術課程。她在網路安全方面有著深厚的背景,致力於與客戶和學生分享並實施最佳實踐。

譯者簡介

王躍東

資深運維工程師,10餘年工作經驗,曾在折800、客如雲、ThoughtWorks公司工作,擅長運維架構和運維自動化開發。目前就職於一家網際網路教育公司,主要專注於容器化和Kubernetes方面。

王雲午

從事運維工作10餘年,在某大型企業任高階運維工程師,主要負責資料庫、中介軟體及私有云平臺的管理與維護工作,擁有豐富的IT運維經驗。

本文內容節選自《Linux網路安全精要》一書。

更多精彩回顧

書訊 |10月書訊(下)| 雙節同慶,讀書正當時

書訊 |10月書訊(上)| 雙節同慶,讀書正當時

資訊 |TIOBE 10 月程式語言排行榜出爐:C語言居首,Python將超Java?

上新 |百度官方出品 | 全面解讀PaddlePaddle,零基礎快速入門深度學習
書單 |開學季——計算機專業學生必讀的10本暢銷經典

乾貨 |資料分析必讀乾貨:簡單而實用的3大分析方法

收藏 |(萬字長文)Spring的核心知識盡攬其中

視訊 |大佬出鏡推薦不可不讀系列——程式設計師陳彼得

點選閱讀全文購買