Linux系統與網路管理教程(第2版)

《Linux系統與網路管理教程(第2版)》是2010年12月電子工業出版社出版的圖書,作者是閻映炳,劉雪潔。

宣傳語

本書第1版被多所院校選為教材

第2版新增15小時多媒體教學視頻

內容簡介

本書以目前國際上使用最為流行、功能最為完善和成熟的Red Hat Enterprise Linux 5為藍本,對Linux的系統管理以及網路服務進行了詳細的介紹。本書分為四篇共20章,由淺入深、循序漸進地介紹了Linux的系統管理、網路服務以及開發的相關知識,內容涉及Linux的基礎知識、檔案和磁碟管理、常見軟體和硬體配置、用戶和組管理、軟體包管理、GRUB引導器、進程管理、遠程登錄管理、 TCP/IP網路基礎知識、Samba伺服器、Proxy伺服器、資料庫伺服器、Apache伺服器、FTP伺服器、NFS伺服器、郵件伺服器、網路信息安全,以及Linux下的C編程和網路編程等內容。

本書講解透徹、例子豐富,適用於初、中級Linux用戶,並配有一張多媒體視頻教學光碟,可以用作各類院校相關專業的教材以及Linux培訓班的教材;同時,本書也是面向廣大Linux愛好者的一本Linux實用參考書。

作者簡介

閻映炳,中國科學院博士,軟體工程師,長期從事Linux系統下的軟體開發、伺服器配置與維護工作,曾經參加上海光源國家重大科學工程測量與控制的設計與建造。工作之餘,他致力於網路伺服器最佳化和嵌入式Linux開發。

前 言

Linux是目前非常流行的一款作業系統,由於其穩定、高效、安全,已被越來越多的用戶了解和使用。它支持多用戶、多進程和多執行緒,實時性好,穩定性高。同時,又具有良好的兼容性和可移植性。Linux最大的優點在於其強大的伺服器功能,正因為如此,在網路技術蓬勃發展的今天,憑藉其在安全性、穩定性等方面的巨大優勢,正受到越來越多的青睞,一些大型的網路及網站伺服器,都是建立在Linux平台之上的。

Red Hat Linux,俗稱紅帽子Linux,是套用最廣、功能最為完善和成熟的Linux發行版本,Red Hat Enterprise Linux 5是目前其企業版的最高版本。它是鍾愛Linux系統的程式設計師們進行系統級和套用級開發的最佳選擇,同時也是初學者步入Linux這個自由而神聖的殿堂的最好工具。本書以Red Hat Enterprise Linux 5為藍本,對Linux系統進行全面、系統的介紹。無論是把Linux作為伺服器還是桌面系統,本書都提供了安裝、配置與管理最新作業系統的實用信息。

為了滿足眾多Linux愛好者、初學者、以及從業者的使用需求,作者根據多年從事Linux研究及開發工作的經驗,精心編寫了本書,奉獻給廣大讀者。本書依照Linux初學者的學習規律,同時兼顧中級Linux讀者,首先介紹Linux系統管理方面的一些基本概念和操作,在讀者掌握了這些知識的基礎上,再對網路服務等內容進行深入地講解。

本書在內容的編排和章節的組織上都十分考究,力爭讓讀者能夠在短時間內掌握Linux系統的一些實用的概念和技能,從而能夠快速入門。同時,本書還通過講解一些高級的內容,使得中級Linux讀者也能夠迅速得到提高。在講解具體知識的時候,本書儘量避免冗長的知識講解,直接切入主題,告訴讀者如何實現特定功能,讓讀者在實際操作中熟悉和體會該系統的使用。再者,本書在理論的講解方面,譬如信息安全、垃圾郵件防護等方面具有一定的理論深度,能夠滿足大專院校讀者的需求。

本書的特色

1.結構嚴謹,內容豐富

作者對Linux內容的選取非常嚴謹,一環扣一環,從一個知識點過渡到另一個知識點非常順暢和自然。而且,本書內容豐富,從Linux的系統管理、桌面使用到網路服務的構建和套用,甚至到比較實用的Linux下的編程方面的知識,都進行了相應的介紹。

