标题：Linux系统与网络管理教程(第2版)
图书信息
书名：Linux系统与网络管理教程（第2版）  　　作者：阎映炳  刘雪洁  等编著
ISBN：978-7-121-12192-0
出版日期：2010年12月 
定价：65.00元（含DVD光盘1张）
宣传语
本书第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