天天看點

新書推薦 |《Linux實戰》

新書推薦

《Linux實戰》

點選上圖了解及購買

以實踐項目驅動,聚焦Linux管理核心技能,通過12個實際項目帶你精通Linux系統安全、管理與運維。

編輯推薦

如果不親自動手實踐,你就學不到任何知識,Linux也不例外。所有認真的使用者,包括開發人員、管理人員以及DevOps專業人員,都需要具備諸如保護檔案、檔案夾以及伺服器、安裝更新檔與應用以及網絡管理等技能。通過學習本書中的實踐教程,你就可以卷起袖子,一個項目接一個項目地進行學習。

本書中共有12個實際項目,包括自動備份與恢複系統、建立一個私有的Dtropbox風格的檔案雲以及建構你自己的MediaWiki伺服器等。當你開展諸如虛拟化、災難恢複、安全、備份、DevOps以及系統故障診斷等核心實踐時,你将會接觸到一些有趣的例子。每章都以回顧主要名詞、安全最佳實踐、指令行以及習題結束。

讀完本書你将學到

  • 虛拟化:使用虛拟化技術建構沙箱計算機環境(第2章);啟動chroot會話來恢複損壞的配置及檔案系統,或者重設一個身份認證密碼(第6章和第9章);了解基礎設施編排(第16章)。
  • 連接配接:掌握建立、管理并排除如下這些連接配接故障所需要的核心Linux工具:從遠端伺服器管理(第3章)到腳本化的歸檔檔案備份(第4章),從提供Web伺服器(第7章)和檔案共享(第8章)到系統監控(第11章)。
  • 加密:SSH會話加密(第3章)、加密網絡檔案共享(第8章)、網站加密以及TLS證書(第9章)、VPN(第10章)。
  • 網絡化:如何将Linux用作建構諸如VPN和DMZ等複雜連接配接解決方案的平台(第10章);使用NFS在私有網絡上進行資料共享的可能(第12章);一整套網絡性能優化工具(第14章)。
  • 映像管理:如何将檔案系統的完整映像用于資料的備份與恢複,如克隆與共享VirtualBox虛拟機(第2章)。
  • 系統監控:用監控工具應對與安全和系統性能相關的問題(第13章)。

名人推薦

“這本書是了解Linux的必備指南,書中提供了大量的實際項目案例。”

——Dario Victor Durán, HiQ 斯德哥爾摩

“講授各種各樣的Linux特性,使你的生活更加輕松,非常實用。”

——Jens Christian B. Madsen, IT Relation

“Linux系統管理的首選書籍。”

——Gustavo Patino, 奧克蘭大學威廉博蒙特醫學院

“涵蓋你着手維護Linux時所需的一切知識和技能。它不是關于如何使用Linux而是關于如何管理Linux的書。"

——Maciej Jurkowski, Grupa Pracuj

作者簡介

戴維•克林頓(David Clinton)是一名系統管理者、教師及作家。他已經為很多重要的技術主題撰寫和建立了教育訓練資料,涉及Linux系統、雲計算(特别是AWS)以及諸如Docker等容器技術。他是《Learn Amazon Web Services in a Month of Lunches》(Manning,2017)一書的作者。在網站https://www.pluralsight.com/可以找到他的許多視訊教育訓練課程。同時,可以在https://bootstrap-it.com找到他編著的其他書籍(關于Linux管理及伺服器虛拟化)的連結。

目錄

譯者序

前言

第1章 歡迎使用Linux1

1.1 是什麼讓Linux與其他作業系統不同2

1.2 基本的實踐技能3

1.2.1 Linux檔案系統4

1.2.2 探索:Linux導航工具5

1.2.3 完成任務:Linux檔案管理工具9

1.2.4 鍵盤技巧13

1.2.5 僞檔案系統13

1.2.6 向他們展示誰才是老大:sudo14

1.3 擷取幫助15

1.3.1 man檔案15

1.3.2 info指令16

1.3.3 網際網路17

1.4 小結18

第2章 Linux虛拟化:建構Linux工作環境21

2.1 什麼是虛拟化22

2.2 使用VirtualBox25

2.2.1 使用Linux包管理器25

2.2.2 定義虛拟機32

2.2.3 安裝作業系統35

2.2.4 克隆和共享VirtualBox虛拟機38

2.3 使用Linux容器40

2.3.1 LXC入門40

2.3.2 建立第一個容器41

2.4 小結44

第3章 遠端連接配接:安全通路聯網的計算機48

