![Linux實戰](https://static.coderbridge.com/images/books/9787111627043.jpg)
Linux實戰
內容描述
如果不親自動手實踐,你就學不到任何知識,Linux也不例外。所有認真的用戶,包括開發人員、管理人員以及DevOps專業人員,都需要具備諸如保護文件、文件夾以及服務器、安裝補丁與應用以及網絡管理等技能。通過學習本書中的實踐教程,你就可以捲起袖子,一個項目接一個項目地進行學習。
本書中共有12個實際項目,包括自動備份與恢復系統、建立一個私有的Dtropbox風格的文件雲以及構建你自己的MediaWiki服務器等。當你開展諸如虛擬化、災難恢復、安全、備份、DevOps以及系統故障診斷等核心實踐時,你將會接觸到一些有趣的例子。每章都以回顧主要名詞、安全最佳實踐、命令行以及習題結束。
本書主要內容
·構建一個安全的Linux環境
·管理安全遠程連接
·構建系統恢復設備
·對系統打補丁以及升級
不需要之前有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
作者介紹
戴維•克林頓(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管理及服務器虛擬化)的鏈接。