第一部分 FreeBSD入门
第1章 什么是FreeBSD 1
1.1 为什么要选用FreeBSD 1
1.2 FreeBSD能做什么 2
1.3 FreeBSD和UNIX简史 3
1.3.1 BSD的诞生 3
1.3.2 Intel x86平台上的BSD 4
1.3.3 FreeBSD的诞生 4
1.4 UNIX的设计思路 4
1.5 FreeBSD同其他操作系统的对比 6
1.5.1 Windows 2000 6
1.5.2 Linux 7
1.6 FreeBSD的吉祥物 8
第2章 安装FreeBSD 9
2.1 检查硬件 9
2.2 制作启动盘 10
2.2.1 从DOS或Windows系统制作启动盘 10
2.2.2 从另一个FreeBSD或UNIX系统制作
启动盘 11
2.3 启动以安装程序 11
2.4 FreeBSD sysinstall程序简介 13
2.5 在sysinstall程序中漫游 13
2.6 创建分区和分配装入点 14
2.6.1 选择硬盘 14
2.6.2 为硬盘分区 15
2.6.3 磁盘标签编辑器 17
2.6.4 创建分区和磁盘标签 18
2.6.5 优化性能 20
2.6.6 根分区 20
2.6.7 交换分区 21
2.6.8 创建其余的分区 23
2.6.9 SoftUpdates注意事项 23
2.7 选择套装发行版本 24
2.8 选择安装介质 25
2.9 后期安装 25
2.9.1 配置网络 26
2.9.2 自定义控制台 28
2.9.3 设置时区 28
2.9.4 Linux兼容性 28
2.9.5 配置鼠标 29
2.9.6 配置X-Server 29
2.9.7 选择默认桌面 37
2.9.8 安装附加软件包 37
2.9.9 添加一名用户 39
2.9.10 设置根密码 41
2.10 退出安装并重启系统 41
2.11 首次启动FreeBSD 41
2.12 关闭FreeBSD 42
第3章 高级安装问题 43
3.1 备份现有文件系统 43
3.2 使用FIPS进行非破坏性硬盘分区 44
3.2.1 运行Scandisk和Defragmenter 44
3.2.2 获取FIPS并创建一张启动盘 44
3.3 操作FIPS 45
3.4 双重引导系统的潜在问题以及限制 46
3.4.1 双重引导DOS. Windows 95.
Windows 98或Windows Me 47
3.4.2 双重引导Linux 47
3.5 FreeBSD 引导管理程序 47
3.6 从LILO启动FreeBSD 48
3.7 其他安装方法 48
3.7.1 通过FTP安装FreeBSD 48
3.7.2 执行NFS安装 51
第二部分 使用FreeBSD
第4章 同FreeBSD的第一次会话 53
4.1 FreeBSD启动过程 53
4.2 BIOS 53
4.3 引导 54
4.3.1 boot0 54
4.3.2 boot1 54
4.3.3 boot2 54
4.3.4 boot3 54
4.4 内核 55
4.5 init 56
4.5.1 文件系统一致性检查 56
4.5.2 系统配置脚本 57
4.5.3 getty和登录 57
4.6 登录进入FreeBSD 57
4.7 启动X-Windows系统 59
4.8 Gnome桌面环境简介 59
4.9 停止X-Windows系统 60
4.10 从FreeBSD注销 61
4.11 关闭FreeBSD系统 61
4.11.1 使用shutdown命令 61
4.11.2 使用halt和reboot时的注意事项 63
第5章 操作Gnome桌面环境 64
5.1 窗口管理器 64
5.2 Gnome桌面环境 65
5.3 在桌面漫游 66
5.4 Gnome面板 68
5.5 操作窗口 69
5.5.1 虚拟工作空间 70
5.5.2 窗口菜单的Toggle选项 71
5.5.3 窗口菜单的In Group选项 72
5.5.4 窗口发送到 72
5.5.5 深度 72
5.5.6 框架类型 72
5.5.7 框架样式 72
5.5.8 历史 72
5.6 探索Gnome和X-Windows小程序 72
5.6.1 gedit 73
5.6.2 Eye of Gnome 74
5.6.3 CD 播放器 74
5.6.4 Gnome Terminal 75
5.6.5 xcalc 75
5.6.6 xmag 75
5.6.7 xman 75
5.6.8 xclock 75
5.6.9 xfontsel 75
5.7 用Gnome文件管理器管理文件和目录 76
5.8 在Gnome中获取帮助 76
第6章 自定义Gnome桌面环境 78
6.1 在桌面添加新图标 78
6.2 自定义Gnome面板 80
6.2.1 操作面板图标 80
6.2.2 自定义“开始”菜单 81
6.2.3 操作面板小程序 82
6.2.4 在面板上添加启动器和抽屉 82
6.3 添加和删除面板 84
6.4 自定义Gnome文件管理器 85
6.4.1 File Display标签 85
6.4.2 Caching标签 86
6.4.3 Desktop标签 87
6.4.4 Custom View标签 87
6.5 操作Gnome控制中心 87
6.5.1 改变背景 88
6.5.2 面板 89
6.5.3 主题选择器 90
6.5.4 窗口管理器 90
6.5.5 文档处理器 90
6.6 自定义Sawfish窗口管理器选项 93
第7章 使用应用程序 95
7.1 处理文字 95
7.1.1 gedit 96
7.1.2 ee 100
7.1.3 vi编辑器 103
7.2 图形和图像 107
7.2.1 GIMP 107
7.2.2 GQview 118
7.3 StarOffice办公套件 120
7.3.1 StarOffice桌面 121
7.3.2 打开一个新文档 121
7.3.3 文档模板 121
7.3.4 StarOffice集成Web浏览器 122
7.3.5 StarOffice电子邮件 124
7.3.6 StarOffice资源管理器 129
7.3.7 StarOffice中的帮助 131
7.4 多媒体 134
7.4.1 检查声音支持 134
7.4.2 创建设备节点 134
7.4.3 混音器 135
7.4.4 用XMMS听MP3 136
7.4.5 用mpg123听MP3 137
7.4.6 基于X窗口的图形化混音器 137
7.5 网络应用 138
7.5.1 配置Netscape 138
7.5.2 Lynx Web浏览器 139
7.5.3 FTP 140
7.5.4 电子邮件程序 142
第8章 使用shell 149
8.1 shell入门 149
8.2 可用的shell类型 149
8.2.1 Bourne shell(sh) 150
8.2.2 C shell(csh) 150
8.2.3 Korn shell(ksh或pdksh) 150
8.2.4 Bourne Again shell(bash) 151
8.2.5 Tcsh shell(tcsh) 151
8.2.6 选择哪一个shell 151
8.3 改变shell 151
8.4 在shell中获取帮助 152
8.4.1 搜索手册页 152
8.4.2 命令总结 153
8.4.3 手册部分 153
8.5 基本shell文件操作 154
8.5.1 FreeBSD如何保存文件 154
8.5.2 至关重要的home目录 155
8.5.3 列出目录内容 155
8.5.4 在文件系统中移动 156
8.5.5 在文件系统中不知身在何处 157
8.5.6 复制文件和目录 157
8.5.7 移动和重命名文件及目录 158
8.5.8 删除文件和目录 158
8.5.9 删除目录 159
8.5.10 touch命令 159
8.5.11 创建链接 159
8.5.12 统一选项 161
8.5.13 元字符和通配符 161
8.5.14 有关文件名的注意事项 162
8.5.15 处理歧义的文件名 163
8.6 和文本相关的命令 164
8.6.1 行. 单词和字符计数 164
8.6.2 查看文本文件more或less 164
8.6.3 搜索模式 165
8.6.4 对文件中的文本排序 165
8.6.5 用tr替换字符串 166
8.6.6 只显示文本文件中特定部分的行 166
8.6.7 用fmt格式化文本 167
8.7 管道和输入/输出重定向 168
8.8 命令完成和历史编辑 169
第三部分 管理FreeBSD
第9章 FreeBSD文件系统 171
9.1 FreeBSD目录结构 171
9.2 监视文件系统的使用 174
9.2.1 df命令 175
9.2.2 du命令 175
9.3 装入和卸载FreeBSD文件系统 176
9.3.1 mount命令 176
9.3.2 umount命令 177
9.4 装入和卸载来自其他操作系统
的文件系统 178
9.4.1 装入一个Windows/MS-DOS
文件系统 179
9.4.2 装入一个Linux文件系统 180
9.5 装入和卸载基于CD-ROM和软盘
的文件系统 181
9.5.1 装入CD和软盘 181
9.5.2 卸载CD和软盘 182
9.5.3 其他可移动介质 182
9.6 理解/etc/fstab文件 182
9.7 使用fsck检查和修复文件系统 184
9.7.1 日志文件系统和软件更新 186
9.7.2 使用fsck命令恢复被损坏的超级块 186
9.8 设置和强制使用用户文件系统配额 188
第10章 用户. 用户组和权限 192
10.1 用户和用户组简介 193
10.2 用户组的重要性 194
10.3 文件所有权 195
10.3.1 使用chown改变文件所有权 196
10.3.2 使用chgrp改变文件组所有权 197
10.4 文件和目录权限 198
10.4.1 文件和目录权限之间的关系 198
10.4.2 用chmod更改文件和目录权限 199
10.5 访问控制列表 201
10.5.1 配置内核以支持ACL 201
10.5.2 配置文件系统以使用ACL 201
10.5.3 获取与当前ACL设置有关的信息 202
10.5.4 设置最大权限掩码 202
10.5.5 在ACL中添加用户或用户组 203
10.5.6 用ACL拒绝访问 205
10.5.7 删除ACL条目 205
10.5.8 删除所有ACL条目 205
10.6 添加和删除用户 205
10.6.1 /etc/passwd和/etc/master.passwd
文件 208
10.6.2 /etc/group文件 209
10.6.3 管理用户组 209
第11章 系统配置和启动脚本 211
11.1 理解FreeBSD启动过程 211
11.2 资源配置脚本 214
11.2.1 /etc/defaults/rc.conf文件 215
11.2.2 /etc/rc.conf文件 216
11.2.3 /usr/local/etc和/usr/local/X11R6/etc
目录 218
11.2.4 创建脚本以便在启动时运行程序 219
11.3 inetd守护进程和inetd.conf配置文件 219
11.4 系统记录器(syslogd)和syslog.conf
文件 221
11.5 有关/etc/rc.local的注意事项 222
第12章 自定义shell 224
12.1 什么是shell 224
12.2 将shell添加到系统并使其可用 226
12.2.1 从ports或packages安装shell 226
12.2.2 /etc/shells文件 227
12.3 使用其他shell 228
12.3.1 登录时更改shell 229
12.3.2 更改默认shell 229
12.3.3 非shell程序作为shell使用 230
12.4 shell初始化文件 232
12.4.1 tcsh/csh文件:.cshrc. .login
和.logout 232
12.4.2 bash文件:.profile. .shrc和
.bash_logout 234
12.5 自定义shell环境 235
12.5.1 自定义tcsh 235
12.5.2 自定义bash 237
12.6 shell和环境变量 237
12.6.1 环境变量 238
12.6.2 shell变量 239
第13章 shell编程 240
13.1 一个简单的shell程序 241
13.2 变量 244
13.2.1 变量赋值 244
13.2.2 变量名 245
13.3 与用户的交互 245
13.3.1 控制命令行参数 246
13.3.2 命令替换 247
13.4 shell程序中的数学运算 248
13.5 循环 250
13.5.1 while循环 250
13.5.2 until循环 251
13.5.3 while循环和until循环中的逻辑
“与”/“或”语句 251
13.5.4 for循环 252
13.5.5 shift 253
13.5.6 true和false语句 254
13.5.7 中断循环 254
13.6 条件语句 256
13.6.1 if语句 256
13.6.2 case语句 259
13.6.3 逻辑“与”/“或”条件 261
13.7 退出状态码 261
13.7.1 设置退出状态码 263
13.7.2 退出陷阱 264
13.8 函数 265
13.9 文件描述符 265
13.10 调试shell脚本 267
13.11 Korn shell脚本的高级特性 267
13.11.1 获取和安装Korn shell 268
13.11.2 内建数学运算函数 268
13.11.3 数组 269
13.11.4 命令替换 272
13.11.5 使用getopts 272
第14章 性能监视. 过程控制和作业
自动化 273
14.1 用top进行性能监视 273
14.2 对top输出信息的解释 274
14.3 用ps进行进程监视 276
14.4 对ps输出信息的解释 277
14.5 中断表现不正常的进程 277
14.5.1 kill命令 278
14.5.2 kill命令的选项 278
14.6 改变进程的优先级 279
14.7 作业自动化简介 280
14.8 cron 守护进程 280
14.8.1 对一个crontab文件的剖析 280
14.8.2 创建和编辑crontab文件 282
14.9 用at命令创建运行一次的作业 282
14.10 控制对cron和at命令的访问 283
第15章 安装附加软件 284
15.1 packages简介 285
15.1.1 共享库和依赖关系 285
15.1.2 获取与已安装的packages有关
的信息 286
15.2 安装packages 288
15.2.1 从sysinstall安装 289
15.2.2 使用pkg_add 290
15.3 删除packages 292
15.4 更新packages 292
15.5 ports简介 292
15.6 FreeBSD的ports树 293
15.7 安装ports 296
15.8 删除已安装的ports 297
15.9 升级ports 297
15.10 确定你的ports树是最新的 297
15.10.1 有关被禁止ports的注意事项 299
15.10.2 收回由ports构建进程使用的
硬盘空间 300
15.10.3 一个ports不能构建时的对策 300
15.11 Fresh ports网站 301
第16章 打印 303
16.1 lpd和后台打印 304
16.2 内核. 设备和通信模式的配置 304
16.3 创建后台打印目录 305
16.4 过滤器 306
16.4.1 文本过滤器 306
16.4.2 在非PostScript打印机上打印
PostScript文件 308
16.4.3 lpf打印过滤器 310
16.5 转换过滤器 310
16.6 配置/etc/printcap 311
16.7 启用lpd 312
16.8 基本的命令行打印 312
16.9 从X-Windows中打印 314
16.10 在StarOffice中打印 314
16.11 检查打印作业的状态 315
16.12 从队列中删除作业 316
16.13 控制打印机 317
16.13.1 交互模式下的lpc 317
16.13.2 队列状态 318
16.13.3 禁止打印和停止守护进程 318
16.13.4 在非交互模式中使用lpc 322
16.13.5 控制谁能使用lpc 322
16.14 基本网络打印 323
16.15 疑难解答 323
16.15.1 打印机不能接收数据, 作业
停在队列中 323
16.15.2 打印机数据灯闪烁, 但不能打印 323
16.15.3 打印GIMP或Web页中的图形文件,
但导致大量垃圾页打印出来 323
16.15.4 打印机太慢 323
16.15.5 打印出阶梯状效果 323
16.15.6 所有文字都打印在一行上, 造成混
乱, 并重叠在现有的文字上打印 324
第17章 内核配置 325
17.1 内核所扮演的角色 325
17.2 为何要配置自定义内核 326
17.3 内核配置文件 328
17.3.1 GENERIC配置文件 329
17.3.2 设备提示 330
17.3.3 LINT文件 331
17.4 创建一个自定义内核配置文件 331
17.5 编译和安装自定义内核 332
17.6 将设备节点添加到/dev目录
(如有必要) 333
17.7 出现问题后进行恢复 333
第18章 更新FreeBSD 335
18.1 跟踪FreeBSD源码 335
18.1.1 对STABLE和CURRENT源码
分支的解释 336
18.1.2 选择升级目标 336
18.2 何谓make world 337
18.3 make world之前要考虑的问题 338
18.4 make world之前的任务 339
18.4.1 将源码树同STABLE或CURRENT
树或者一个RELEASE同步 340
18.4.2 UPDATING文本文件 342
18.4.3 合并/etc/group和/etc/passwd 342
18.4.4 合并/etc/make.conf 343
18.5 根据源码重新构建系统 343
18.5.1 清除/usr/obj 344
18.5.2 启动一个输出日志 344
18.5.3 make buildworld 345
18.5.4 升级内核 346
18.5.5 make installworld 347
18.6 用mergemaster检查改动过的配置文件 348
18.7 升级后重启 350
第19章 理解硬盘和文件系统 351
19.1 IDE/ATA存取模式 351
19.1.1 PIO模式 352
19.1.2 DMA模式 352
19.1.3 Ultra DMA(UDMA)模式 352
19.2 SCSI磁盘 353
19.3 理解硬盘参数 354
19.3.1 LBA和528MB的限制 355
19.3.2 Extended INT13模式和8.4GB
的限制 356
19.3.3 实际影响 357
19.4 硬盘分区 357
19.4.1 BIOS分区(slice) 357
19.4.2 BSD分区 357
19.4.3 sysinstall中的slice 编辑器(fdisk) 359
19.5 创建磁盘标签 360
19.5.1 创建一个完整的FreeBSD分区布局 360
19.5.2 添加新的磁盘 361
19.5.3 写入变化并格式化磁盘 362
19.6 使文件系统就绪以便使用 362
第20章 FreeBSD快速指南 363
20.1 迁移到FreeBSD 363
20.1.1 从Windows NT/2000迁移 364
20.1.2 从Linux迁移 367
20.2 “应该”和“不应该”(常规准则) 370
20.3 性能调节 372
20.3.1 内核设置 372
20.3.2 Soft Updates和异步写入 373
20.3.3 磁盘参数的问题 374
20.3.4 一些sysctl调节措施 374
20.3.5 有帮助的手册页 375
20.4 未雨绸缪:备份和制作镜像 375
20.4.1 创建“种子”文件 375
20.4.2 备份 376
20.4.3 恢复 377
20.4.4 镜像 378
第21章 Perl编程入门 381
21.1 什么是Perl 381
21.2 FreeBSD中的Perl 381
21.2.1 Perl的强项 382
21.2.2 Perl的弱项 382
21.3 Perl脚本编程基础 383
21.3.1 变量和运算符 384
21.3.2 标量. 数组和关联数组 385
21.3.3 流程控制 387
21.3.4 命令行参数 389
21.4 一个简单的Perl脚本 389
21.5 高级Perl技术 390
21.5.1 文字处理 390
21.5.2 文件处理 393
21.5.3 函数 395
21.5.4 Perl模块 396
21.6 有用的Perl资源 398
21.6.1 Web站点 398
21.6.2 参考书籍 399
21.6.3 CPAN网站 399
第四部分 FreeBSD连网
第22章 连网入门 401
22.1 连网概述 402
22.2 网络拓扑 402
22.3 网络组件 405
22.3.1 电缆 405
22.3.2 集线器 408
22.3.3 交换机 409
22.3.4 网桥 410
22.3.5 路由器 410
22.4 网络协议 411
22.4.1 TCP:传输控制协议 411
22.4.2 UDP:用户数据报协议 411
22.4.3 ICMP:网际控制消息协议 412
22.5 TCP/IP 412
22.6 IP地址 413
22.6.1 ARP和MAC地址 415
22.6.2 arp命令 417
22.7 子网和网络掩码 417
22.8 路由 419
22.9 主机名和域名 421
22.10 DHCP 422
第23章 配置基本连网服务 423
23.1 配置网卡 423
23.2 用sysinstall配置网络设置 424
23.3 不用sysinstall配置网络设置 427
23.3.1 用ifconfig应用网络设置 427
23.3.2 用route设置网关路由器 429
23.3.3 使用hostname 430
23.3.4 /etc/rc.conf中的网络设置 430
23.3.5 使用/etc/netstart 431
23.4 创建IP别名 432
23.5 使用/etc/hosts文件将名称映射成
IP地址 433
23.6 用ping测试网络连接 433
23.7 用/etc/resolv.conf文件配置DNS 434
23.8 其他网络配置文件一瞥 435
第24章 用PPP方式连接Internet 437
24.1 选择一家ISP 437
24.2 收集所需信息 437
24.3 用户PPP与内核PPP的对比 438
24.4 配置内核PPP 438
24.4.1 /etc/resolv.conf 438
24.4.2 /etc/ppp/options 438
24.4.3 chat脚本 439
24.4.4 启动pppd 守护进程 440
24.4.5 PAP和CHAP身份验证 441
24.4.6 pap-secrets和chap-secrets 441
24.4.7 按需拨号和持久性连接 442
24.4.8 连接和断开时运行命令 443
24.5 用户PPP 443
24.5.1 /etc/ppp/ppp.conf文件 443
24.5.2 启动用户PPP 445
24.5.3 允许普通用户启动用户PPP 445
24.5.4 按需拨号和持久性连接 445
24.5.5 连接和断开时运行命令 446
24.6 PPP疑难解答 447
24.7 最后的思考 447
第25章 配置电子邮件 448
25.1 SMTP简介 448
25.2 邮件传输代理和邮件用户代理 450
25.2.1 常用MTA 451
25.2.2 常用MUA 451
25.3 用sendmail配置基本电子邮件服务 452
25.3.1 sendmail文件布局 452
25.3.2 配置文件 453
25.3.3 DNS解析问题 456
25.3.4 控制sendmail 457
25.4 中转的注意事项 458
25.5 POP3简介 460
25.6 用qpopper配置一个POP3服务器 461
25.6.1 qpopper基本安装和配置 462
25.6.2 启用单机模式 462
25.6.3 启用服务器模式 463
25.6.4 启用SSL加密 464
25.6.5 寻求更多的信息 465
25.7 用IMAP-UW配置一个IMAP服务器 465
25.8 单机工作站的电子邮件 467
25.8.1 用Fetchmail从POP3和IMAP
服务器收取电子邮件 467
25.8.2 单机工作站的sendmail配置 470
25.9 sendmail的一些替用品 471
25.9.1 Postfix 471
25.9.2 Qmail 471
25.9.3 Exim 471
25.9.4 Smail 472
第26章 配置Web服务器 473
26.1 HTTP协议简介 473
26.2 获取和安装Apache 477
26.3 配置Apache 478
26.3.1 使用httpd.conf 479
26.3.2 使用.htaccess文件和覆盖问题 480
26.4 启动和停止HTTP守护进程 481
26.5 Apache的基本访问控制 483
26.5.1 依据地址的访问控制 483
26.5.2 依据密码的访问控制 484
26.5.3 依据地址和密码的访问控制 486
26.6 虚拟主机 487
26.7 Apache模块简介 489
26.7.1 内建模块 489
26.7.2 动态加载的模块 489
26.7.3 第三方模块 490
26.8 服务器端包含 491
26.9 CGI简介 493
26.9.1 在Apache中启用CGI 493
26.9.2 编写CGI程序 494
第27章 配置FTP服务器 498
27.1 FTP协议简介 498
27.2 FTP目录结构概述 501
27.3 配置FTP服务器 501
27.4 控制FTP访问 503
27.4.1 /etc/ftpusers文件 503
27.4.2 /etc/shells文件 504
27.4.3 /var/run/nologin文件 504
27.5 允许匿名FTP访问 505
27.6 虚拟主机 505
27.7 使用其他FTP服务器 506
27.7.1 WU-FTPD 506
27.7.2 ProFTPD 507
第28章 配置Internet网关 508
28.1 什么是路由器 508
28.1.1 什么是网关 510
28.1.2 什么是NAT 510
28.2 在FreeBSD中配置NAT网关 510
28.3 启用NAT 512
28.3.1 使用用户PPP 512
28.3.2 使用内核PPP或专用以太网连接 512
28.3.3 配置和启用natd 512
28.3.4 启用和配置防火墙 513
28.4 配置客户机以使用新网关 514
28.4.1 配置Windows 95/98客户机 514
28.4.2 配置Mac OS和Mac OS X客户机 515
28.4.3 FreeBSD 516
28.4.4 配置Linux客户机 516
28.5 配置无线Internet访问 517
28.6 在三个或更多的网络中路由 517
28.7 动态路由 519
第29章 网络安全 521
29.1 安全模型 522
29.2 密码策略 523
29.2.1 用Crack强制使用安全密码 523
29.2.2 密码过期 524
29.2.3 分配初始密码 526
29.2.4 用S/Key实现一次性密码 526
29.2.5 Kerberos 528
29.3 明文服务的问题 529
29.4 终端通信安全(OpenSSH) 531
29.5 电子邮件服务安全(POP3和IMAP) 532
29.6 FTP安全 533
29.7 Apache安全 533
29.7.1 Apache-SSL 534
29.7.2 Apache与mod_ssl 534
29.7.3 运行一个安全的Web服务器 535
29.7.4 编写不当的CGI脚本 535
29.7.5 用CGIwrap使CGI脚本更安全 536
29.8 系统安全配置文件和内
核安全(securelevel) 536
29.9 使用防火墙 538
29.9.1 启用防火墙 539
29.9.2 配置IPFW 540
29.10 防范入侵和破坏 541
29.10.1 使用PortSentry 542
29.10.2 使用/etc/hosts.allow 544
29.10.3 使用Tripwire 545
29.10.4 认为被“黑”了该怎么办 547
29.11 拒绝服务攻击 549
29.11.1 限制服务器分叉 549
29.11.2 防范跳板攻击 550
29.12 物理安全 551
29.13 其他安全资源 551
29.13.1 man security页 551
29.13.2 邮件列表 551
29.13.3 FreeBSD安全顾问 552
29.13.4 Web资源 552
29.13.5 相关书籍 553
第30章 域名服务器 554
30.1 BIND简介 554
30.1.1 DNS的结构 554
30.1.2 区域 555
30.1.3 BIND文件和程序 556
30.2 启用名称服务器守护进程 556
30.3 BIND配置文件(named.conf) 557
30.3.1 使用转发器 559
30.3.2 主从配置 560
30.3.3 其他区域类型 561
30.3.4 限制DNS访问 561
30.4 创建一个区域文件 563
30.4.1 预编译指令 564
30.4.2 SOA记录 565
30.4.3 NS记录 566
30.4.4 A记录 567
30.4.5 CNAME记录 567
30.4.6 MX记录 567
30.4.7 PTR记录 568
30.4.8 反向DNS区域文件 568
30.4.9 制作一个localhost区域文件 569
30.5 配置缓存名称服务器 569
第31章 网络文件系统(NFS) 571
31.1 NFS简介 571
31.2 配置NFS服务器 573
31.2.1 NFS 守护进程(nfsd) 573
31.2.2 NFS“装入”守护进程(mountd) 574
31.2.3 用/etc/exports文件决定要共享什么 574
31.2.4 启动NFS服务而不用重启 576
31.3 配置NFS客户机 576
31.3.1 “NFS输入/输出”守护
进程(nfsiod) 576
31.3.2 装入远程文件系统 576
31.3.3 系统引导时自动装入远程文件
系统 577
31.4 “自动装入”守护进程(amd) 578
第32章 同Windows进行文件和打印共享 580
32.1 Samba简介 580
32.2 对SMB/CIFS的解释 580
32.2.1 浏览 581
32.2.2 安全. 工作组和域 582
32.3 安装和配置Samba 583
32.3.1 smbd和nmbd 守护进程 583
32.3.2 smb.conf和SWAT 584
32.3.3 共享目录 585
32.3.4 共享打印机 586
32.3.5 访问控制 587
32.3.6 Samba日志文件 589
32.3.7 Samba变量 590
32.4 其他Samba组件 590
32.5 未来的Samba开发 591
32.6 smbfs文件系统 591
第33章 DHCP 593
33.1 DHCP是如何工作的 593
33.2 DHCP胜于静态IP地址的优点 594
33.3 DHCP的内核配置 594
33.4 启用DHCP 595
33.4.1 通过sysinstall使用DHCP 595
33.4.2 手工配置DHCP 596
33.5 dhclient程序 596
33.5.1 /sbin/dhclient-script 597
33.5.2 /etc/dhclient.conf 597
33.6 “DHCP服务器”守护进程 598
33.7 dhcpd配置文件 599
第五部分 X-Windows
第34章 高级X-Windows配置 603
34.1 从3.3.6升级到4.x 603
34.2 使用SuperProbe 604
34.3 用xf86config脚本配置X-Windows 605
34.3.1 配置鼠标 606
34.3.2 选择键盘 607
34.3.3 配置显示器 608
34.3.4 配置显示卡 610
34.4 理解XF86Config文件 617
34.4.1 XF86Config语法 617
34.4.2 “module”节 618
34.4.3 “Files”节 618
34.4.4 “ServerFlags”节 618
34.4.5 “InputDevice”节 620
34.4.6 “Monitor”节 623
34.4.7 “Device”节 623
34.4.8 “Screen”节 624
34.4.9 “Display”子节 625
34.4.10 “ServerLayOut”子节 625
34.5 测试X-Windows设置 626
34.6 你的个人.xinitrc文件 627
34.6.1 更改窗口管理器 627
34.6.2 自动启动应用程序 629
34.6.3 设置背景色或背景图 629
34.7 使用字体 631
34.7.1 检查XF86Config文件 631
34.7.2 创建目录和安装字体 631
34.8 使用远程X-Windows客户机 632
34.8.1 使用xhost允许远程应用程序显示 633
34.8.2 启动一个远程应用程序 634
34.8.3 其他客户机访问控制 635
34.9 xdm 635
第六部分 附 录
附录A 命令参考和配置文件参考 637
附录B 硬件兼容性列表 641
附录C 安装疑难解答 663
附录D 寻求更多信息 668