3.1 加密的重要性48

3.2 OpenSSH入門49

3.3 使用SSH登入一台遠端伺服器52

3.4 免密碼SSH通路53

3.4.1 生成新的密鑰對54

3.4.2 在網絡上複制公鑰55

3.4.3 使用多個加密密鑰57

3.5 使用SCP安全地拷貝檔案57

3.6 使用SSH連接配接上的遠端圖形程式58

3.7 Linux程序管理59

3.7.1 用ps指令檢視程序60

3.7.2 使用systemd62

3.8 小結63

第4章 歸檔管理:備份或拷貝整個檔案系統66

4.1 為什麼要歸檔66

4.1.1 壓縮67

4.1.2 歸檔檔案:一些重要注意事項68

4.2 将什麼歸檔69

4.3 備份到何處71

4.4 使用tar指令歸檔檔案和檔案系統71

4.4.1 幾個簡單的歸檔和壓縮示例72

4.4.2 流式傳輸檔案系統的歸檔檔案73

4.4.3 使用find指令聚合檔案75

4.4.4 保護權限與所有權并展開歸檔檔案76

4.5 使用dd指令歸檔分區80

4.5.1 dd操作80

4.5.2 使用dd擦除硬碟81

4.6 使用rsync指令同步歸檔檔案81

4.7 規劃注意事項83

4.8 小結84

第5章 自動化管理:自動異地備份的配置87

5.1 用Bash編寫腳本88

5.1.1 備份系統檔案的腳本示例88

5.1.2 用于更改檔案名的示例腳本92

5.2 将資料備份至AWS S393

5.2.1 安裝AWS指令行接口94

5.2.2 配置你的AWS賬戶94

5.2.3 建立你的第一個bucket96

5.3 使用cron排程定期備份96

5.4 使用anacron預定非正常備份99

5.5 利用系統計時器設定正常備份100

5.6 小結102

第6章 應急工具:建構一個系統恢複裝置105

6.1 在恢複/救援模式下工作106

6.1.1 GRUB引導加載程式107

6.1.2 在Ubuntu環境下使用恢複模式108

6.1.3 在CentOS下使用救援模式108

6.1.4 找到指令行救援工具109

6.2 建立一個原生系統引導恢複裝置110

6.2.1 系統救援映像110

6.2.2 将原生系統引導映像寫入USB驅動112

6.3 讓你的原生系統引導裝置運作115

6.3.1 檢測系統存儲區115

6.3.2 受損的分區117

6.3.3 從損壞的檔案系統中恢複檔案119

6.4 密碼恢複:使用chroot安裝檔案系統120

6.5 小結122

第7章 Web伺服器:建立MediaWiki伺服器125

7.1 建立LAMP伺服器126

7.2 手動設定Apache Web伺服器127

7.2.1 在Ubuntu上安裝Apache Web伺服器127

7.2.2 填充你的網站文檔root128

7.3 安裝SQL資料庫129

7.3.1 強化SQL131

7.3.2 SQL管理131

7.4 安裝PHP134

7.4.1 在Ubuntu中安裝PHP134

7.4.2 測試你的PHP安裝134

7.5 安裝和配置MediaWiki135

7.5.1 缺少擴充的故障排除136

7.5.2 将MediaWiki連接配接到資料庫138

7.6 在CentOS上安裝Apache Web伺服器140

7.6.1 了解網絡端口141

7.6.2 網絡流量控制142

7.6.3 在CentOS上安裝MariaDB142

7.6.4 在CentOS上安裝PHP143

7.7 小結145

第8章 網絡檔案共享:建構Nextcloud檔案共享伺服器148

8.1 企業檔案共享和Nextcloud149

8.2 使用snaps安裝Nextcloud149

8.3 手動安裝Nextcloud152

8.3.1 硬體預備知識152

8.3.2 建立LAMP伺服器153

8.3.3 配置Apache154

8.3.4 下載下傳和解壓縮Nextcloud156

8.4 Nextcloud管理158

8.5 将AWS S3作為Nextcloud的主存儲媒體161

8.6 小結163

第9章 保護Web伺服器166

9.1 顯而易見的事情167

9.2 控制網絡通路168

9.2.1 配置防火牆168

9.2.2 使用非标準端口175

9.3 加密傳輸中的資料177

9.3.1 準備你的網站域178

9.3.2 用Let抯 Encrypt生成證書179

9.4 強化認證過程180

