第一部分 将Linux作为服务器来安装 1
第1章 Linux发行版本与Windows 2000的技术概要 1
1.1 Linux操作系统和Linux发行版本 1
1.2 “自由”软件和GNU许可证 2
1.2.1 什么是GNU公共许可证 2
1.2.2 “自由”软件的优势 3
1.3 Windows 2000与Linux操作系统之间的主要差异 4
1.3.1 单用户、多用户、网络用户情况的比较 4
1.3.2 GUI图形界面与操作系统内核的彼此相对独立 5
1.3.3 网络邻居概念 6
1.3.4 Windows中的注册表文件与文本文件的比较 7
1.3.5 域的概念 8
1.3.6 Active Directory 8
1.4 其他参考资料 9
1.5 小结 9
第2章 按服务器配置安装Linux 10
2.1 安装之前要做的准备工作 10
2.1.1 硬件设备 10
2.1.2 服务器主机的规划 11
2.1.3 双引导系统 12
2.1.4 安装方式 13
2.1.5 安装后可能遇到的问题 13
2.2 安装Red Hat Linux操作系统 14
2.2.1 制作一张引导盘 15
2.2.2 开始安装 15
2.2.3 欢迎使用Red Hat Linux 18
2.2.4 寻找其他的帮助信息 33
2.3 小结 34
第3章 GNOME和KDE桌面环境 35
3.1 X-Windows系统的发展历史 35
3.1.1 X-Windows的不足之处 36
3.1.2 进入GNOME和KDE 36
3.1.3 GNOME和KDE并非完全不兼容意味着什么 37
3.2 关于KDE桌面环境 37
3.2.1 许可证问题 38
3.2.2 启动X-Windows和KDE 38
3.2.3 KDE的基本元素 39
3.2.4 KDE的控制中心 39
3.3 关于GNOME桌面环境 45
3.3.1 启动X-Windows和GNOME 46
3.3.2 GNOME的基本元素 47
3.3.3 GNOME的配置工具 48
3.4 小结 52
第4章 安装软件 53
4.1 Red Hat Package Manager软件包管理器 53
4.1.1 安装新的软件包 54
4.1.2 查询软件包 55
4.1.3 软件包的卸载 56
4.1.4 gnorpm工具 56
4.2 自行编译软件 56
4.2.1 获得并解压缩新的软件包 56
4.2.2 查找软件包中的有关文档 57
4.2.3 配置新软件包 58
4.2.4 编译新软件包 58
4.2.5 安装新软件包 59
4.2.6 安装完成后的清理工作 59
4.3 小结 60
第二部分 单主机系统的管理 61
第5章 用户的管理 61
5.1 关于用户 61
5.1.1 用户登录目录 62
5.1.2 口令 62
5.1.3 外壳档案文件shell 63
5.1.4 启动脚本程序 64
5.1.5 电子邮件 64
5.2 用户数据库 64
5.2.1 /etc/passwd文件 65
5.2.2 /etc/shadow文件 66
5.2.3 /etc/group文件 67
5.3 用户管理工具 67
5.3.1 使用命令行进行用户管理 68
5.3.2 使用LinuxConf进行用户和用户组的管理 71
5.4 SetUID和SetGID程序 75
5.5 在没有文件的所有权时 76
5.6 可插入的身份验证模块 76
5.6.1 PAM是如何运行的 76
5.6.2 下载和安装PAM 77
5.6.3 PAM的文件和它们的目录位置 78
5.6.4 配置PAM 79
5.6.5 对PAM进行调试 82
5.7 小结 82
第6章 命令行操作 84
6.1 BASH简介 84
6.1.1 作业控制 85
6.1.2 环境变量 85
6.1.3 管道 87
6.1.4 重定向 87
6.1.5 BASH命令行的快捷方式 87
6.2 文档工具 89
6.2.1 man命令 89
6.2.2 texinfo系统 90
6.3 文件列表、所有权和访问权限 91
6.3.1 列出文件清单的命令:ls 91
6.3.2 文件和目录类型 91
6.3.3 改变文件所有权的命令:chown 93
6.3.4 改变用户组的命令:chgrp 93
6.3.5 改变文件访问权模式的命令:chmod 93
6.4 文件的管理和操作 94
6.4.1 拷贝文件的命令:cp 95
6.4.2 移动文件的命令:mv 95
6.4.3 链接文件的命令:ln 95
6.4.4 查找文件的命令:find 96
6.4.5 转换并拷贝文件的命令:dd 97
6.4.6 文件压缩的命令:gzip 97
6.4.7 建立特殊文件的命令:mknod 98
6.4.8 建立子目录的命令:mkdir 98
6.4.9 删除子目录的命令:rmdir 98
6.4.10 显示当前工作子目录的命令:pwd 99
6.4.11 磁带文件存档的命令:tar 99
6.4.12 合并文件的命令:cat 100
6.4.13 分屏显示文件的命令:more 101
6.4.14 磁盘操作工具命令:du 101
6.4.15 显示文件保存在哪个目录里的命令:which 101
6.4.16 查找命令的保存位置的命令:whereis 101
6.4.17 释放磁盘空间的命令:df 102
6.4.18 磁盘同步的命令:sync 102
6.5 进程的管理 102
6.5.1 列出进程清单的命令:ps 103
6.5.2 交互列出进程清单的命令:top 105
6.5.3 向某个进程发送信号的命令:kill 106
6.6 其他工具 107
6.6.1 显示系统名的命令:uname 107
6.6.2 查看登录用户的命令:who 107
6.6.3 改变用户身份命令:su 108
6.6.4 网络工具 108
6.7 编辑器 111
6.7.1 vi编辑器 111
6.7.2 emacs编辑器 111
6.7.3 joe编辑器 112
6.7.4 pico编辑器 112
6.8 制定Linux标准 112
6.9 小结 113
第7章 Linux系统的启动引导和关闭 114
7.1 LILO 114
7.2 配置LILO 114
7.2.1 其他的LILO参数 116
7.2.2 添加引导用的新内核 117
7.3 运行LILO 118
7.4 开机引导的步骤 119
7.4.1 rc命令脚本程序 120
7.4.2 编写自己的rc命令脚本程序 121
7.4.3 激活或者停用服务程序 123
7.5 引导和关闭Linux的其他方法 125
7.5.1 fsck 125
7.5.2 系统引导时只看到显示“LI”字样 125
7.5.3 引导进入单用户“恢复”模式 126
7.6 小结 127
第8章 文件系统 128
8.1 文件系统的构成 128
8.1.1 i-结点 128
8.1.2 超级块 129
8.1.3 ext3和RaiserFS 130
8.2 管理文件系统 130
8.2.1 挂装和卸载本地磁盘 131
8.2.2 使用fsck程序 134
8.3 添加硬盘和对硬盘进行分区 136
8.3.1 关于分区的概述 136
8.3.2 硬盘的位置 137
8.3.3 建立硬盘分区 137
8.3.4 建立文件系统 142
8.4 网络文件系统 143
8.4.1 挂装NFS分区 143
8.4.2 使用automounter自动挂装子系统 144
8.5 硬盘空间配额的管理 147
8.5.1 实现硬盘配额管理的准备工作 148
8.5.2 设置配额 149
8.5.3 管理配额 151
8.6 小结 152
第9章 核心级系统服务程序 153
9.1 init服务程序 153
9.1.1 /etc/inittab文件 153
9.1.2 telinit命令 155
9.2 inetd和xinetd进程 155
9.2.1 etc/inetd.conf文件 156
9.2.2 /etc/xinetd.conf文件 158
9.3 syslogd守护进程 160
9.3.1 调用syslogd 161
9.3.2 /etc/syslog.conf文件 161
9.4 cron程序 164
9.5 小结 166
第10章 编译Linux内核 167
10.1 内核到底是什么 168
10.2 获取内核源代码 169
10.2.1 选择正确的版本 169
10.2.2 解包内核源代码 170
10.3 建立内核 171
10.3.1 make xconfig过程 172
10.3.2 内核功能与模块 172
10.3.3 编译内核 178
10.4 安装内核 178
10.5 给内核打补丁 180
10.5.1 下载并解包补丁文件 180
10.5.2 打补丁 181
10.6 小结 182
第11章 提高单个服务器的安全性 183
11.1 TCP/IP与网络安全 184
11.2 追踪服务 185
11.2.1 使用netstat命令 186
11.2.2 netstat命令输出与系统的安全性 187
11.2.3 关闭服务 187
11.3 对系统实施监控 189
11.3.1 充分利用syslog命令 189
11.3.2 使用MRTG监控带宽 190
11.3.3 COPS 190
11.3.4 TripWire 190
11.3.5 SATAN 191
11.4 有用站点和邮件地址表 191
11.4.1 CERT 191
11.4.2 BugTraq 192
11.4.3 Rootshell 192
11.4.4 Security Focus 192
11.5 其他问题 192
11.6 小结 193
第三部分 Internet服务程序 195
第12章 DNS域名服务 195
12.1 DNS的前身:/etc/hosts文件 196
12.2 DNS的组成部分 197
12.2.1 域和主机 197
12.2.2 子域 198
12.2.3 in-addr.arpa域 199
12.2.4 服务器的类型 200
12.3 安装DNS服务器 201
12.4 配置客户机 204
12.5 为DNS服务器的运行做好准备:/named.conf文件 206
12.6 配置服务器 213
12.6.1 修改named.conf文件以配置一个主区域 213
12.6.2 修改named.conf文件以配置一个从区域 214
12.6.3 修改named.conf文件以配置一个缓冲区域 215
12.6.4 DNS记录的类型 216
12.7 将各个部分组装在一起 219
12.8 DNS工具箱 224
12.8.1 kill-HUP 224
12.8.2 host 224
12.8.3 dig 225
12.8.4 whois 225
12.8.5 其他参考资料 228
12.9 小结 228
第13章 FTP 229
13.1 FTP的基本原理 229
13.2 获得最新版本的wu-ftpd软件 230
13.2.1 阅读README文件 231
13.2.2 编译并安装wu-ftpd软件 231
13.3 配置wu-ftpd软件 233
13.3.1 通过/etc/ftpaccess文件控制访问权限 233
13.3.2 系统日志文件 242
13.3.3 即时文件转换 242
13.3.4 配置主机访问权限 244
13.4 各种访问解决方案 244
13.4.1 只允许匿名用户访问 244
13.4.2 混合式访问 248
13.4.3 只允许注册用户访问 248
13.5 配置虚拟FTP服务器 249
13.6 小结 250
第14章 使用Apache设置Web服务器 251
14.1 HTTP协议的基本原理 251
14.1.1 标题 251
14.1.2 非标准端口 252
14.1.3 进程所有者和安全性 253
14.2 安装Apache HTTP服务器 254
14.2.1 编译Apache软件 254
14.2.2 启动和终止Apache软件的运行 256
14.2.3 测试Apache软件 256
14.3 配置Apache软件 257
14.3.1 建立简单的顶级主页 257
14.3.2 Apache软件的配置文件 258
14.3.3 常见的配置修改 258
14.3.4 配置虚拟域 259
14.4 用Apache进行基本的故障诊断 260
14.5 小结 261
第15章 SMTP 262
15.1 SMTP的基本原理 262
15.1.1 SMTP的基本实现过程 262
15.1.2 安全性 264
15.1.3 SMTP和POP的比较 265
15.1.4 推荐阅读的参考书 265
15.2 获得并安装Sendmail软件 266
15.2.1 下载Sendmail软件 267
15.2.2 编译Sendmail软件 267
15.3 为Red Hat 7进行快速配置 268
15.3.1 你的正式域名 269
15.3.2 你冒充谁进行操作 269
15.3.3 不同的文件位置 270
15.4 正确的方法是,通过MC文件配置Sendmail软件 270
15.4.1 配置Sendmail软件需要的M4语言知识 270
15.4.2 Sendmail软件使用的宏命令 272
15.4.3 一个完整的配置示例 280
15.4.4 把宏命令编译到配置文件里 281
15.5 安装Sendmail软件 281
15.6 主配置文件以外的其他配置文件 282
15.6.1 aliases文件 282
15.6.2 垃圾邮件控制 284
15.7 Sendmail实际运行中的问题 285
15.7.1 mailq命令 285
15.7.2 Sendmail在运行吗 285
15.7.3 Sendmail把它的队列和缓冲池保存在什么地方 286
15.7.4 怎样从队列里删除一个项目 286
15.7.5 加速处理邮件队列 287
15.7.6 对电子邮件进行系统记录 288
15.8 小结 288
第16章 POP 290
16.1 POP的基本原理 291
16.1.1 使用telnet阅读邮件 291
16.1.2 POP和其他协议之间的冲突 293
16.2 Qpopper软件 293
16.2.1 安装Qpopper软件 294
16.2.2 编译Qpopper软件 294
16.2.3 设置Qpopper软件 296
16.3 Qpopper软件的高级配置操作 297
16.3.1 服务器工作模式 297
16.3.2 特殊身份验证功能 298
16.3.3 带身份验证加强功能的POP 298
16.3.4 公告板 299
16.3.5 Qpopper软件的命令行参数 300
16.4 小结 300
第17章 SSH 302
17.1 公共密钥密码学 302
17.1.1 密钥特性 304
17.1.2 关于密码技术的参考著作 305
17.2 SSH的版本及其发行版本 305
17.2.1 OpenSSH和OpenBSD 306
17.2.2 SSH客户软件的其他供应商 306
17.2.3 最薄弱的链接 307
17.3 下载、编译和安装SSH软件包 307
17.4 使用SSH 310
17.5 小结 310
第四部分 内部网的服务程序 313
第18章 网络文件系统 313
18.1 NFS的基本原理 313
18.1.1 挂装和访问硬盘分区 313
18.1.2 NFS的安全性 314
18.1.3 NFS的版本 314
18.2 激活NFS 314
18.2.1 NFS的组件 315
18.2.2 NFS的内核支持 315
18.3 配置NFS服务器 316
18.3.1 /etc/exports配置文件 316
18.3.2 将/etc/exports文件中的改动通知NFS服务器进程 317
18.3.3 常见问题 317
18.4 配置NFS客户程序 318
18.5 NFS分区的常见用途 320
18.6 检查并排除NFS故障 321
18.6.1 孤立失效的文件句柄 321
18.6.2 拒绝访问 321
18.6.3 硬、软挂装的比较 321
18.7 小结 322
第19章 网络信息服务 323
19.1 NIS的基本原理 323
19.1.1 NIS服务器 324
19.1.2 “域”的概念 324
19.2 配置主控NIS服务器 325
19.2.1 建立域名 325
19.2.2 启动NIS 326
19.2.3 编辑Makefile文件 326
19.2.4 使用ypinit命令 329
19.3 配置NIS客户机 330
19.3.1 编辑/etc/yp.conf文件 330
19.3.2 设置启动脚本程序 331
19.3.3 编辑/etc/nsswitch.conf文件 331
19.3.4 测试NIS客户机的配置情况 332
19.4 配置附属NIS服务器 332
19.4.1 设置域名 332
19.4.2 设置NIS主控服务器对从属NIS服务器的推送操作 332
19.4.3 执行ypinit命令 333
19.5 NIS软件工具 333
19.6 在配置文件里使用NIS 334
19.7 在一个真实网络环境里实现NIS 335
19.7.1 小型网络 335
19.7.2 分段网络 336
19.7.3 规模大过建筑物的网络 336
19.8 小结 337
第20章 Samba服务 338
20.1 SMB服务的基本原理 338
20.1.1 用户名和口令 338
20.1.2 加密口令 339
20.1.3 守护进程smbd和nmbd之间的区别 339
20.1.4 编译并安装Samba 340
20.1.5 Red Hat 7与RPM的安装 342
20.2 Samba的管理 342
20.3 使用SWAT工具 343
20.3.1 设置SWAT工具 344
20.3.2 SWAT软件的菜单 345
20.3.3 建立共享关系 347
20.4 使用smbclient程序 348
20.4.1 浏览服务器 349
20.4.2 远程访问文件 350
20.4.3 远程访问打印机 350
20.5 使用smbmount命令 351
20.6 对加密口令功能的支持 351
20.6.1 允许使用空口令 352
20.6.2 使用smbpasswd命令更改口令 352
20.7 检查并排除Samba故障 352
20.8 小结 353
第21章 打印服务 354
21.1 lpd守护进程的基础知识 355
21.2 安装LPRng 355
21.2.1 引导时启动LPRng 356
21.2.2 为Red Hat 7调整在线手册页 357
21.2.3 在实际运行的系统上重新启动lpd 357
21.2.4 安装ifhp 357
21.3 配置/etc/printcap文件 358
21.3.1 /etc/printcap示例文件 359
21.3.2 让修改生效 360
21.4 /etc/lpd.perms文件 360
21.4.1 /etc/lpd.perms文件的格式 361
21.4.2 default命令 361
21.4.3 访问权限关键字 361
21.4.4 /etc/lpd.perms文件的举例 362
21.5 lpd的客户程序 363
21.5.1 lpr 363
21.5.2 lpq 363
21.5.3 lprm 364
21.6 小结 364
第22章 动态主机配置协议 365
22.1 DHCP协议的基本原理 365
22.2 DHCP服务器 366
22.2.1 下载、编译和安装DHCP服务器 366
22.2.2 配置DHCP服务器 366
22.2.3 dhcpd.conf文件示例 372
22.2.4 正常运行情况 372
22.3 DHCP客户程序守护进程 372
22.3.1 下载、编译和安装DHCP客户程序 373
22.3.2 配置DHCP客户程序 373
22.4 小结 374
第23章 备份 375
23.1 评估你的备份需求 375
23.2 管理备份设备和文件 377
23.2.1 使用mknod命令建立设备文件 378
23.2.2 使用mt命令操作磁带设备 378
23.3 命令行工具程序 379
23.3.1 dump命令和restore命令 379
23.3.2 tar命令 382
23.4 小结 383
第五部分 高级Linux连网技术 385
第24章 系统管理员使用的TCP/IP 385
24.1 TCP/IP的分层结构 385
24.1.1 数据包 386
24.1.2 TCP/IP的层与OSI模型之间的关系 388
24.2 TCP/IP的各种协议 389
24.2.1 以太网协议 389
24.2.2 IP 389
24.2.3 TCP 390
24.2.4 UDP 391
24.2.5 ICMP 391
24.3 首标 391
24.3.1 以太网首标 391
24.3.2 IP首标 393
24.3.3 TCP首标 397
24.3.4 UDP首标 400
24.4 建立一个完整的TCP连接 401
24.4.1 打开连接 401
24.4.2 传输数据 402
24.4.3 关闭连接 403
24.5 ARP如何运行 404
24.6 将各个IP网络组合在一起 406
24.6.1 主机与网络之间的差别 406
24.6.2 网络掩码 407
24.6.3 静态路由选择 409
24.6.4 使用RIP的动态路由选择方法 411
24.7 小结 415
第25章 网络配置 417
25.1 模块和网络接口卡 417
25.2 ifconfig程序 418
25.2.1 简单用法 418
25.2.2 其他参数 420
25.3 使用路由器 421
25.3.1 简单用法 421
25.3.2 显示路由 422
25.4 小结 424
第26章 Linux的高级网络功能 425
26.1 IP假名技术 426
26.2 数据包过滤 426
26.2.1 数据包过滤的实现 427
26.2.2 ipchains工具软件 430
26.2.3 iptables工具软件 436
26.2.4 几种解决方案 439
26.3 IP地址欺诈技术 444
26.3.1 IP欺诈的三语句解决方案 446
26.3.2 地址欺诈代理 447
26.4 小结 448
第27章 /proc文件系统 449
27.1 /proc文件里有些什么 449
27.2 部分有用的/proc数据项 450
27.3 通过/proc实现的常见报告和设置 452
27.3.1 对SYN Flood攻击现象的防护 452
27.3.2 大容量服务器的问题 453
27.3.3 调试硬件冲突 453
27.4 小结 454
附录 455
附录A Red Hat Linux发行版本中使用的程序设计语言 455
附录B Linux操作系统中的常用软件 459
光盘内容简介 463