2.講解通俗,步驟詳細

本書對每個知識點以及實例的講解都注重通俗易懂、步驟詳細,並添加了相應的注釋,讀者只要按照步驟操作,就可以很快地上手,迅速掌握。

3.高屋建瓴,適用面廣泛

本書在選材上,從適用人群、學習曲線等各方面進行了細緻的分析和考慮,主要針對初級Linux用戶,同時兼顧中級Linux用戶以及各類院校的學生自學的需求,在講解的難度和深度上都恰到好處,所以適用範圍比較廣泛。

4.具有一定的理論價值

本書不是一般的Linux工具書籍,而是在講解基本操作的前提下,從理論上對每個知識點的原理和套用背景都進行了詳細闡述,從而可以讓讀者在實踐中舉一反三,能夠解決實際中遇到的問題。

本書的內容安排

第1章向讀者介紹什麼是Linux,Linux的發展歷史、優勢以及套用領域,並詳細介紹了Red Hat Enterprise Linux 5的安裝過程,以及登錄和退出方法。

第2章詳細講述如何對Linux的檔案系統以及磁碟進行管理,包括檔案系統基本原理、常用的檔案與目錄操作、磁碟管理的方法等,本章是使用Linux的基礎。

第3章向讀者介紹Linux系統中常見軟體和硬體設定的方法,主要包括用戶界面的設定、安裝與卸載軟體、硬體監測、硬體配置等。

第4章講述如何對Linux系統中的用戶和組進行管理。本章配合實例進行介紹,幫助讀者儘快通過使用相關的檔案、命令和圖形化工具有效地對用戶和組進行管理。

第5章介紹軟體包管理的知識。重點介紹RPM包的管理,同時也對TAR包管理和Linux下常用的壓縮工具進行了介紹。

第6章介紹Red Hat Enterprise Linux 5中使用的GRUB引導器。該引導器可以用來在機器中啟動多個作業系統。

第7章著重介紹Linux系統中最重要的運行實體——進程的工作原理以及如何對系統中的進程進行管理,並且介紹了在實際中經常用到的PROC檔案系統的使用方法。

第8章介紹Linux系統管理的高級話題——遠程登錄管理,講述了三種遠程登錄方式:Telnet、SSH和VNC。

第9章是對本書後面部分所要介紹的網路服務的有關基礎知識的介紹。具體介紹TCP/IP網路基礎,包括網路體系結構、TCP/IP協定棧等。

第10章介紹如何通過配置Samba伺服器,來達到Windows系統和Linux系統信息共享的目的。本章通過具體的實例來進行講解,以便讀者更好地理解和操作。

第11章介紹目前套用較為廣泛的代理伺服器技術。通過本章的學習,讀者可以在Linux環境下輕鬆搭建一個安全、高效的代理伺服器。

第12章介紹Linux環境下最受歡迎的兩種資料庫——MySQL和Oracle,主要包括兩種資料庫的安裝、啟動,以及在程式中的簡單使用。

第13章以Apache伺服器為背景,介紹如何在Linux中搭建自己的Web伺服器以及該伺服器的功能配置,包括虛擬主機的設定、SSI的使用等。

第14章介紹Linux系統下FTP伺服器的安裝、配置以及使用方法,包括Vsftp伺服器和Wu-ftp伺服器。

第15章介紹NFS伺服器的相關內容,包括NFS的基本原理、安裝和啟動方法、伺服器端的配置,以及客戶端查看、掛載已分享資料夾等。

第16章介紹Linux中Sendmail和Dovecot伺服器的使用。通過本章的學習,讀者可以使用這些伺服器輕鬆地收發郵件。此外,本章還介紹了垃圾郵件的流行趨勢,並結合Sendmail給出了在Linux中防治垃圾郵件的策略。

第17章介紹有關網路信息安全的原理和軟體,這是本書中最有特色、理論性最強的一章。它從多個方面闡述了網路信息安全的原理,介紹了網路安全防禦的工具,並詳細介紹了在Linux中如何使用iptables、Snort、Tripwire等工具來進行網路防護。

第18章介紹Linux下的編程,主要介紹在Linux下可使用哪些常用的工具來進行軟體的開發工作。