9.4.1 使用SELinux控制檔案系統對象181

9.4.2 安裝并激活SELinux182

9.4.3 應用SELinux政策184

9.4.4 系統組與最少特權原則185

9.4.5 隔離容器中的程序187

9.4.6 掃描危險的使用者ID值187

9.5 審計系統資源188

9.5.1 掃描打開的端口188

9.5.2 掃描激活的服務189

9.5.3 搜尋已安裝的軟體190

9.6 小結190

第10章 保護網絡連接配接:建立VPN或DMZ194

10.1 建構OpenVPN隧道195

10.1.1 配置OpenVPN伺服器196

10.1.2 配置OpenVPN用戶端202

10.1.3 測試你的VPN203

10.2 建構抗入侵網絡205

10.2.1 非軍事區205

10.2.2 使用iptables207

10.2.3 使用iptables建立DMZ208

10.2.4 使用shorewall建立DMZ210

10.3 為基礎設施測試建構虛拟網絡213

10.4 小結215

第11章 系統監控:使用日志檔案218

11.1 使用系統日志219

11.1.1 使用journald記錄日志220

11.1.2 使用syslogd記錄日志222

11.2 管理日志檔案224

11.2.1 journald 方法224

11.2.2 syslogd方法224

11.3 處理大檔案226

11.3.1 使用grep226

11.3.2 使用awk227

11.3.3 使用sed228

11.4 使用入侵檢測進行監控229

11.4.1 搭建郵件伺服器229

11.4.2 安裝Tripwire230

11.4.3 配置Tripwire232

11.4.4 生成Tripwire測試報告235

11.5 小結235

第12章 在私有網絡上共享資料239

12.1 通過網絡檔案系統共享檔案240

12.1.1 設定NFS伺服器241

12.1.2 建立用戶端242

12.1.3 在引導時挂載NFS共享243

12.1.4 NFS安全性245

12.2 使用Samba與Windows使用者共享檔案247

12.2.1 測試你的Samba配置248

12.2.2 從Windows通路Samba伺服器249

12.3 使用符号連結與自己共享檔案250

12.4 小結251

第13章 解決系統性能問題255

13.1 CPU負載問題256

13.1.1 測量CPU負載256

13.1.2 管理CPU負載257

13.1.3 制造麻煩(模拟CPU負載)260

13.2 記憶體問題260

13.2.1 評估記憶體狀态260

13.2.2 評估交換狀态261

13.3 存儲可用性問題261

13.3.1 索引節點的限制262

13.3.2 解決方案264

13.4 網絡負載問題265

13.4.1 測量帶寬265

13.4.2 解決方案266

13.4.3 與tc形成網絡流量267

13.5 監控工具268

13.5.1 收集監測資料268

13.5.2 将資料進行可視化269

13.6 小結270

第14章 排除網絡故障274

14.1 了解TCP/IP尋址275

14.1.1 什麼是NAT尋址275

14.1.2 使用NAT尋址275

14.2 建立網絡連接配接278

14.3 排除傳出連通性故障278

14.3.1 跟蹤網絡狀态280

14.3.2 配置設定IP位址281

14.3.3 配置DNS服務284

14.3.4 管道286

14.4 排除傳入連通性故障286

14.4.1 内部連通性掃描:netstat 287

14.4.2 外部連通性掃描:netcat287

14.5 小結288

第15章 排除外圍裝置故障292

15.1 識别連接配接的裝置292

15.2 用Linux核心子產品管理外設294

15.2.1 查找核心子產品295

15.2.2 手動加載核心子產品297

15.3 引導時手動管理核心參數298

15.3.1 引導時傳遞參數298

15.3.2 通過檔案系統傳遞參數299

15.4 管理列印機300

15.4.1 lp基礎301

15.4.2 使用CUPS管理列印機301

15.5 小結303

第16章 DevOps工具:使用Ansible部署一個腳本化的伺服器環境305

16.1 部署協調器可以為你做什麼306

16.2 Ansible:安裝和設定308

16.2.1 設定對主控端的無密碼通路309

16.2.2 組織Ansible的主控端309

16.2.3 測試連接配接性310

16.3 認證311

16.4 Ansible playbook312

16.4.1 編寫一個簡單的playbook313

16.4.2 建立多層、角色驅動的playbook314

16.4.3 用Ansible管理密碼316

16.5 小結317

總結320

附錄 每章指令行回顧324

新書推薦 |《Linux實戰》

你與世界

隻差一個

公衆号