內容簡介

本書以目前國際上使用最為流行、功能最為完善和成熟的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.2Linux的發展歷史 2
1.3Linux的優勢 3
1.4Linux的套用領域 4
1.5Linux的安裝 4
1.5.1硬體需求 5
1.5.2安裝方式 5
1.5.3安裝過程 6
1.6Linux的啟動過程 14
1.7圖形界面登錄和退出Linux 14
1.8字元界面登錄和退出Linux 15
1.9本章小結 16
1.10習題 16
第2章檔案和磁碟管理 17
2.1Linux檔案系統入門 17
2.1.1Linux常用檔案系統介紹 17
2.1.2Linux檔案介紹 18
2.1.3Linux目錄介紹 19
2.1.4Linux目錄結構 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.1GNOME桌面系統 50
3.1.2KDE桌面系統 52
3.1.3設定檔案瀏覽界面 53
3.1.4首選項 56
3.2安裝軟體 59
3.2.1基於原始碼的軟體安裝 59
3.2.2基於執行檔的軟體安裝 62
3.2.3RPM執行檔的軟體安裝 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.1RPM包管理 96
5.1.1RPM軟體包的查詢 96
5.1.2RPM軟體包的安裝 98
5.1.3RPM軟體包安裝可能出現的問題 99
5.1.4RPM軟體包的卸載 100
5.1.5RPM軟體包的升級 100
5.1.6RPM軟體包的驗證 101
5.1.7添加/刪除應用程式 102
5.2RPM軟體包的密鑰管理 104
5.2.1下載與安裝PGP 104
5.2.2RPM使用PGP產生簽名所需的配置 105
5.2.3配置RPM宏 106
5.2.4RPM的PGP簽名選項 106
5.2.5 添加數字簽名 106
5.3TAR包管理 106
5.3.1TAR命令語法及參數選項 106
5.3.2創建tar檔案 108
5.3.3顯示tar檔案內容 109
5.3.4向tar檔案中添加一個檔案 109
5.3.5從tar檔案中取出檔案 110
5.4Linux下常用的壓縮工具 111
5.4.1gzip壓縮工具 111
5.4.2zip/unzip命令 113
5.4.3bzip2/bunzip2命令 118
5.5本章小結 120
5.6習題 120
第6章GRUB引導器 121
6.1GRUB概述 121
6.2GRUB的特點 121
6.3GRUB運行原理 122
6.4使用GRUB 122
6.4.1GRUB的選擇安裝 122
6.4.2GRUB的設備名稱 123
6.4.3GRUB的檔案名稱稱 124
6.4.4GRUB的基本接口 124
6.4.5GRUB的基本命令 126
6.4.6GRUB配置檔案介紹 127
6.5GRUB的套用舉例 128
6.6本章小結 130
6.7習題 131
第7章Linux中的進程管理 132
7.1Linux進程概述 132
7.2Linux進程原理 132
7.2.1Linux進程的狀態 132
7.2.2Linux進程工作模式 133
7.3Linux守護進程介紹 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.6Linux進程管理 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.1Telnet簡介 150
8.1.2Telnet原理 150
8.1.3安裝和啟動Telnet 151
8.1.4配置Telnet 152
8.1.5Telnet會話示例 153
8.2使用SSH 154
8.2.1SSH介紹 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.6SSH的密匙管理 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.1VNC簡介 167
8.3.2安裝和啟動VNC 168
8.3.3配置VNC 168
8.3.4VNC會話示例 170
8.4本章小結 171
8.5習題 171
第9章TCP/IP網路基礎 172
9.1網路簡介 172
9.2網路的體系結構 172
9.3TCP/IP簡介 174
9.3.1IP協定介紹 175
9.3.2TCP協定介紹 178
9.3.3UDP協定介紹 180
9.4使用xinetd啟動Linux網路服務 181
9.5本章小結 184
9.6習題 184
第三篇Linux伺服器配置篇
第10章Samba伺服器配置 186
10.1Samba伺服器簡介及安裝 186
10.1.1Samba工作原理 186
10.1.2Samba伺服器的功能 186
10.1.3SMB協定 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.3Samba伺服器和主瀏覽器 194
10.4smb.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.1global段 201
10.5.2home段 205
10.5.3printers段 205
10.5.4netlogon段 206
10.5.5Profiles段 206
10.5.6public段 206
10.5.7一般共享段 207
10.5.8測試smb.conf檔案 207
10.5.9該配置在Windows系統下的
10.2.1顯示結果 208
10.6smb.conf中的其他選項 209
10.7Linux和Windows檔案互訪 211
10.7.1Windows客戶使用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.1Proxy伺服器原理簡介 216
11.2Squid簡介 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.1Linux核心的相關配置 229
11.6.2Squid的相關配置選項 230
11.6.3iptables的相關配置 231
11.7配置多級快取改善Proxy伺服器的性能 231
11.7.1多級快取(cache)簡介 231
11.7.2配置多級快取 232
11.8Squid日誌管理 233
11.8.1配置檔案中有關日誌的選項 233
11.8.2日誌管理主檔案——accesss.conf 234
11.9使用Webalizer對Squid進行流量分析 236
11.9.1Webalizer的特點 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.1Linux下資料庫系統簡介 242
12.2MySQL資料庫系統簡介 242
12.3MySQL資料庫系統的安裝 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.6MySQL常用操作 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.16MySQL數據導入和備份 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.1Apache簡介 273
13.1.1Apache的誕生 273
13.1.2Apache的特性 274
13.2Apache的獲取和安裝 274
13.2.1Apache獲取及其最新信息 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.1httpd.conf檔案中的全局配置選項 284
13.4.2.htaccess檔案和訪問限制 287
13.4.3httpd.conf檔案中的CGI設定 288
13.4.4httpd.conf檔案中的URL路徑名設定 289
13.4.5httpd.conf檔案中的MIME類型 292
13.5虛擬主機的設定 293
13.5.1基於域名的虛擬主機 293
13.5.2基於IP的虛擬主機 294
13.6日誌記錄 294
13.7SSI設定 295
13.7.1SSI簡介 295
13.7.2啟用SSI 295
13.7.3SSI指令 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.1FTP簡介 313
14.1.1FTP協定介紹 313
14.1.2FTP檔案類型 314
14.1.3FTP檔案結構 315
14.1.4FTP傳輸模式 315
14.1.5FTP常用命令 315
14.1.6FTP典型訊息 316
14.2使用Vsftp伺服器 317
14.2.1Vsftp簡介 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.1NFS簡介 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.2SMTP介紹 349
16.2.1SMTP的模型 349
16.2.2SMTP的基本命令 350
16.2.3電子郵件介紹 352
16.2.4Open 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.3DoS攻擊 381
17.2.4Linux下的病毒 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.2Snort介紹 396
17.4.3安裝Snort 396
17.4.4使用Snort 398
17.4.5配置Snort規則 401
17.4.6編寫Snort規則 403
17.4.7Snort規則套用舉例 404
17.5使用Tripwire保護網路系統的數據安全 406
17.5.1Tripwire簡介 406
17.5.2Tripwire工作原理 406
17.5.3使用Tripwire 408
17.5.4使用Tripwire的技巧 412
17.6本章小結 413
17.7習題 413
第四篇Linux編程篇
第18章Linux下的編程 416
18.1Linux下常用的開發工具 416
18.1.1GCC 416
18.1.2CVS 416
18.1.3Perl 416
18.1.4Linux上的Delphi——Kylix 417
18.2Linux下的Vi文本編輯器 417
18.2.1Vi編輯器介紹 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.3Linux的C編譯器——GCC 426
18.3.1GCC的編譯過程 427
18.3.2GCC的基本用法和常用選項 427
18.3.3使用GDB調試C程式 429
18.3.4編寫Makefile檔案 434
18.4Linux下的PHP編程 438
18.4.1PHP簡介 439
18.4.2配置運行環境 439
18.4.3一個簡單的PHP例子 441
18.5本章小結 442
18.6習題 442
第19章Linux下的C編程 443
19.1C語言概述 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