第19章介紹Linux系統下使用C語言進行程式設計的基礎知識,包括C語言概述、基本套用、檔案操作以及進程操作等。

第20章介紹Linux系統下網路編程的基礎知識,包括套接字編程、伺服器模型以及域名系統等。通過本章的學習,讀者可以掌握基於客戶-伺服器模型的應用程式設計方法。

書中的注釋說明

為了更好地為讀者服務,本書遵循如下的注釋原則。

(1)如果例子比較複雜,則在各個例子的開始加一段功能性說明,該說明注釋的位置獨立成行,以“//”開始;其他簡單的例子則在需要注釋的部分進行說明。

(2)對於例子當中需要說明部分的注釋位於該行的右部,以“//”開始。

關於作者

本書主要由閻映炳、劉雪潔編寫,同時參與編寫的還有昊燃、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓。在此一併表示感謝。

編著者

2010年10月於北京

目 錄

第一篇 Linux基礎篇

第1章 Linux入門 2

1.1 什麼是Linux 2

1.2 Linux的發展歷史 2

1.3 Linux的優勢 3

1.4 Linux的套用領域 4

1.5 Linux的安裝 4

1.5.1 硬體需求 5

1.5.2 安裝方式 5

1.5.3 安裝過程 6

1.6 Linux的啟動過程 14

1.7 圖形界面登錄和退出Linux 14

1.8 字元界面登錄和退出Linux 15

1.9 本章小結 16

1.10 習題 16

第2章 檔案和磁碟管理 17

2.1 Linux檔案系統入門 17

2.1.1 Linux常用檔案系統介紹 17

2.1.2 Linux檔案介紹 18

2.1.3 Linux目錄介紹 19

2.1.4 Linux目錄結構 20

2.2 檔案與目錄基本操作 22

2.2.1 顯示檔案內容命令:cat、more、less、head、tail 22

2.2.2 檔案內容查詢命令:grep、egrep、fgrep 25

2.2.3 檔案查找命令:find、locate 26

2.2.4 文本處理命令:sort、uniq 28

2.2.5 檔案內容統計命令:wc 30

2.2.6 檔案比較命令:comm、diff 31

2.2.7 檔案的複製、移動和刪除命令:cp、mv、rm 33

2.2.8 檔案連結命令:ln 35

2.2.9 目錄的創建與刪除命令:mkdir、rmdir 36

2.2.10 改變工作目錄、顯示路徑以及顯示目錄內容命令:cd、pwd、ls 36

2.3 檔案/目錄訪問許可權管理 39

2.3.1 檔案/目錄訪問許可權簡介 39

2.3.2 使用chmod改變檔案/目錄的訪問許可權 40

2.3.3 使用命令chown更改檔案/目錄的所有權 41

2.4 管理磁碟存儲器 42

2.4.1 存儲設備的命名 42

2.4.2 磁碟空間管理 42

2.4.3 使用Fdisk工具進行磁碟分區 45

2.4.4 最佳化Linux系統硬碟 46

2.5 本章小結 48

2.6 習題 48

第3章 常見軟體設定和硬體配置 49

3.1 設定用戶界面 49

3.1.1 GNOME桌面系統 50

3.1.2 KDE桌面系統 52

3.1.3 設定檔案瀏覽界面 53

3.1.4 首選項 56

3.2 安裝軟體 59

3.2.1 基於原始碼的軟體安裝 59

3.2.2 基於執行檔的軟體安裝 62

3.2.3 RPM執行檔的軟體安裝 62

3.3 卸載軟體 63

3.4 常見硬體的檢測 63

3.4.1 中央處理器狀態的檢測 63

3.4.2 硬碟物理壞道的檢測 65

3.4.3 記憶體的檢測 67

3.5 硬體驅動和配置 69

3.5.1 音效卡驅動與配置 69

3.5.2 顯示卡的配置 72

3.5.3 網卡的配置 73

3.5.4 印表機的配置、管理和使用 75

3.6 本章小結 77

3.7 習題 78

第二篇 Linux系統管理與維護篇

第4章 用戶和組管理 80

4.1 用戶和組檔案 80

