宣傳語
本書第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