
1991年10月5日,Linus Torvalds在新闻组(毕竟,那个年代的新闻组还不像现在这样充满了广告信息)comp.os.minix上张贴了如下消息:
“您是否期待着在minix-1.1中编写自己的设备驱动程序?您是否在毫无计划地尝试让操作系统可以按照自己的需求更改?这一切在minix上是否让您感到灰心?难以让一个极好的程序通宵持续运行?这个公告就适合您:-)”
Linus坚持向世界介绍其最初的Linux,令他始料未及的是,他所发行的Linux会成为世界上最受欢迎的操作系统之一,仅次于Microsoft Windows。14年来,围绕Linux形成了整个产业。可能我们中的某些人就在使用Linux及其变种。
提示:
要查看Linus Torvalds最初张贴的全部内容,可以在Google中搜索关键字“Linus’ first post about Linux”,搜索结果中的第一个链接即为Google组的地址。如果要了解更多Linux的历史,也可以访问网站http://en.wikipedia.org/wiki/Linux_kernel。
以前使用的Linux和现在所使用的Linux不太一样。当作者在1994年第一次安装Slackware时,获得基本可用的外设就是一个很大的挑战。举例来说,Linux的GUI环境就需要数小时的等待,这个过程会造成显示器发出“咔哒”的响声,如果真的发生这种情况,可能就需要重新购买一个显示器了。同样,从Internet上下载的软件可能需要管理员调试源代码问题之后才能正常工作。Linux可能已经成为了一个可靠的系统,但是它并不适合心脏衰弱的人。
与此形成鲜明对比的是,如今大多数的Linux发行版实际上只需要安装和配置,用户可能使用的所有外围设备几乎都可以在Linux下正常工作。现在,可能只有在其他UNIX平台上获取一些软件还算是有点挑战性的工作,因为大多数的新软件都是基于Linux编写的,在其他UNIX平台上需要一点点改变(如果您还是一个Irix或者HPUX的系统管理员的话,祝您成功!)。
这种改革引起了整个业界的支持,包括基础架构的选择以及企业级的软件。毕竟,像Oracle这样在支持其他操作系统之前首先支持Linux平台其软件的新版本,是需要很大的勇气的。
本书最初编写于1999~2000年,随着时代的变化进行了几次重大的改版。第四版中展示了当前Linux的更新状态、管理员可用的选择以及企业级服务器的市场占有情况。在当前Internet为中心的市场中,从安全到性能的任何细节都成为要满足的基本需求。
本书并不是评述其他操作系统的选择是如何愚蠢的。与其他任何的技术一样,Linux只是一个工具而已。本书的目的是为读者提供一些有关Linux服务器运行的信息武装自己,这样就可以为特定的解决方案做出最佳决定,而并不只是痴迷于某个操作系统。
本书适宜的读者
本书的书名中包含了“基础教程”这样的字眼,也就是说,本书适合于初学者阅读。首先本书中假定读者已经对Windows中的power user级别或更高级的用户比较熟悉;其次,读者应该对小型、中型的Windows网络运行的相关术语比较熟悉。任何大型网络的管理经验或者高级的Windows技术(例如活动目录)都有助于本书的学习,但都不是必需的。
做出以上假定的原因是,作者不希望本书成为一本傻瓜指南。市面上已经有很多这样的书籍了,这类书只讲述怎么做而不讲解其原因,本书可不是这样的。此外,作者也不想花时间描述Windows下power user的一些常识问题,因为大多数的读者对此已经很有经验,没有必要在此重复这些问题。
除了假定读者具有Windows应用背景,本书还假定大家对更多信息也很感兴趣。毕竟,本书中对每个话题的描述只有大约几十页的内容,但实际每个话题都有专门的整本书来研究。基于此,在本书的各章中列举了对其他参考书目的引用,建议大家阅读那些推荐的书目或者网站内容。不管读者的技术有多好,每一次的学习都会带来新的收获!
本书结构
本书分为五个部分:
第一部分:安装Linux操作系统作为服务器软件
第一部分包括3章内容(第1章“Linux发行版本和Windows 2003的技术摘要”、第2章“按服务器配置安装Linux”、第3章“安装软件”),向读者介绍了什么是Linux,Linux和Windows在一些关键方面的对比,Fedora Core的安装,以及如何安装源代码和预打包的软件。基本上,这些知识的学习就可以将读者从现有的Windows环境下吸引到Linux平台,并且有助于之后对Linux工作原理的学习。
第二部分:单主机系统的管理
第二部分涵盖了管理一个没有网络连接的独立系统所必要的信息,这些内容最初可能没什么用处,但实际上是其他很多概念构建的基础,它们对于其他概念的理解、甚至是连接到网络的系统也是很有必要的。
这部分共包括7章内容。第4章“用户管理”包括了添加用户、删除用户以及用户管理其他方面的必要信息,并引入了多用户操作的基本概念,介绍了用户如何安全地使用应用程序。在第5章“命令行”中,介绍了在Linux命令行下工作时的一些基本操作,通过这一章的学习,读者将会适应没有图形界面的Linux,虽然图形界面现在是默认提供的。虽然可以通过图形界面管理一个系统,但是最好还是同时熟悉命令行和图形化管理界面两种管理界面(这一点也同样适用于Windows。读者可以打开命令提示符,运行netsh,然后试着在图形界面中做相同的工作)。
习惯了命令行之后,就可以开始第6章“开机和关机”的学习。这一章详细介绍了Linux启动和关闭的过程,其中包括在开机和关机过程中服务的启动和关闭。通过本章的学习,读者应该具备向Linux系统中添加新服务的能力。
第7章“文件系统”主要介绍基本的文件系统的组织、创建及其管理(最重要的)。在第8章“核心系统服务”中介绍了一些基本工具的使用,例如使用xinetd来安排应用程序在指定的时间运行。Linux中的xinetd与Windows下的sychost、syslog类似,它们负责统一框架下的应用程序的日志记录,也可以将syslog认为是事件查看器的更灵活的版本。
第9章“编译Linux内核”和第10章“proc文件系统”是这一部分的结束,这里涵盖了Linux内核的概念以及如何使用proc文件系统调整内核的技巧。第9章讲述了在Linux下编译、安装自定义内核的过程,这一章的学习可以使管理员更加细致地控制其系统操作。在第10章中通过proc文件系统对内核级别配置和变量的查看,可以使管理员更容易、更好地调整Linux内核操作,而不像操作Windows的regedit(注册表编辑器)那样复杂。
第三部分:安全和网络
本书的前一版中,在书的最后有关于安全和网络的内容介绍,而这本书中将其作为一个独立的部分。原因在于:随着时间的推移,大多数的系统管理员现在都需要掌握高级的网络概念,这是最近几年一个显著的改变。
随着对Internet安全的日益重视,按照美国Sarbanes Oxley法案和HIPAA法案的规定,Linux在安全环境中的使用也被人们所重视。因此,本书在介绍基于网络的服务之前,首先引入网络安全这一主题。
这一部分的内容从第11章“TCP/IP网络管理”开始,本章提供了系统管理员需要了解的TCP/IP相关的详细内容,还提供了一些故障排除工具的使用示例,例如使用tcpdump来捕获报文并阅读其内容、TCP连接的原理分析等等。这些工具可以帮助系统管理员进行有效的网络故障排除。
第12章“网络配置”又回到管理话题中,这一章介绍网络的基本配置,包括设置IP地址、路由条目,设置还包括多个IP地址的设置。在第13章“配置Linux防火墙”中,介绍了更高级的网络概念以及如何构建一个基于Linux的防火墙。
在第14章“本地安全”和第15章“网络安全”中,详细讨论了系统和网络安全问题,其中包括了Linux特有的安全问题及通常的解决方法以及更好地配置系统以防止其遭受攻击的技巧。
第四部分:Internet服务
本书剩余的内容明显分为两部分:Internet服务和Intranet服务。这里将那些直接暴露在Internet上的服务定义为Internet服务,如Web服务和DNS服务。
第四部分的内容从第16章“DNS”开始,本章讲述了如何安装、配置、管理DNS服务器,并介绍了DNS的工作原理以及一些常用的DNS故障排除的技巧和工具。第17章“FTP”中主要介绍FTP服务器的相关问题,与第16章一样,这里也介绍了一些FTP协议本身的背景信息及其发展演变中的一些备忘。
第18章“使用Apache安装Web服务器”将介绍当今Linux最流行的应用之一:运行Apache服务器软件来担任Web服务器的角色。在这一章中介绍了Apache Web服务器的安装、配置、管理,以及虚拟主机的安装与配置。
在第19章“SMTP”和第20章“POP和IMAP”中,通过SMTP、POP以及IMAP服务器的安装和配置进入E-mail的讲解,这部分中涵盖了这3种服务器的所有配置、它们之间的交互、分别通过命令行和telnet进行的测试以及它们在异构环境中的使用。这本书与其他Linux书籍的不同之处在于:这里并没有讲解传统的sendmail服务器,而是使用Postfix SMTP服务器作为例子,这是因为后者提供了一种具有更安全记录的更灵活的服务器配置。
这一部分以第21章“安全Shell(SSH)”作为结束,对于任何服务器来讲,配置管理SSH服务都是必需的,而不管它们是否具备邮件功能。
第五部分:Intranet服务
通常将那些在防火墙之后运行的、只有内部用户可以访问的服务定义为Intranet服务。这种情况下的Linux服务很多,这里将从第22章“网络文件系统”开始,网络文件系统(Network File System,NFS)迄今已有接近20年的历史,经过不断的发展与壮大,它已经能很好地满足用户的需求。在这一章中,介绍了Linux的NFS服务器的功能,包括如何安装、配置客户端和服务器端以及其故障排除。接下来,在第23章“网络信息服务”开始讨论网络信息服务(Network Information Service,NIS),NIS通常和NFS服务器部署在一起,用来为网络中所有的用户提供名称服务,这里应该重点关注在大量用户的环境中NIS的工作问题。
第24章“Samba”中介绍了使用Samba服务来共享磁盘和其他资源。使用Samba,管理员可以在不安装任何客户端软件的情况下与Windows用户共享磁盘和打印机。因而,Linux服务器可以同时支持运行NFS的UNIX系统和运行Samba的Windows系统。
在第25章“LDAP”中将再次介绍目录服务,本章中将学习如何使用这个标准服务来向用户提供目录服务,它既可以向Windows系统提供邮件目录,也可以向UNIX系统提供邮件目录。
在第26章“打印”中,介绍了Linux的打印子系统。同时使用打印子系统和Samba可以向Windows桌面用户提供无缝的打印支持。因而,可以很好地为Linux、Windows、甚至MAC OS X用户在一台服务器上提供集中的打印。
第27章“DHCP”涵盖了Linux系统的又一个常见用途:DHCP服务器。在这一章中讲述了如何部署ISC DHCP服务器的步骤。ISC DHCP服务器提供了很多传统的DHCP服务器所没有的特性和访问控制。
这一部分以第28章“备份”结束,本部分是最重要的管理任务之一。Linux通过使用磁带提供了两种常见的备份方式,这一章中对这两种方式分别进行了介绍,另外还讲述了它们在备份计划任务中的使用。此外,本章还讨论了一般备份的设计以及对备份系统的优化。
附加资源
虽然我们希望这本书的出版中没有任何错误,但这是不可能的。本书的勘误表张贴在http://www.planetoid.org/linux,如果发现了本书中错误,欢迎读者提交勘误更新。
我们同样欢迎读者的反馈和注解。不过由于工作关系,我们无法对于每条反馈都逐一答复,因此,如果查找特定问题的帮助,选择在线的Linux论坛会更合适(最好从http://www.linux.org/.开始)。如果对本书有什么建议的话,欢迎与我们联系,联系E-mail为:linuxadmin@planetoid.org。
第Ⅰ部分 安装Linux操作系统作为服务器软件
第1章 Linux发行版本和 Windows
2003的技术摘要 3
1.1 了解Linux操作系统 4
1.2 自由软件和GNU 5
1.2.1 GNU公共许可证 6
1.2.2 自由软件的优势 6
1.3 理解Windows和Linux的
差异 7
1.3.1 单用户、多用户和网络用户 7
1.3.2 单内核和微内核 8
1.3.3 GUI与内核相对独立 9
1.3.4 网络邻居 9
1.3.5 注册表文件和文本文件 10
1.3.6 域和活动 11
1.4 其他参考书目 12
第2章 按服务器配置安装Linux 13
2.1 硬件和环境的考虑 14
2.2 服务器主机的规划 14
2.3 双启动问题 16
2.4 安装方法 16
2.5 安装Fedora Core Linux 17
2.5.1 安装前的准备 17
2.5.2 执行安装 18
2.5.3 初始化系统配置 32
2.6 本章小结 35
第3章 安装软件 37
3.1 软件包管理工具 38
3.1.1 使用RPM查询 40
3.1.2 使用RPM安装软件包 43
3.1.3 使用RPM卸载软件 45
3.1.4 RPM的其他功能 46
3.1.5 GUI RPM包管理器 48
3.2 GNU软件的编译和安装 50
3.2.1 获取软件包并解压缩 50
3.2.2 查找软件包中的文档 52
3.2.3 配置软件包 52
3.2.4 编译软件包 53
3.2.5 安装软件包 54
3.2.6 测试软件包 54
3.2.7 软件安装之后的清理工作 55
3.3 从源代码构建软件时的常见
问题 55
3.3.1 库文件问题 55
3.3.2 没有配置脚本的情况 56
3.3.3 源代码问题 56
3.4 本章小结 56
第Ⅱ部分 单主机系统的管理
第4章 用户管理 59
4.1 用户的确切定义 60
4.1.1 用户信息的保存位置 60
4.1.2 /etc/passwd文件 61
4.1.3 /etc/shadow文件 64
4.1.4 /etc/group文件 65
4.2 用户管理工具 65
4.2.1 命令行下的用户管理 66
4.2.2 GUI下的用户管理 69
4.3 用户和访问许可 70
4.4 可植入认证模块 71
4.4.1 PAM的工作原理 71
4.4.2 PAM的文件及其所保存
的位置 72
4.4.3 PAM的配置 72
4.4.4 PAM的调试 76
4.5 重要的漫游 76
4.5.1 使用useradd命令创建用户 76
4.5.2 使用groupadd命令创建组 77
4.5.3 使用usermod命令改变用户
的属性 78
4.5.4 使用groupmod命令改变组
的属性 79
4.5.5 使用groupdel和userdel命令
删除组和用户 79
4.6 本章小结 79
第5章 命令行 81
5.1 bash入门 82
5.1.1 作业管理 83
5.1.2 环境变量 84
5.1.3 管道 85
5.1.4 重定向 86
5.2 命令行快捷键 86
5.2.1 文件的扩展名 86
5.2.2 环境变量作为参数 87
5.2.3 多条命令的联合使用 87
5.2.4 反单引号 87
5.3 文档工具 88
5.3.1 man命令 88
5.3.2 texinfo系统 90
5.4 文件列表、所有权和访问
权限 90
5.4.1 文件清单命令ls 90
5.4.2 文件和子类型 91
5.4.3 块设备 92
5.4.4 字符设备 92
5.4.5 命名管道 92
5.4.6 改变文件的所有权
命令chown 93
5.4.7 改变用户组命令chgrp 93
5.4.8 改变文件属性命令chmod 93
5.5 文件管理和操作 95
5.5.1 复制文件命令cp 96
5.5.2 移动文件命令mv 96
5.5.3 链接文件命令ln 97
5.5.4 查找文件命令find 97
5.5.5 文件压缩命令gzip 98
5.5.6 bzip2 98
5.5.7 建立子命令mkdir 98
5.5.8 删除子命令rmdir 99
5.5.9 显示当前工作子
命令pwd 99
5.5.10 磁带文件归档命令tar 99
5.5.11 合并文件命令cat 101
5.5.12 分屏显示文件命令more 102
5.5.13 磁盘操作工具du 102
5.5.14 查找文件所在
命令which 102
5.5.15 查找程序保存位置
命令whereis 103
5.5.16 释放磁盘空间命令df 103
5.5.17 同步磁盘命令sync 103
5.6 移动用户及其主 104
5.6.1 列出进程清单命令ps 106
5.6.2 交互式列出进程清单
命令top 108
5.6.3 向进程发送信号命令kill 109
5.7 其他工具 110
5.7.1 显示系统名称命令uname 110
5.7.2 查看用户命令who 111
5.7.3 who命令的变化版本w
命令 111
5.7.4 切换用户命令su 111
5.8 编辑器程序 112
5.8.1 vi编辑器 112
5.8.2 emacs编辑器 113
5.8.3 joe编辑器 113
5.8.4 pico编辑器 114
5.9 标准 114
5.10 本章小结 115
第6章 开机和关机 117
6.1 引导加载器 118
6.1.1 GRUB 118
6.1.2 LILO 126
6.1.3 引导电路 127
6.2 init进程 127
6.3 rc脚本 128
6.3.1 概述 128
6.3.2 编写自己的rc命令脚本
程序 129
6.4 启用/禁用服务 133
6.5 启动和关机的问题 136
6.5.1 fsck工具 136
6.5.2 启动到单用户(恢复)模式 136
6.6 本章小结 137
第7章 文件系统 139
7.1 文件系统的构成 140
7.1.1 i结点 140
7.1.2 超级块 140
7.1.3 ext3和ReiserFS文件系统 141
7.1.4 文件系统的选择 142
7.2 管理文件系统 142
7.2.1 挂载和卸载本地磁盘 143
7.2.2 使用mount命令 143
7.2.3 卸载文件系统 144
7.2.4 /etc/fstab文件 145
7.2.5 使用fsck程序 147
7.3 添加一块新磁盘 149
7.3.1 分区概览 149
7.3.2 磁盘和分区的命名习惯 149
7.4 卷管理 150
7.4.1 创建分区 152
7.4.2 创建物理卷 154
7.4.3 将物理卷分配给卷组 155
7.4.4 创建逻辑卷 156
7.5 创建文件系统 158
7.6 本章小结 160
第8章 核心级系统服务 161
8.1 init服务 162
8.1.1 /etc/inittab文件 162
8.1.2 telinit命令 164
8.2 xinetd和inetd进程 164
8.2.1 /etc/xinetd.conf文件 165
8.2.2 变量的含义 166
8.2.3 简单的服务条目示例 168
8.2.4 启用/禁用echo服务 169
8.3 syslogd守护进程 170
8.3.1 调用syslogd 171
8.3.2 /etc/syslog.conf文件 171
8.3.3 日志消息分类 171
8.3.4 /etc/syslog.conf文件的格式 173
8.3.5 /etc/syslog.conf文件示例 174
8.4 cron程序 175
8.4.1 crontab文件 175
8.4.2 编辑crontab文件 176
8.5 本章小结 177
第9章 编译Linux内核 179
9.1 内核的概念 180
9.2 获取内核源代码 181
9.2.1 选择正确的内核版本 182
9.2.2 解压缩内核源代码 182
9.3 构建内核 183
9.3.1 配置内核前的准备 184
9.3.2 配置内核 184
9.3.3 编译内核 188
9.4 安装内核 189
9.5 引导内核 190
9.6 新内核不正常的解决办法 191
9.7 给内核打补丁 191
9.7.1 下载并应用补丁文件 192
9.7.2 补丁正常 193
9.7.3 补丁异常 193
9.8 本章小结 194
第10章 proc文件系统 195
10.1 /proc中的内容 196
10.2 调整/proc下的文件 197
10.3 一些有用的/proc条目 197
10.4 /proc条目列举 199
10.5 通过/proc实现的常见报告和
设置 199
10.5.1 SYN泛洪保护 200
10.5.2 大容量服务器上的问题 201
10.5.3 调试硬件冲突 201
10.6 SysFS 201
10.7 本章小结 203
第Ⅲ部分 安全和网络
第11章 TCP/IP网络管理 207
11.1 分层 208
11.1.1 报文 208
11.1.2 TCP/IP和OSI模型 211
11.2 报头 214
12.2.1 以太网 214
12.2.2 IP 215
11.2.3 TCP 218
11.2.4 UDP 220
11.3 TCP连接的完整过程 221
11.3.1 建立连接 221
11.3.2 传输数据 223
11.3.3 关闭连接 223
11.4 ARP的工作原理 224
11.5 IP网络集成 226
11.5.1 主机和网络 226
11.5.2 子网划分 227
11.5.3 子网掩码 227
11.5.4 静态路由 229
11.5.5 使用RIP的动态路由 230
11.6 深入tcpdump 235
11.6.1 通常应该注意的问题 235
11.6.2 使用tcpdump来监视
traceroute 237
11.6.3 DNS慢的原因 238
11.6.4 其他的图表 240
11.7 本章小结 243
第12章 网络配置 245
12.1 模块和网络接口 246
12.2 使用ifconfig配置IP地址 247
12.2.1 简单用法 248
12.2.2 在系统引导时设置网卡 249
12.2.3 其他参数 250
12.3 使用路由 251
12.3.1 简单用法 251
12.3.2 显示路由 252
12.4 简单的Linux路由器 253
12.5 Linux对IP地址的选择 256
12.6 小结 257
第13章 配置Linux防火墙 259
13.1 Netfilter的工作原理 260
13.1.1 NAT入门 261
13.1.2 NAT友好协议 263
13.1.3 链(chain) 264
13.2 Netfilter的安装 266
13.2.1 在内核中启用Netfilter 267
13.2.2 编译IP Tables 268
13.3 Netfilter的配置 269
13.3.1 保存Netfilter配置 270
13.3.2 iptables命令 271
13.4 解决方案说明 277
13.4.1 Rusty的三行NAT 278
13.4.2 配置一个简单的防火墙 278
13.5 小结 280
第14章 本地安全 281
14.1 公共风险来源 282
14.1.1 SetUID程序 283
14.1.2 不必要的进程 284
14.1.3 以root身份运行的程序 286
14.1.4 用户访问许可 286
14.2 降低风险 288
14.2.1 使用chroot 289
14.2.2 SELinux 291
14.3 系统监视 291
14.3.1 日志记录 292
14.3.2 使用ps和netstat命令 292
14.3.3 使用df命令 292
14.3.4 邮件列表 292
14.4 本章小节 293
第15章 网络安全 295
15.1 TCP/IP和网络安全 296
15.2 服务追踪 297
15.2.1 netstat命令的使用 297
15.2.2 netstat的输出中的安全
暗示 298
15.2.3 停止服务 299
15.3 系统监视 301
15.3.1 充分利用syslog 301
15.3.2 使用MRTG监视带宽 302
15.4 攻击的应对 302
15.4.1 什么也不要相信 303
15.4.2 改变系统口令 303
15.4.3 停止网络流量 303
15.5 网络安全工具 303
15.5.1 nmap 304
15.5.2 Snort 304
15.5.3 Nessus 304
15.5.4 Ethereal / tcpdump 304
15.6 本章小结 305
第Ⅳ部分 Internet 服 务
第16章 DNS 309
16.1 hosts文件 310
16.2 DNS的工作原理 311
16.2.1 域名和主机名的命名
习惯 311
16.2.2 子域 313
16.2.3 in-addr.arpa域 314
16.2.4 服务器的类型 315
16.3 DNS服务器的安装 316
16.3.1 理解BIND配置文件 318
16.3.2 细节 318
16.4 配置DNS服务器 321
16.4.1 在named.conf文件中定义
一个主要区域 321
16.4.2 在named.conf文件中定义
一个辅助区域 322
16.4.3 在named.conf文件中定义
一个缓存区域 323
16.4.4 DNS记录的类型 323
16.5 安装BIND数据库文件 327
16.6 DNS工具箱 332
16.6.1 host 332
16.6.2 dig 333
16.6.3 nslookup 335
16.6.4 whois 336
16.6.5 nsupdate 337
16.6.6 rndc工具 337
16.7 配置DNS客户端 338
16.7.1 解析器 338
16.7.2 /etc/resolv.conf文件 339
16.7.3 /etc/nsswitch.conf文件 339
16.7.4 配置客户端 340
16.8 本章小结 341
第17章 FTP 343
17.1 FTP的技术细节 344
17.1.1 客户端/服务器交互 344
17.1.2 获取并安装vsftpd 345
17.1.3 配置vsftpd 346
17.1.4 定制FTP服务器 351
17.2 本章小结 356
第18章 使用Apache安装Web
服务器 357
18.1 理解HTTP协议 358
18.1.1 协议头 358
18.1.2 端口号 359
18.1.3 进程的所有者和安全性 359
18.2 Apache HTTP服务器的
安装 360
18.3 Apache的启动和停止 362
18.4 安装的测试 363
18.5 Apache的配置 364
18.5.1 创建一个简单的根页面 364
18.5.2 Apache配置文件 365
18.5.3 一般配置选项 365
18.6 Apache的故障排除 369
18.7 本章小结 370
第19章 SMTP 371
19.1 理解SMTP 372
19.1.1 SMTP的根本的细节 372
19.1.2 安全性 374
19.2 安装Postfix邮件服务器 374
19.2.1 使用RPM安装Postfix 374
19.2.2 从源代码安装Postfix 375
19.3 配置Postfix服务器 377
19.3.1 main.cf文件 377
19.3.2 检查配置 379
19.4 运行邮件服务器 379
19.4.1 检查邮件队列 380
19.4.2 刷新邮件队列 380
19.4.3 newaliases命令 380
19.4.4 确保一切正常 380
19.5 本章小结 381
第20章 POP和IMAP 383
20.1 POP和IMAP协议的原理 385
20.1.1 检查POP服务器 386
20.1.2 检查IMAP服务器 386
20.2 UM-IMAP和POP3服务器
的安装 387
20.3 邮件服务中的其他问题 390
20.3.1 SSL安全性 390
20.3.2 可用性 391
20.3.3 日志文件 391
20.4 本章小结 392
第21章 安全Shell(SSH) 393
21.1 公钥加密系统的理解 394
21.1.1 关键特征 396
21.1.2 加密技术参考书目 396
21.2 理解SSH的版本与发行 397
21.2.1 OpenSSH和OpenBSD 397
21.2.2 SSH客户端可选择
的供应商 398
21.2.3 不可靠的连接 398
21.3 SSH源代码的下载、编译
和安装 399
21.4 使用RPM安装OpenSSH 400
21.4.1 服务的启动与关闭 401
21.4.2 sshd的配置文件 402
21.5 使用OpenSSH 402
21.6 创建一个安全隧道 403
21.6.1 安全拷贝scp 406
21.6.2 安全FTP(sftp) 406
21.6.3 SSH使用的文件 407
21.7 本章小结 407
第Ⅴ部分 Intranet 服 务
第22章 网络文件系统 411
22.1 NFS的技术细节 412
22.1.1 NFS的版本 412
22.1.2 NFS的安全方面的考虑 413
22.1.3 挂载并访问一个分区 414
22.1.4 启用NFS 414
22.1.5 NFS的组件 415
22.1.6 NFS的内核支持 416
22.2 NFS服务器的配置 417
22.2.1 配置文件/etc/exports 417
22.2.2 向NFS服务器进程通知
/etc/exports文件的变化 418
22.2.3 showmount命令 419
22.2.4 服务器端NFS问题
疑难解答 420
22.3 NFS客户端的配置 420
22.3.1 mount命令 421
22.3.2 软挂载和硬挂载的对比 422
22.3.3 磁盘的交叉挂载 422
22.3.4 intr选项的重要性 423
22.3.5 性能调整 423
22.4 客户端NFS问题疑难解答 423
22.4.1 无效的文件句柄 423
22.4.2 许可被拒绝 424
22.5 客户端和服务器的NFS
配置 424
22.6 通常的NFS的使用 426
22.7 本章小结 426
第23章 网络信息服务NIS 429
23.1 NIS内幕 430
23.1.1 NIS服务器 431
23.1.2 NIS域 431
23.2 配置主NIS服务器 432
23.2.1 创建域名 432
23.2.2 启动NIS 433
23.2.3 编辑Makefile 434
23.2.4 使用ypinit 437
23.3 配置NIS客户端 439
23.3.1 编辑/etc/yp.conf文件 439
23.3.2 ypbind的启用与启动 440
23.3.3 编辑/etc/nsswitch.conf
文件 440
23.3.4 NIS的使用 443
23.3.5 NIS客户端配置的测试 444
23.4 配置辅助NIS服务器 444
23.4.1 设置域名 444
23.4.2 设置NIS主服务器向辅助
服务器发送更新 444
23.4.3 运行ypinit 445
23.5 NIS工具 446
23.6 在配置文件中使用NIS 446
23.7 在真实的网络中实现NIS 447
23.7.1 小型网络 447
23.7.2 分段的网络 448
23.7.3 超过园区网的网络 448
23.8 本章小结 449
第24章 Samba 451
24.1 SMB的机制 452
24.1.1 用户名和口令 452
24.1.2 加密的口令 453
24.1.3 Samba守护进程 453
24.1.4 安装Samba 454
24.1.5 使用源代码编译、
安装Samba 454
24.2 Samba的管理 456
24.3 SWAT的使用 457
24.3.1 安装SWAT 457
24.3.2 SWAT菜单 459
24.3.3 创建共享 460
24.4 smbclient的使用 462
24.4.1 浏览服务器 462
24.4.2 远程文件访问 463
24.5 挂载远程Samba共享 464
24.6 创建Samba用户 464
24.6.1 允许空口令 465
24.6.2 使用smbpasswd
更改口令 465
24.7 使用Samba认证Windows
服务器 465
24.8 Samba故障排除 467
24.9 本章小结 468
第25章 LDAP 469
25.1 LDAP概述 470
25.1.1 LDAP 470
25.1.2 客户端/服务器模型 471
25.1.3 LDAP的使用 471
25.1.4 LDAP术语 472
25.2 OpenLDAP 472
25.2.1 服务器端进程 472
25.2.2 OpenLDAP工具 473
25.2.3 安装OpenLDAP 473
25.2.4 配置slapd 475
25.2.5 slapd的启动与停止 477
25.3 配置OpenLDAP客户端 478
25.3.1 创建项 478
25.3.2 搜索、查询以及修改 480
25.3.3 使用OpenLDAP进行用户
认证 481
25.4 本章小结 484
第26章 打印 485
26.1 打印术语 486
26.2 CUPS系统 486
26.2.1 运行CUPS 487
26.2.2 安装CUPS 487
26.2.3 配置CUPS 488
26.3 添加打印机 489
26.3.1 本地打印机和远程
打印机 489
26.3.2 使用Web接口 490
26.3.3 使用命令行工具添加
打印机 492
26.4 CUPS日常管理 493
26.4.1 设置默认打印机 493
26.4.2 打印机启用与禁用 493
26.4.3 打印作业的接受与拒绝 494
26.4.4 打印权限的管理 494
26.4.5 删除打印机 495
26.4.6 通过Web接口管理
打印机 495
26.5 客户端打印工具的使用 496
26.5.1 lpr 496
26.5.2 lpq 496
26.5.3 lprm 497
26.6 本章小结 498
第27章 DHCP 499
27.1 DHCP协议的基本原理 500
27.2 DHCP服务器 500
27.2.1 使用RPM安装DHCP
软件 501
27.2.2 配置DHCP服务器 501
27.2.3 参数 503
27.2.4 选项 506
27.3 dhcpd.conf文件示例 506
27.4 一般运行行为 507
27.5 DHCP客户端守护进程 507
27.6 本章小结 509
第28章 备份 511
28.1 备份需求评估 512
28.1.1 备份的数据量 512
28.1.2 备份媒体的类型 512
28.1.3 磁带性能考虑 513
28.1.4 网络的吞吐量 514
28.1.5 数据恢复时间 514
28.1.6 磁带管理类型 514
28.2 磁带设备管理 515
28.2.1 使用mknod和scsidev
创建设备文件 516
28.2.2 使用mt操作磁带设备 516
28.3 命令行工具 517
28.3.1 dump和restore 517
28.3.2 使用dump 518
28.3.3 使用restore 520
28.4 本章小结 521