4.1.1 用戶賬號檔案——passwd 80

4.1.2 用戶影子檔案——shadow 82

4.1.3 用戶組賬號檔案——group 83

4.1.4 組賬號檔案——gshadow 84

4.1.5 使用pwck和grpck命令驗證用戶和組檔案 85

4.2 使用命令行方式管理用戶和組 87

4.2.1 使用useradd命令添加用戶 87

4.2.2 使用usermod命令修改用戶信息 88

4.2.3 使用userdel命令刪除用戶 89

4.2.4 使用groupadd命令創建用戶組 89

4.2.5 使用groupmod命令修改用戶組屬性 90

4.2.6 使用groupdel命令刪除用戶組 90

4.3 使用Red Hat用戶管理器管理用戶和組 91

4.3.1 啟動Red Hat用戶管理器 91

4.3.2 創建用戶 91

4.3.3 修改用戶屬性 92

4.3.4 創建用戶組 93

4.3.5 修改用戶組屬性 94

4.4 本章小結 95

4.5 習題 95

第5章 軟體包管理 96

5.1 RPM包管理 96

5.1.1 RPM軟體包的查詢 96

5.1.2 RPM軟體包的安裝 98

5.1.3 RPM軟體包安裝可能出現的問題 99

5.1.4 RPM軟體包的卸載 100

5.1.5 RPM軟體包的升級 100

5.1.6 RPM軟體包的驗證 101

5.1.7 添加/刪除應用程式 102

5.2 RPM軟體包的密鑰管理 104

5.2.1 下載與安裝PGP 104

5.2.2 RPM使用PGP產生簽名所需的配置 105

5.2.3 配置RPM宏 106

5.2.4 RPM的PGP簽名選項 106

5.2.5 添加數字簽名 106

5.3 TAR包管理 106

5.3.1 TAR命令語法及參數選項 106

5.3.2 創建tar檔案 108

5.3.3 顯示tar檔案內容 109

5.3.4 向tar檔案中添加一個檔案 109

5.3.5 從tar檔案中取出檔案 110

5.4 Linux下常用的壓縮工具 111

5.4.1 gzip壓縮工具 111

5.4.2 zip/unzip命令 113

5.4.3 bzip2/bunzip2命令 118

5.5 本章小結 120

5.6 習題 120

第6章 GRUB引導器 121

6.1 GRUB概述 121

6.2 GRUB的特點 121

6.3 GRUB運行原理 122

6.4 使用GRUB 122

6.4.1 GRUB的選擇安裝 122

6.4.2 GRUB的設備名稱 123

6.4.3 GRUB的檔案名稱稱 124

6.4.4 GRUB的基本接口 124

6.4.5 GRUB的基本命令 126

6.4.6 GRUB配置檔案介紹 127

6.5 GRUB的套用舉例 128

6.6 本章小結 130

6.7 習題 131

第7章 Linux中的進程管理 132

7.1 Linux進程概述 132

7.2 Linux進程原理 132

7.2.1 Linux進程的狀態 132

7.2.2 Linux進程工作模式 133

7.3 Linux守護進程介紹 134

7.3.1 守護進程簡介 134

7.3.2 重要守護進程介紹 134

7.4 啟動Linux進程 135

7.4.1 手工啟動 135

7.4.2 在指定時刻執行命令序列——at命令 136

7.4.3 在資源比較空閒的時候執行

5.2.2 命令——batch命令 139

7.4.4 不斷重複執行某些命令——cron命令 139

7.4.5 操作cron後台進程的表格——crontab命令 139

7.5 進程的掛起及恢復 142

7.6 Linux進程管理 142

7.6.1 使用ps命令查看進程狀態 142

7.6.2 使用top命令查看進程狀態 144

7.6.3 使用kill命令終止進程 145

7.6.4 使用sleep命令暫停進程 146

7.7 進程檔案系統PROC 147

7.8 本章小結 149

7.9 習題 149

第8章 遠程登錄管理 150

8.1 使用Telnet 150

8.1.1 Telnet簡介 150

8.1.2 Telnet原理 150

8.1.3 安裝和啟動Telnet 151

8.1.4 配置Telnet 152

8.1.5 Telnet會話示例 153

8.2 使用SSH 154

8.2.1 SSH介紹 154

8.2.2 安裝與啟動SSH 155

8.2.3 簡單測試和使用SSH 155

8.2.4 配置/etc/ssh/sshd_config檔案 157

8.2.5 配置/etc/ssh/ssh_config檔案 160

8.2.6 SSH的密匙管理 161

8.2.7 使用scp遠程複製檔案 162

8.2.8 使用SSH設定加密通道 163

8.2.9 配置SSH的客戶端 164

8.2.10 配置SSH自動登錄 165

8.3 使用VNC 167

8.3.1 VNC簡介 167

8.3.2 安裝和啟動VNC 168

8.3.3 配置VNC 168

8.3.4 VNC會話示例 170

8.4 本章小結 171

8.5 習題 171

第9章 TCP/IP網路基礎 172

9.1 網路簡介 172

9.2 網路的體系結構 172

9.3 TCP/IP簡介 174

9.3.1 IP協定介紹 175

9.3.2 TCP協定介紹 178

9.3.3 UDP協定介紹 180

9.4 使用xinetd啟動Linux網路服務 181

9.5 本章小結 184

9.6 習題 184

第三篇 Linux伺服器配置篇

第10章 Samba伺服器配置 186

10.1 Samba伺服器簡介及安裝 186

10.1.1 Samba工作原理 186

10.1.2 Samba伺服器的功能 186

10.1.3 SMB協定 187

10.1.4 安裝Samba 187

10.2 啟動及關閉Samba伺服器 188

10.2.1 在命令行中啟動和關閉Samba服務 188

10.2.2 在System Services中啟動和關閉Samba服務 189

10.2.3 簡單測試Samba伺服器 190

10.3 配置Samba伺服器的用戶信息 192

10.3.1 創建伺服器待認證用戶 193

10.3.2 將系統用戶轉換為Samba用戶 193

10.3.3 Samba伺服器和主瀏覽器 194

10.4 smb.conf配置檔案實例詳解 195

10.4.1 設定工作組 195

10.4.2 設定共享Linux賬戶主目錄 196

10.4.3 設定公用已分享資料夾 197

10.4.4 設定一般已分享資料夾 197

10.4.5 設定共享印表機 198

10.4.6 印表機配置相關問題 199

10.5 一個完整的smb.conf檔案實例 200

10.5.1 global段 201

10.5.2 home段 205

10.5.3 printers段 205

10.5.4 netlogon段 206

10.5.5 Profiles段 206

10.5.6 public段 206

10.5.7 一般共享段 207

10.5.8 測試smb.conf檔案 207

10.5.9 該配置在Windows系統下的

10.2.1 顯示結果 208

10.6 smb.conf中的其他選項 209

10.7 Linux和Windows檔案互訪 211

10.7.1 Windows客戶使用Linux系統已分享檔案 211

10.7.2 用smbclient命令訪問區域網路上的Windows系統 211

10.7.3 用smbmount命令訪問區域網路上的其他系統 213

10.7.4 使用LinNeighborhood訪問區域網路上的已分享檔案 213

10.8 本章小結 215

10.9 習題 215

第11章 Proxy伺服器配置 216

11.1 Proxy伺服器原理簡介 216

11.2 Squid簡介 217

11.3 安裝和啟動Squid伺服器 218

11.3.1 安裝Squid伺服器 218

11.3.2 啟動和關閉Squid伺服器 220

11.4 在客戶端使用Squid伺服器 220

11.4.1 在IE瀏覽器中設定 221

11.4.2 在Linux瀏覽器中設定 222

11.5 配置Squid伺服器 223

11.5.1 配置Squid伺服器的基本參數 223

11.5.2 配置Squid伺服器的訪問控制 225

11.5.3 配置Squid伺服器的簡單實例 229

11.6 配置基於Squid的透明代理 229

11.6.1 Linux核心的相關配置 229

11.6.2 Squid的相關配置選項 230

11.6.3 iptables的相關配置 231

11.7 配置多級快取改善Proxy伺服器的性能 231

11.7.1 多級快取(cache)簡介 231

11.7.2 配置多級快取 232

11.8 Squid日誌管理 233

11.8.1 配置檔案中有關日誌的選項 233

11.8.2 日誌管理主檔案——accesss.conf 234

11.9 使用Webalizer對Squid進行流量分析 236

11.9.1 Webalizer的特點 236

11.9.2 安裝Webalizer 237

11.9.3 配置Webalizer 238

11.9.4 使用Webalizer 238

11.10 本章小結 241

11.11 習題 241

第12章 資料庫伺服器配置 242

12.1 Linux下資料庫系統簡介 242

12.2 MySQL資料庫系統簡介 242

12.3 MySQL資料庫系統的安裝 242

12.3.1 基於原始碼包的MySQL安裝 242

12.3.2 基於RPM包的MySQL安裝 246

12.4 設定用戶訪問許可權 247

12.4.1 建立MySQL的用戶和用戶組 247

12.4.2 設定用戶訪問許可權 247

12.4.3 啟動MySQL 248

12.6 MySQL常用操作 250

12.5.1 連線MySQL伺服器 250

12.5.2 退出MySQL伺服器 251

12.5.3 密碼管理 251

12.5.4 增加新用戶 251

12.5.5 命令分行 252

12.5.6 命令歷史記錄 252

12.5.7 顯示資料庫列表 252

12.5.8 顯示資料庫中的數據表 253

12.5.9 顯示資料庫的表結構 254

12.5.10 新建資料庫 254

12.5.11 新建資料庫表 255

12.5.12 刪庫和刪表 255

12.5.13 將表中記錄清空 256

12.5.14 顯示錶的記錄 256

12.5.15 向表中插入記錄 256

12.5.16 MySQL數據導入和備份 256

12.6 在程式中操作MySQL資料庫 257

12.7 安裝Oracle資料庫系統 258

12.7.1 安裝Oracle 11g的硬體條件 258

12.7.2 下載Oracle 11g的安裝檔案 258

12.7.3 安裝前的準備工作 259

12.7.4 安裝Oracle 260

12.8 測試Oracle資料庫系統 261

12.8.1 使用svrmgrl測試安裝是否成功 262

12.8.2 使用sql*plus測試安裝是否成功 262

12.9 設定Oracle服務自動啟動 262

12.10 操作Oracle資料庫 262

12.10.1 創建表空間和創建用戶 263

12.10.2 刪除用戶 263

12.10.3 修改用戶密碼 263

12.10.4 數據導出 263

12.10.5 數據導入 264

12.10.6 其他數據操作 264

12.11 在程式中操作Oracle資料庫 264

12.11.1 用C語言操作Oracle資料庫 264

12.11.2 用PHP語言訪問Oracle資料庫 268

12.12 本章小結 271

12.13 習題 272

第13章 Apache伺服器配置 273

13.1 Apache簡介 273

13.1.1 Apache的誕生 273

13.1.2 Apache的特性 274

13.2 Apache的獲取和安裝 274

13.2.1 Apache獲取及其最新信息 274

13.2.2 基於原始碼的Apache安裝 275

13.2.3 基於RPM軟體包的Apache安裝 281

13.3 啟動和停止Apache伺服器 281

13.3.1 手動啟動和停止Apache伺服器 281

13.3.2 在/etc/rc.d目錄下httpd檔案中用腳本啟動 282

13.3.3 測試Apache 284

13.4 配置Apache伺服器 284

13.4.1 httpd.conf檔案中的全局配置選項 284

13.4.2 .htaccess檔案和訪問限制 287

13.4.3 httpd.conf檔案中的CGI設定 288

13.4.4 httpd.conf檔案中的URL路徑名設定 289

13.4.5 httpd.conf檔案中的MIME類型 292

13.5 虛擬主機的設定 293

13.5.1 基於域名的虛擬主機 293

13.5.2 基於IP的虛擬主機 294

13.6 日誌記錄 294

13.7 SSI設定 295

13.7.1 SSI簡介 295

13.7.2 啟用SSI 295

13.7.3 SSI指令 296

13.8 一個完整的配置檔案 299

13.8.1 全局環境的設定 300

13.8.2 動態共享對象支持DSO的設定 302

13.8.3 主伺服器設定 303

13.8.4 設定日誌管理 305

13.8.5 設定虛擬目錄 306

13.8.6 設定虛擬主機 307

13.8.7 設定MIME類型 307

13.8.8 錯誤顯示 309

13.8.9 語言管理 310

13.9 本章小結 311

13.10 習題 312

第14章 FTP伺服器配置 313

14.1 FTP簡介 313

14.1.1 FTP協定介紹 313

14.1.2 FTP檔案類型 314

14.1.3 FTP檔案結構 315

14.1.4 FTP傳輸模式 315

14.1.5 FTP常用命令 315

14.1.6 FTP典型訊息 316

14.2 使用Vsftp伺服器 317

14.2.1 Vsftp簡介 317

14.2.2 安裝Vsftp伺服器 317

14.2.3 啟動和關閉Vsftp伺服器 319

14.2.4 配置vsftpd.conf檔案 320

14.2.5 配置ftpusers檔案 322

14.2.6 配置user_list檔案 323

14.3 深入使用Vsftp伺服器 323

14.3.1 匿名用戶使用Vsftp伺服器 324

14.3.2 本地用戶使用Vsftp伺服器 325

14.3.3 虛擬用戶使用Vsftp伺服器 327

14.3.4 配置Vsftp伺服器中chroot 329

14.3.5 配置Vsftp伺服器在非標準連線埠工作 329

14.3.6 配置虛擬FTP伺服器 330

14.4 使用Wu-ftp伺服器 332

14.4.1 安裝Wu-ftp伺服器 332

14.4.2 啟動和使用Wu-ftp伺服器 333

14.4.3 配置Wu-ftpd伺服器 334

14.5 本章小結 335

14.6 習題 335

第15章 NFS伺服器配置 337

15.1 NFS簡介 337

15.2 安裝和啟動NFS伺服器 338

15.2.1 安裝NFS伺服器 338

15.2.2 啟動NFS伺服器 341

15.3 配置NFS伺服器 341

15.4 使用NFS伺服器 343

15.4.1 查看NFS已分享資料夾 343

15.4.2 掛載NFS已分享資料夾 344

15.4.3 自動掛載已分享資料夾 346

15.5 本章小結 347

15.6 習題 347

第16章 Mail伺服器配置 348

16.1 郵件系統簡介 348

16.1.1 郵件傳遞代理(MTA) 348

16.1.2 郵件存儲和獲取代理(MSA) 348

16.1.3 郵件客戶代理(MUA) 349

16.2 SMTP介紹 349

16.2.1 SMTP的模型 349

16.2.2 SMTP的基本命令 350

16.2.3 電子郵件介紹 352

16.2.4 Open Relay的原理 354

16.3 建立Sendmail伺服器 354

16.3.1 安裝與啟動Sendmail 354

16.3.2 設定16.3.3 使用檔案 359

16.3.4 創建新的郵件賬號 361

16.3.5 設定賬號別名 361

16.3.6 使用access資料庫 361

16.3.7 配置帶SMTP認證的Sendmail伺服器 362

16.4 建立Dovecot郵件伺服器 363

16.4.1 安裝Dovecot伺服器 364

16.4.2 配置Dovecot伺服器 365

16.4.3 啟動Dovecot伺服器 366

16.4.4 傳送/接收郵件實例 366

16.5 配置郵件客戶端 367

16.6 防範垃圾郵件 371

16.6.1 常用技術 372

16.6.2 使用Sendmail防範垃圾郵件 373

16.7 本章小結 374

16.8 習題 374

第17章 網路信息安全 375

17.1 網路信息安全簡介 375

17.1.1 網路信息安全的要素 375

17.1.2 網路中存在的威脅 376

17.1.3 網路信息安全領域的研究重點 376

17.2 常見的攻擊類型 378

17.2.1 連線埠掃描 378

17.2.2 特洛伊木馬 379

17.2.3 DoS攻擊 381

17.2.4 Linux下的病毒 382

17.3 防火牆(FireWall)技術 384

17.3.1 防火牆簡介 385

17.3.2 防火牆的分類 385

17.3.3 傳統防火牆技術及其特點 387

17.3.4 新一代防火牆的主要技術特點 388

17.3.5 新一代分散式防火牆概述 388

17.3.6 新一代嵌入式防火牆技術 388

17.3.7 新一代智慧型防火牆技術 389

17.3.8 防火牆技術的發展趨勢 389

17.3.9 使用netfilter/iptables防火牆框架 391

17.4 入侵檢測系統(IDS) 395

17.4.1 入侵檢測系統簡介 395

17.4.2 Snort介紹 396

17.4.3 安裝Snort 396

17.4.4 使用Snort 398

17.4.5 配置Snort規則 401

17.4.6 編寫Snort規則 403

17.4.7 Snort規則套用舉例 404

17.5 使用Tripwire保護網路系統的數據安全 406

17.5.1 Tripwire簡介 406

17.5.2 Tripwire工作原理 406

17.5.3 使用Tripwire 408

17.5.4 使用Tripwire的技巧 412

17.6 本章小結 413

17.7 習題 413

第四篇 Linux編程篇

第18章 Linux下的編程 416

18.1 Linux下常用的開發工具 416

18.1.1 GCC 416

18.1.2 CVS 416

18.1.3 Perl 416

18.1.4 Linux上的Delphi——Kylix 417

18.2 Linux下的Vi文本編輯器 417

18.2.1 Vi編輯器介紹 418

18.2.2 啟動Vi編輯器 419

18.2.3 顯示Vi中的行號 420

18.2.4 游標移動操作 420

18.2.5 螢幕命令 421

18.2.6 文本插入(insert)命令 422

18.2.7 附加(append)命令 422

18.2.8 新行(open)命令 423

18.2.9 文本修改命令 423

18.2.10 退出Vi編輯器 426

18.3 Linux的C編譯器——GCC 426

18.3.1 GCC的編譯過程 427

18.3.2 GCC的基本用法和常用選項 427

18.3.3 使用GDB調試C程式 429

18.3.4 編寫Makefile檔案 434

18.4 Linux下的PHP編程 438

18.4.1 PHP簡介 439

18.4.2 配置運行環境 439

18.4.3 一個簡單的PHP例子 441

18.5 本章小結 442

18.6 習題 442

第19章 Linux下的C編程 443

19.1 C語言概述 443

19.1.1 發展歷史與特點 443

19.1.2 程式的基本結構 444

19.1.3 基本組成元素 444

19.1.4 語句 447

19.1.5 數組 451

19.1.6 指針 452

19.1.7 結構體 453

19.1.8 函式 455

19.2 基本套用 456

19.2.1 字元串操作 456

19.2.2 數據轉換 459

19.2.3 記憶體分配與釋放 461

19.3 檔案操作 462

19.3.1 創建/打開檔案 462

19.3.2 關閉檔案 463

19.3.3 讀寫檔案 463

19.4 進程操作 465

19.4.1 進程的概念 465

19.4.2 進程的創建 466

19.4.3 進程的終止 467

19.4.4 進程信息的獲取 469

19.5 本章小結 470

19.6 習題 471

第20章 Linux下的網路編程 472

20.1 套接字編程概述 472

20.2 套接字數據結構 474

20.2.1 套接字地址結構 474

20.2.2 通用套接字地址結構 475

20.2.3 主機名結構 476

20.2.4 服務名結構 476

20.3 套接字函式 477

20.3.1 創建套接字 477

20.3.2 綁定套接字 478

20.3.3 監聽網路連線埠 478

20.3.4 接受連線請求 479

20.3.5 建立連線 479

20.3.6 面向連線的數據傳輸 479

20.3.7 無連線的數據傳輸 480

20.3.8 關閉套接字 481

20.3.9 套用實例 481

20.4 伺服器模型 487

20.4.1 循環伺服器 487

20.4.2 並發伺服器 488

20.5 域名系統 490

20.5.1 通過域名獲取主機信息 490

20.5.2 通過地址獲取主機信息 491

20.5.3 獲取本地主機信息 491

20.6 本章小結 492

20.7 習題 493

相關詞條

熱門詞條

聯絡我們