GNU/Linux书籍推荐

点击跳转到GNU/Linux课程所有目录

各位朋友可以点击这里从百度网盘下载pdf电子书。电子书请仅作为学习用途,有需要的话建议购买纸质书。

点击小节标题可以看豆瓣上对这几本书的评价。

1 所有推荐书籍的目录

点击这里查看课程、配套视频和所有推荐书籍的目录

2 鸟哥的Linux私房菜

繁体字看不懂?没事,常用的繁体字并不多,点击这里查看我整理的常用繁体字

2.1 简略目录

2.1.1 鸟哥的Linux私房菜 基础学习篇 第四版

第一部分 Linux的规则与安装
    第0章 计算机概论 2
    第1章 Linux是什么与如何学习 32
    第2章 主机规划与磁盘分区 63
    第3章 安装CentOS 7.x 88
    第4章 首次登录与在线求助 116
第二部分 Linux文件、目录与磁盘格式
    第5章 Linux的文件权限与目录配置 149
    第6章 Linux文件与目录管理 175
    第7章 Linux磁盘与文件系统管理 209
    第8章 文件与文件系统的压缩 261
第三部分 学习shell与shell script
    第9章 vim程序编辑器 289
    第10章 认识与学习BASH 310
    第11章 正则表达式与文件格式化处理 362
    第12章 学习shell脚本 387
第四部分 Linux使用者管理
    第13章 Linux账号管理与ACL权限设置 417
    第14章 磁盘配额(Quota)与高级文件系统管理 465
    第15章 计划任务(crontab) 500
    第16章 进程管理与SELinux初探 515
第五部分 Linux系统管理员
    第17章 认识系统服务(daemon) 563
    第18章 认识与分析日志文件 594
    第19章 启动流程、模块管理与Loader 618
    第20章 基础系统设置与备份策略 655
    第21章 软件安装:源代码与Tarball 680
    第22章 软件安装RPM、SRPM与YUM 706
    第23章 X Window设置介绍 739
    第24章 Linux内核编译与管理 759

2.1.2 鸟哥的Linux私房菜 服务器架设篇

作者序
第一篇  服务器搭建前的进修专区
    第1章  搭建服务器前的准备工作 2
    第2章  网络的基本概念 29
    第3章  局域网架构简介 79
    第4章  连接 internet 93
    第5章  linux 中常用的网络命令 122
    第6章  linux 网络排错 162
第二篇 主机的简易安全防护措施
    第7章  网络安全与主机基本防护:限制端口、网络升级与selinux 174
    第8章  路由的概念与路由器设置 226
    第9章  防火墙与 nat 服务器 251
    第10章  申请合法的主机名 295
第三篇  局域网内常见服务器的搭建
    第11章  远程连接服务器 ssh / xdmcp / vnc /xrdp 310
    第12章  网络参数管理者:dhcp服务器 369
    第13章  文件服务器之一:nfs 服务器 392
    第14章  账号管理:nis 服务器 421
    第15章  时间服务器:ntp 服务器 443
    第16章  文件服务器之二:samba 服务器 460
    第17章  局域网控制者:proxy 服务器 526
    第18章  网络驱动器设备:iscsi 服务器 559
第四篇  常见因特网服务器的搭建
    第19章  主机名控制者:dns 服务器 580
    第20章  www 服务器 647
    第21章  文件服务器之三:ftp 服务器 710
    第22章  邮件服务器:postfix 749

2.2 详细目录

2.2.1 鸟哥的Linux私房菜 基础学习篇

第一部分 Linux的规则与安装
第0章 计算机概论 2
0.1 电脑:辅助人脑的好工具 3
0.1.1 电脑硬件的五大单元 3
0.1.2 一切设计的起点:CPU的架构 5
0.1.3 其他单元的设备 6
0.1.4 运作流程 6
0.1.5 电脑的分类 7
0.1.6 电脑上面常用的计算单位(容量、速度等) 8
0.2 个人电脑架构与相关设备组件 9
0.2.1 执行脑袋运算与判断的CPU 10
0.2.2 内存 12
0.2.3 显卡 15
0.2.4 硬盘与存储设备 16
0.2.5 扩展卡与接口 20
0.2.6 主板 21
0.2.7 主机电源 22
0.2.8 选购须知 22
0.3 数据表示方式 23
0.3.1 数字系统 24
0.3.2 字符编码系统 24
0.4 软件程序运行 25
0.4.1 机器语言程序与编译型程序 25
0.4.2 操作系统 26
0.4.3 应用程序 28
0.5 重点回顾 29
0.6 本章习题 29
0.7 参考资料与扩展阅读 30
第1章 Linux是什么与如何学习 32
1.1 Linux是什么 33
1.1.1 Linux是什么?操作系统/应用程序? 33
1.1.2 Linux之前,UNIX的历史 34
1.1.3 关于GNU计划、自由软件与开放源代码 40
1.2 托瓦兹的Linux的发展 43
1.2.1 与Minix之间 43
1.2.2 对386硬件的多任务测试 44
1.2.3 初次发布Linux 0.02 45
1.2.4 Linux的发展:虚拟团队的产生 46
1.2.5 Linux的内核版本 47
1.2.6 Linux发行版 48
1.3 Linux当前应用的角色 51
1.3.1 企业环境的使用 52
1.3.2 个人环境的使用 53
1.3.3 云端应用 54
1.4 Linux该如何学习 55
1.4.1 从头学习Linux基础 56
1.4.2 选择一本易读的工具书 57
1.4.3 实践再实践 58
1.4.4 发生问题怎么处理 58
1.4.5 鸟哥的建议(重点在solution的学习) 59
1.5 重点回顾 60
1.6 本章习题 61
1.7 参考资料与扩展阅读 62
第2章 主机规划与磁盘分区 63
2.1 Linux与硬件的搭配 64
2.1.1 认识计算机的硬件设备 64
2.1.2 选择与Linux搭配的主机设备 65
2.1.3 各硬件设备在Linux中的文件名 67
2.1.4 使用虚拟机学习 68
2.2 磁盘分区 69
2.2.1 磁盘连接方式与设备文件名的关系 69
2.2.2 MBR(MS-DOS)与GPT磁盘分区表(partition table) 70
2.2.3 启动流程中的BIOS与UEFI启动检测程序 76
2.2.4 Linux安装模式下,磁盘分区的选择(极重要) 79
2.3 安装Linux前的规划 82
2.3.1 选择适当的Linux发行版 82
2.3.2 主机的服务规划与硬件的关系 83
2.3.3 主机硬盘的主要规划 84
2.3.4 鸟哥的两个实际案例 85
2.4 重点回顾 86
2.5 本章习题 87
2.6 参考资料与扩展阅读 87
第3章 安装CentOS 7.x 88
3.1 本练习机的规划(尤其是分区参数) 89
3.2 开始安装 CentOS 7 91
3.2.1 调整BIOS与虚拟机创建流程 91
3.2.2 选择安装模式与启动(inst.gpt) 94
3.2.3 设置时区、语言与键盘布局 96
3.2.4 安装源设置与软件选择 97
3.2.5 磁盘分区与文件系统设置 99
3.2.6 内核管理与网络设置 104
3.2.7 开始安装、设置root密码与新增可切换身份之一般用户 106
3.2.8 准备使用系统前的授权同意 108
3.2.9 其他功能:RAM测试,安装笔记本电脑的内核参数(可选) 110
3.3 多重引导安装步骤与管理(可选) 111
3.3.1 安装 CentOS 7.x + Windows 7的规划 111
3.3.2 高级安装 CentOS 7.x与Windows 7 112
3.3.3 恢复MBR内的启动引导程序与设置多重引导选项 113
3.4 重点回顾 114
3.5 本章习题 115
3.6 参考资料与扩展阅读 115
第4章 首次登录与在线求助 116
4.1 首次登录系统 117
4.1.1 首次登录CentOS 7.x图形用户界面模式 117
4.1.2 GNOME的操作与注销 118
4.1.3 X Window与命令行模式的切换 124
4.1.4 在终端登录Linux 125
4.2 命令行模式下命令的执行 127
4.2.1 开始执行命令 127
4.2.2 基础命令的操作 128
4.2.3 重要的几个热键[Tab]、[Ctrl]-c、[Ctrl]-d 131
4.2.4 错误信息的查看 133
4.3 Linux系统的在线求助man page与info page 133
4.3.1 命令的 --help求助说明 134
4.3.2 man page 135
4.3.3 info page 139
4.3.4 其他有用的文件(documents) 141
4.4 超简单的文本编辑器:nano 142
4.5 正确的关机方法 143
4.6 重点回顾 146
4.7 本章习题 146
4.8 参考资料与扩展阅读 147
第二部分 Linux文件、目录与磁盘格式
第5章 Linux的文件权限与目录配置 149
5.1 用户与用户组 150
5.2 Linux文件权限概念 152
5.2.1 Linux文件属性 152
5.2.2 如何修改文件属性与权限 156
5.2.3 目录与文件的权限意义 159
5.2.4 Linux文件种类与扩展名 162
5.3 Linux目录配置 165
5.3.1 Linux目录配置的依据——FHS 165
5.3.2 目录树(directory tree) 169
5.3.3 绝对路径与相对路径 170
5.3.4 CentOS的观察 172
5.4 重点回顾 173
5.5 本章练习 174
5.6 参考资料与扩展阅读 174
第6章 Linux文件与目录管理 175
6.1 目录与路径 176
6.1.1 相对路径与绝对路径 176
6.1.2 目录的相关操作 176
6.1.3 关于执行文件路径的变量:$PATH 179
6.2 文件与目录管理 181
6.2.1 文件与目录的查看:ls 181
6.2.2 复制、删除与移动:cp、rm、mv 183
6.2.3 获取路径的文件名与目录名称 186
6.3 文件内容查看 186
6.3.1 直接查看文件内容 187
6.3.2 可翻页查看 188
6.3.3 数据截取 190
6.3.4 非纯文本文件:od 191
6.3.5 修改文件时间或创建新文件:touch 192
6.4 文件与目录的默认权限与隐藏权限 194
6.4.1 文件默认权限:umask 195
6.4.2 文件隐藏属性 196
6.4.3 文件特殊权限:SUID、SGID、SBIT 198
6.4.4 观察文件类型:file 200
6.5 命令与文件的查找 201
6.5.1 脚本文件的查找 201
6.5.2 文件的查找 201
6.6 极重要的复习,权限与命令间的关系 205
6.7 重点回顾 206
6.8 本章习题 207
6.9 参考资料与扩展阅读 208
第7章 Linux磁盘与文件系统管理 209
7.1 认识Linux文件系统 210
7.1.1 磁盘组成与分区的复习 210
7.1.2 文件系统特性 211
7.1.3 Linux的ext2文件系统(inode) 212
7.1.4 与目录树的关系 217
7.1.5 ext2/ext3/ext4文件的存取与日志式文件系统的功能 219
7.1.6 Linux文件系统的运行 220
7.1.7 挂载点的意义(mount point) 221
7.1.8 其他Linux支持的文件系统与VFS 221
7.1.9 XFS文件系统简介 222
7.2 文件系统的简单操作 224
7.2.1 磁盘与目录的容量 224
7.2.2 硬链接与符号链接:ln 227
7.3 磁盘的分区、格式化、检验与挂载 231
7.3.1 观察磁盘分区状态 232
7.3.2 磁盘分区:gdisk/fdisk 233
7.3.3 磁盘格式化(创建文件系统) 238
7.3.4 文件系统检验 241
7.3.5 文件系统挂载与卸载 243
7.3.6 磁盘/文件系统参数自定义 246
7.4 设置启动挂载 248
7.4.1 启动挂载/etc/fstab及/etc/mtab 248
7.4.2 特殊设备loop挂载(镜像文件不刻录就挂载使用) 251
7.5 内存交换分区(swap)之创建 252
7.5.1 使用物理分区创建内存交换分区 253
7.5.2 使用文件创建内存交换文件 254
7.6 文件系统的特殊观察与操作 255
7.6.1 磁盘空间之浪费问题 255
7.6.2 利用GNU的parted 进行分区操作(可选) 256
7.7 重点回顾 257
7.8 本章习题 258
7.9 参考资料与扩展阅读 259
第8章 文件与文件系统的压缩 261
8.1 压缩文件的用途与技术 262
8.2 Linux系统常见的压缩命令 263
8.2.1 gzip,zcat/zmore/zless/zgrep 263
8.2.2 bzip2,bzcat/bzmore/bzless/bzgrep 265
8.2.3 xz,xzcat/xzmore/xzless/xzgrep 265
8.3 打包命令:tar 266
8.4 XFS文件系统的备份与还原 272
8.4.1 XFS文件系统备份xfsdump 272
8.4.2 XFS文件系统还原xfsrestore 275
8.5 光盘写入工具 277
8.5.1 mkisofs:建立镜像文件 277
8.5.2 cdrecord:光盘刻录工具 280
8.6 其他常见的压缩与备份工具 282
8.6.1 dd 282
8.6.2 cpio 284
8.7 重点回顾 285
8.8 本章习题 286
8.9 参考资料与扩展阅读 287
第三部分 学习shell与shell script
第9章 vim程序编辑器 289
9.1 vi与vim 290
9.2 vi的使用 291
9.2.1 简易执行范例 292
9.2.2 按键说明 293
9.2.3 一个案例练习 296
9.2.4 vim的缓存、恢复与打开时的警告信息 297
9.3 vim的额外功能 299
9.3.1 可视区块(Visual Block) 300
9.3.2 多文件编辑 301
9.3.3 多窗口功能 302
9.3.4 vim的关键词补全功能 303
9.3.5 vim环境设置与记录:~/.vimrc、~/.viminfo 304
9.3.6 vim常用命令示意图 305
9.4 其他vim使用注意事项 305
9.4.1 中文编码的问题 306
9.4.2 DOS与Linux的换行符 306
9.4.3 语系编码转换 307
9.5 重点回顾 308
9.6 本章练习 308
9.7 参考资料与扩展阅读 309
第10章 认识与学习BASH 310
10.1 认识BASH这个Shell 311
10.1.1 硬件、内核与Shell 311
10.1.2 为何要学命令行模式的Shell? 312
10.1.3 系统的合法shell与/etc/shells功能 313
10.1.4 Bash shell的功能 314
10.1.5 查询命令是否为Bash shell的内置命令:type 315
10.1.6 命令的执行与快速编辑按钮 316
10.2 Shell的变量功能 316
10.2.1 什么是变量? 317
10.2.2 变量的使用与设置:echo、变量设置规则、unset 318
10.2.3 环境变量的功能 322
10.2.4 影响显示结果的语系变量(locale) 325
10.2.5 变量的有效范围 327
10.2.6 变量键盘读取、数组与声明:read、array、declare 327
10.2.7 与文件系统及程序的限制关系:ulimit 329
10.2.8 变量内容的删除、取代与替换(可选) 330
10.3 命令别名与历史命令 334
10.3.1 命令别名设置:alias、unalias 334
10.3.2 历史命令:history 335
10.4 Bash shell的操作环境 337
10.4.1 路径与命令查找顺序 337
10.4.2 bash的登录与欢迎信息:/etc/issue、/etc/motd 337
10.4.3 bash的环境配置文件 338
10.4.4 终端的环境设置:stty、set 342
10.4.5 通配符与特殊符号 344
10.5 数据流重定向 345
10.5.1 什么是数据流重定向 345
10.5.2 命令执行的判断根据:;、&&、|| 348
10.6 管道命令(pipe) 350
10.6.1 选取命令:cut、grep 351
10.6.2 排序命令:sort、wc、uniq 353
10.6.3 双向重定向:tee 354
10.6.4 字符转换命令:tr、col、join、paste、expand 355
10.6.5 划分命令:split 357
10.6.6 参数代换:xargs 358
10.6.7 关于减号【-】的用途 359
10.7 重点回顾 359
10.8 本章习题 360
10.9 参考资料与扩展阅读 361
第11章 正则表达式与文件格式化处理 362
11.1 开始之前:什么是正则表达式 363
11.2 基础正则表达式 364
11.2.1 语系对正则表达式的影响 365
11.2.2 grep 的一些高级选项 365
11.2.3 基础正则表达式练习 366
11.2.4 基础正则表达式字符集合(characters) 371
11.2.5 sed工具 373
11.3 扩展正则表达式 376
11.4 文件的格式化与相关处理 377
11.4.1 格式化打印:printf 377
11.4.2 awk:好用的数据处理工具 379
11.4.3 文件比对工具 381
11.4.4 文件打印设置:pr 384
11.5 重点回顾 384
11.6 本章习题 385
11.7 参考资料与扩展阅读 386
第12章 学习shell脚本 387
12.1 什么是shell脚本 388
12.1.1 为什么要学习shell脚本 388
12.1.2 第 一个脚本的编写与执行 389
12.1.3 建立shell脚本的良好编写习惯 391
12.2 简单的shell脚本练习 392
12.2.1 简单范例 392
12.2.2 脚本的执行方式差异(source、sh script、./script) 394
12.3 善用判断式 395
12.3.1 利用test命令的测试功能 395
12.3.2 利用判断符号[ ] 397
12.3.3 shell脚本的默认变量($0、$1...) 399
12.4 条件判断式 400
12.4.1 利用if…then 401
12.4.2 利用case…esac判断 405
12.4.3 利用function功能 406
12.5 循环(loop) 408
12.5.1 while do done、until do done(不定循环) 408
12.5.2 for...do...done(固定循环) 409
12.5.3 for...do...done的数值处理 411
12.5.4 搭配随机数与数组的实验 412
12.6 shell脚本的跟踪与调试 413
12.7 重点回顾 414
12.8 本章习题 415
第四部分 Linux使用者管理
第13章 Linux账号管理与ACL权限设置 417
13.1 Linux的账号与用户组 418
13.1.1 用户标识符:UID与GID 418
13.1.2 用户账号 419
13.1.3 关于用户组:有效与初始用户组, groups, newgr 423
13.2 账号管理 426
13.2.1 新增与删除用户:useradd、相关配置文件、passwd、usermod、userdel 426
13.2.2 用户功能 434
13.2.3 新增与删除用户组 437
13.2.4 账号管理实例 438
13.2.5 使用外部身份认证系统 439
13.3 主机的详细权限规划:ACL的使用 440
13.3.1 什么是ACL与如何支持启动ACL 440
13.3.2 ACL的设置技巧:getfacl、setfacl 441
13.4 用户身份切换 444
13.4.1 su 445
13.4.2 sudo 446
13.5 用户的特殊shell与PAM模块 450
13.5.1 特殊的shell,/sbin/nologin 451
13.5.2 PAM模块简介 451
13.5.3 PAM模块设置语法 452
13.5.4 常用模块简介 454
13.5.5 其他相关文件 456
13.6 Linux主机上的用户信息传递 457
13.6.1 查询用户:w、who、last、lastlog 457
13.6.2 用户对谈:write、mesg、wall 458
13.6.3 用户邮箱:mail 459
13.7 CentOS 7环境下大量创建账号的方法 460
13.7.1 一些账号相关的检查工具 460
13.7.2 大量创建账号模板(适用passwd --stdin选项) 461
13.8 重点回顾 462
13.9 本章习题 463
13.10 参考资料与扩展阅读 464
第14章 磁盘配额(Quota)与高级文件系统管理 465
14.1 磁盘配额(Quota)的应用与实践 466
14.1.1 什么是磁盘配额 466
14.1.2 一个xfs文件系统的磁盘配额实践范例 468
14.1.3 实践磁盘配额流程-1:文件系统的支持与查看 469
14.1.4 实践磁盘配额流程-2:查看磁盘配额报告数据 469
14.1.5 实践磁盘配额流程-3:限制值设置方式 470
14.1.6 实践磁盘配额流程-4:project的限制(针对目录限制)(Optional) 471
14.1.7 xfs磁盘配额的管理与额外命令对照表 473
14.1.8 不修改既有系统的磁盘配额实例 475
14.2 软件磁盘阵列(Software RAID) 475
14.2.1 什么是RAID 475
14.2.2 硬件RAID,软件RAID 479
14.2.3 软件磁盘阵列的设置 479
14.2.4 模拟RAID错误的恢复模式 482
14.2.5 开机自动启动RAID并自动挂载 483
14.2.6 关闭软件RAID(重要) 484
14.3 逻辑卷管理器(Logical Volume Manager) 484
14.3.1 什么是LVM:PV、PE、VG、LV的意义 485
14.3.2 LVM实践流程 486
14.3.3 放大LV容量 490
14.3.4 使用LVM thin Volume让LVM动态自动调整磁盘使用率 492
14.3.5 LVM的LV磁盘快照 493
14.3.6 LVM相关命令集合与LVM的关闭 496
14.4 重点回顾 497
14.5 本章习题 498
14.6 参考资料与扩展阅读 499
第15章 计划任务(crontab) 500
15.1 什么是计划任务 501
15.1.1 Linux计划任务的种类:at、cron 501
15.1.2 CentOS Linux系统上常见的例行性工作 501
15.2 仅执行一次的计划任务 502
15.2.1 atd的启动与at运行的方式 502
15.2.2 实际运行单一计划任务 503
15.3 循环执行的计划任务 506
15.3.1 用户的设置 506
15.3.2 系统的配置文件:/etc/crontab、/etc/cron.d/* 508
15.3.3 一些注意事项 510
15.4 可唤醒停机期间的工作任务 511
15.4.1 什么是anacron 512
15.4.2 anacron与/etc/anacrontab 512
15.5 重点回顾 514
15.6 本章习题 514
第16章 进程管理与SELinux初探 515
16.1 什么是进程(process) 516
16.1.1 进程与程序(process & program) 516
16.1.2 Linux的多人多任务环境 518
16.2 任务管理(job control) 520
16.2.1 什么是任务管理 520
16.2.2 job control的管理 520
16.2.3 脱机管理问题 523
16.3 进程管理 524
16.3.1 查看进程 524
16.3.2 进程的管理 530
16.3.3 关于进程的执行顺序 531
16.3.4 查看系统资源信息 533
16.4 特殊文件与进程 538
16.4.1 具有SUID/SGID权限的命令执行状态 538
16.4.2 /proc/* 代表的意义 539
16.4.3 查询已使用文件或已执行进程使用的文件 540
16.5 SELinux初探 543
16.5.1 什么是SELinux 543
16.5.2 SELinux的运行模式 544
16.5.3 SELinux 3种模式的启动、关闭与查看 548
16.5.4 SELinux策略内的规则管理 550
16.5.5 SELinux安全上下文的修改 552
16.5.6 一个网络服务案例及日志文件协助 554
16.6 重点回顾 560
16.7 本章习题 561
16.8 参考资料与扩展阅读 561
第五部分 Linux系统管理员
第17章 认识系统服务(daemon) 563
17.1 什么是daemon与服务(service) 564
17.1.1 早期System V的init管理操作中daemon的主要分类(Optional) 564
17.1.2 systemd使用的unit分类 566
17.2 通过systemctl管理服务 568
17.2.1 通过systemctl管理单一服务(service unit)的启动/开机启动与查看状态 568
17.2.2 通过systemctl查看系统上所有的服务 571
17.2.3 通过systemctl管理不同的操作环境(target unit) 572
17.2.4 通过systemctl分析各服务之间的依赖性 574
17.2.5 与systemd的daemon运行过程相关的目录简介 575
17.2.6 关闭网络服务 577
17.3 systemctl针对service类型的配置文件 578
17.3.1 systemctl配置文件相关目录简介 578
17.3.2 systemctl配置文件的设置项目简介 578
17.3.3 两个vsftpd运行的实例 581
17.3.4 多重的重复设置方式:以getty为例 582
17.3.5 自己的服务自己做 585
17.4 systemctl针对timer的配置文件 585
17.5 CentOS 7.x默认启动的服务概要 588
17.6 重点回顾 591
17.7 本章习题 591
17.8 参考资料与扩展阅读 593
第18章 认识与分析日志文件 594
18.1 什么是日志文件 595
18.1.1 CentOS 7日志文件简易说明 595
18.1.2 日志文件内容的一般格式 597
18.2 rsyslog.service:记录日志文件的服务 598
18.2.1 rsyslog.service的配置文件:/etc/rsyslog.conf 598
18.2.2 日志文件的安全性设置 603
18.2.3 日志文件服务器的设置 604
18.3 日志文件的轮循(logrotate) 605
18.3.1 logrotate的配置文件 605
18.3.2 实际测试logrotate的操作 608
18.3.3 自定义日志文件的轮循功能 609
18.4 systemd-journald.service简介 610
18.4.1 使用journalctl查看登录信息 611
18.4.2 logger命令的应用 612
18.4.3 保存journal的方式 612
18.5 分析日志文件 613
18.5.1 CentOS默认提供的logwatch 613
18.5.2 鸟哥自己写的日志文件分析工具 615
18.6 重点回顾 616
18.7 本章习题 617
18.8 参考资料与扩展阅读 617
第19章 启动流程、模块管理与Loader 618
19.1 Linux的启动流程分析 619
19.1.1 启动流程一览 619
19.1.2 BIOS、boot loader与kernel加载 619
19.1.3 第 一个程序systemd及使用default.target进入启动程序分析 625
19.1.4 systemd执行sysinit.target初始化系统、basic.target准备系统 627
19.1.5 systemd启动multi-user.target下的服务 628
19.1.6 systemd启动graphical.target下面的服务 629
19.1.7 启动过程会用到的主要配置文件 629
19.2 内核与内核模块 630
19.2.1 内核模块与依赖性 631
19.2.2 查看内核模块 632
19.2.3 内核模块的加载与删除 632
19.2.4 内核模块的额外参数设置:/etc/modprobe.d/*conf 633
19.3 Boot Loader:Grub2 634
19.3.1 boot loader的两个stage 634
19.3.2 grub2的配置文件/boot/grub2/grub.cfg初探 635
19.3.3 grub2配置文件维护/etc/default/grub与/etc/grub.d 638
19.3.4 initramfs的重要性与建立新initramfs文件 642
19.3.5 测试与安装grub2 643
19.3.6 启动前的额外功能修改 645
19.3.7 关于启动画面与终端画面的图形显示方式 647
19.3.8 为个别选项设置密码 647
19.4 启动过程的问题解决 650
19.4.1 忘记root密码的解决之道 650
19.4.2 直接启动就以root执行bash的方法 652
19.4.3 因文件系统错误而无法启动 652
19.5 重点回顾 653
19.6 本章习题 653
19.7 参考资料与扩展阅读 654
第20章 基础系统设置与备份策略 655
20.1 系统基本设置 656
20.1.1 网络设置(手动设置与DHCP自动获取) 656
20.1.2 日期与时间设置 659
20.1.3 语系设置 660
20.1.4 防火墙简易设置 661
20.2 服务器硬件数据的收集 663
20.2.1 使用dmidecode查看硬件设备 663
20.2.2 硬件资源的收集与分析 664
20.2.3 了解磁盘的健康状态 667
20.3 备份要点 668
20.3.1 备份数据的考虑 668
20.3.2 哪些Linux数据具有备份的意义 669
20.3.3 备份用存储媒介的选择 670
20.4 备份的种类、频率与工具的选择 671
20.4.1 完整备份之累积备份(Incremental backup) 672
20.4.2 完整备份之差异备份(Differential backup) 673
20.4.3 关键数据备份 674
20.5 鸟哥的备份策略 675
20.5.1 每周系统备份的脚本 675
20.5.2 每日备份数据的脚本 676
20.5.3 远程备份的脚本 677
20.6 灾难恢复的考虑 678
20.7 重点回顾 678
20.8 本章习题 679
20.9 参考资料与扩展阅读 679
第21章 软件安装:源代码与Tarball 680
21.1 开放源码的软件安装与升级简介 681
21.1.1 什么是开放源码、编译器与可执行文件 681
21.1.2 什么是函数库 683
21.1.3 什么是make与configure 683
21.1.4 什么是Tarball的软件 684
21.1.5 如何安装与升级软件 685
21.2 使用传统程序语言进行编译的简单范例 685
21.2.1 单一程序:打印Hello World 686
21.2.2 主、子程序链接:子程序的编译 687
21.2.3 调用外部函数库:加入链接的函数库 688
21.2.4 gcc的简易用法(编译、参数与连接) 689
21.3 用make进行宏编译 689
21.3.1 为什么要用make 689
21.3.2 makefile的基本语法与变量 690
21.4 Tarball的管理与建议 692
21.4.1 使用源代码管理软件所需要的基础软件 693
21.4.2 Tarball安装的基本步骤 693
21.4.3 一般Tarball软件安装的建议事项(如何删除?升级?) 695
21.4.4 一个简单的范例、利用ntp来示范 696
21.4.5 利用patch更新源代码 697
21.5 函数库管理 699
21.5.1 动态与静态函数库 700
21.5.2 ldconfig与/etc/ld.so.conf 701
21.5.3 程序的动态函数库解析:ldd 701
21.6 校验软件正确性 702
21.7 重点回顾 703
21.8 本章习题 704
21.9 参考资料与扩展阅读 705
第22章 软件安装RPM、SRPM与YUM 706
22.1 软件管理器简介 707
22.1.1 Linux界的两大主流:RPM与DPKG 707
22.1.2 什么是RPM与SRPM 708
22.1.3 什么是i386、i586、i686、noarch、x86_64 709
22.1.4 RPM的优点 710
22.1.5 RPM属性依赖的解决方式:YUM在线升级 711
22.2 RPM软件管理程序:rpm 712
22.2.1 RPM默认安装的路径 712
22.2.2 RPM安装(install) 712
22.2.3 RPM升级与更新(upgrade/freshen) 714
22.2.4 RPM查询(query) 714
22.2.5 RPM验证与数字签名(Verify/signature) 716
22.2.6 RPM反安装与重建数据库(erase/rebuilddb) 719
22.3 YUM在线升级功能 719
22.3.1 利用YUM进行查询、安装、升级与删除功能 720
22.3.2 YUM的配置文件 723
22.3.3 YUM的软件群组功能 725
22.3.4 EPEL/ELRepo外挂软件以及自定义配置文件 726
22.3.5 全系统自动升级 728
22.3.6 管理的抉择:RPM还是Tarball 728
22.3.7 基础服务管理:以Apache为例 729
22.4 SRPM的使用:rpmbuild(Optional) 730
22.4.1 利用默认值安装SRPM文件(--rebuid/--recompile) 730
22.4.2 SRPM使用的路径与需要的软件 731
22.4.3 配置文件的主要内容(*.spec) 732
22.4.4 SRPM的编译命令(-ba/-bb) 735
22.4.5 一个打包自己软件的范例 736
22.5 重点回顾 737
22.6 本章习题 738
22.7 参考资料与扩展阅读 738
第23章 X Window设置介绍 739
23.1 什么是X Window System 740
23.1.1 X Window System的发展简史 740
23.1.2 主要组件:X Server/XClient/Window Manager/DisplayManager 741
23.1.3 X Window System的启动流程 743
23.1.4 X启动流程测试 746
23.1.5 我是否需要启用X WindowSystem 747
23.2 X Server配置文件解析与设置 748
23.2.1 解析xorg.conf设置 748
23.2.2 字体管理 751
23.2.3 显示器参数微调 753
23.3 显卡驱动程序安装范例 754
23.3.1 NVIDIA 754
23.3.2 AMD(ATI) 756
23.3.3 Intel 756
23.4 重点回顾 757
23.5 本章习题 758
23.6 参考资料与扩展阅读 758
第24章 Linux内核编译与管理 759
24.1 编译前的任务:认识内核与获取内核源代码 760
24.1.1 什么是内核(Kernel) 760
24.1.2 更新内核的目的 761
24.1.3 内核的版本 762
24.1.4 内核源代码的获取方式 763
24.1.5 内核源代码的解压缩、安装、查看 764
24.2 内核编译前的预处理与内核功能选择 765
24.2.1 硬件环境查看与内核功能要求 765
24.2.2 保持干净源代码:make mrproper 765
24.2.3 开始选择内核功能:make XXconfig 765
24.2.4 内核功能详细选项选择 767
24.3 内核的编译与安装 772
24.3.1 编译内核与内核模块 772
24.3.2 实际安装模块 773
24.3.3 开始安装新内核与多重内核选项(grub) 773
24.4 额外(单一)内核模块编译 774
24.4.1 编译前注意事项 774
24.4.2 单一模块编译 775
24.4.3 内核模块管理 777
24.5 以最新内核版本编译CentOS 7.x的内核 777
24.6 重点回顾 778
24.7 本章习题 778
24.8 参考资料与扩展阅读 778

2.2.2 鸟哥的Linux私房菜 服务器架设篇

作者序
第一篇  服务器搭建前的进修专区
第1章  搭建服务器前的准备工作 2
1.1 linux 的功能 3
1.1.1 用 linux 搭建服务器需要的能力 3
1.1.2 搭建服务器难不难呢 4
1.2 搭建服务器的基本流程 5
1.2.1 网络服务器成功连接的分析 5
1.2.2 一个常见的服务器设置案例分析 8
1.2.3 系统安全与备份处理 25
1.3 自我评估是否已经具备服务器搭建的能力 27
第2章  网络的基本概念 29
2.1 网络 30
2.1.1 什么是网络 30
2.1.2 计算机网络组成组件 32
2.1.3 计算机网络的范围 33
2.1.4 计算机网络协议:osi 七层协议 34
2.1.5 计算机网络协议:tcp/ip 37
2.2 tcp/ip 的网络接口层的相关协议 39
.2.2.1 广域网使用的设备 39
2.2.2 局域网使用的设备——以太网 40
2.2.3 以太网络的传输协议:csma/cd 42
2.2.4 mac 的封装格式 44
2.2.5 mtu(最大传输单位) 46
2.2.6 集线器、交换器与相关机制 47
2.3 tcp/ip 的网络层相关数据包与数据 49
2.3.1 ip 数据包的封装 49
2.3.2 ip 地址的组成与分级 52
2.3.3 ip 的种类与取得方式 55
2.3.4 netmask、子网与 cidr(classless interdomain routing) 57
2.3.5 路由概念 61
2.3.6 观察主机路由:route 64
2.3.7 ip 与 mac:网络接口层的 arp 与 rarp 协议 65
2.3.8 icmp 协议 66
2.4 tcp/ip 的传输层相关数据包与数据 67
2.4.1 面向连接的可靠的 tcp 协议 67
2.4.2 tcp 的三次握手 72
2.4.3 无连接的 udp 协议 73
2.4.4 网络防火墙与 osi 七层协议 74
2.5 连上 internet 前的准备事项 75
2.5.1 ip地址、主机名与dns系统 75
2.5.2 连上 internet 的必要网络参数 76
2.6 重点回顾 77
2.7 参考数据与延伸阅读 78
第3章  局域网架构简介 79
3.1 局域网的连接 80
3.1.1 局域网的布线规划 80
3.1.2 网络设备选购建议 84
3.2 本书使用的内部连接网络参数与通信协议 88
3.2.1 网络联机参数与通信协议 88
3.2.2 windows 个人计算机网络配置范例 90
第4章  连接 internet 93
4.1 linux 连接 internet 前的注意事项 94
4.1.1 linux 的网卡 94
4.1.2 编译网卡驱动程序(option) 96
4.1.3 linux 网络相关配置文件 98
4.2 连接 internet 的设置方法 100
4.2.1 手动配置固定 ip 参数 100
4.2.2 自动取得 ip 参数(dhcp 方法,适用 cable modem、ip 路由器的环境) 105
4.2.3 adsl 拨号上网(适用 adsl 拨号以及光纤接入) 106
4.3 无线网络——以笔记本电脑为例 111
4.3.1 无线网络所需要的硬件:ap、无线网卡 111
4.3.2 关于 ap 的设置:网络安全方面 113
4.3.3 利用无线网卡开始连接 115
4.4 常见问题说明 118
4.4.1 内部网络使用某些服务(如 ftp、pop3)所遇到的连接延迟问题 118
4.4.2 域名无法解析的问题 120
4.4.3 默认网关的问题 120
4.5 重点回顾 121
4.6 参考数据与延伸阅读 121
第5章  linux 中常用的网络命令 122
5.1 设置网络参数的命令 123
5.1.1  手动/自动配置ip 参数与启动/关闭网络接口:ifconfig、ifup、ifdown 123
5.1.2 修改路由:route 126
5.1.3 网络参数综合命令:ip 128
5.1.4 无线网络:iwlist, iwconfig 134
5.1.5 dhcp客户端命令:dhclient 134
5.2 网络排错与查看命令 134
5.2.1 两台主机的两点沟通:ping 134
5.2.2 两主机间各节点分析:traceroute 137
5.2.3 查看本机的网络连接与后门:netstat 138
5.2.4 检测主机名与 ip 的对应:host、nslookup 141
5.3 远程连接命令与即时通信软件 143
5.3.1 终端机与 bbs 连接:telnet 143
5.3.2 ftp 连接软件:ftp、lftp 144
5.3.3 图形接口的即时通信软件:pidgin(gaim 的延伸) 147
5.4 文字接口网页浏览 150
5.4.1 文字浏览器:links 150
5.4.2 文字接口下载器:wget 152
5.5 数据包捕获功能 153
5.5.1 文字接口数据包捕获器:tcpdump 153
5.5.2 图形接口数据包捕获器:wireshark 157
5.5.3 任意启动 tcp/udp 数据包的端口连接:nc、netcat 159
5.6 重点回顾 160
5.7 参考数据与延伸阅读 161
第6章  linux 网络排错 162
6.1 无法连接网络的原因分析 163
6.1.1 硬件问题:网线、网络设备、网络布线等 163
6.1.2 软件问题:ip 参数设置、路由设置、服务器与防火墙设置等 165
6.1.3 问题的处理 165
6.2 处理流程 166
6.2.1 步骤1:网卡工作确认 166
6.2.2 步骤2:局域网内各项连接设备检测 167
6.2.3 步骤3:取得正确的 ip 参数 168
6.2.4 步骤4:确认路由表的规则 169
6.2.5 步骤5:主机名与 ip 查询的 dns 错误 170
6.2.6 步骤6:linux 的 nat 服务器或 ip 路由器出问题 171
6.2.7 步骤7:internet 的问题 171
6.2.8 步骤8:服务器的问题 171
6.3 参考数据与延伸阅读 172
第二篇 主机的简易安全防护措施
第7章  网络安全与主机基本防护:限制端口、网络升级与selinux 174
7.1 网络数据包连接进入主机的流程 175
7.1.1 数据包进入主机的流程 175
7.1.2 常见的攻击手法与相关保护 177
7.1.3 主机能执行的保护操作:软件更新、减少网络服务、 启动 selinux 182
7.2 网络自动升级软件 184
7.2.1 如何进行软件升级 184
7.2.2 centos 的 yum 软件更新、镜像站点使用的原理 186
7.2.3 yum 的功能:安装软件组、全系统更新 187
7.2.4 挑选特定的镜像站点:修改 yum 配置文件与清除 yum 缓存 193
7.3 限制连接端口(port) 196
7.3.1 什么是port 197
7.3.2 端口的查看:netstat、nmap 198
7.3.3 端口与服务的启动/关闭及开机时状态设定 201
7.3.4 安全性考虑——关闭网络服务端口 205
7.4 selinux 管理原则 206
7.4.1 selinux 的工作模式 206
7.4.2 selinux 的启动、关闭与查看 210
7.4.3 selinux type 的修改 212
7.4.4 selinux 策略内的规则布尔值修订 214
7.4.5 selinux 日志文件记录所需的服务 217
7.5 被攻击后的主机修复工作 221
7.5.1 网管人员应具备的技能 221
7.5.2 主机受攻击后恢复的工作流程 223
7.6 重点回顾 225
7.7 参考数据与延伸阅读 225
第8章  路由的概念与路由器设置 226
8.1 路由 227
8.1.1 路由表产生的类型 227
8.1.2 一个网卡绑多个 ip:ip alias 的测试用途 229
8.1.3 重复路由的问题 230
8.2 路由器配置 231
8.2.1 什么是路由器与 ip 路由器 231
8.2.2 何时需要路由器 233
8.2.3 静态路由的路由器 234
8.3 动态路由器架设 239
8.4 特殊状况——路由器两边界面是同一个ip网段:arp proxy 245
8.5 重点回顾 249
8.6 参考数据与延伸阅读 250
第9章  防火墙与 nat 服务器 251
9.1 认识防火墙 252
9.1.1 关于本章的一些提醒事项 252
9.1.2 为何需要防火墙 253
9.1.3 linux 系统上防火墙的主要类别 253
9.1.4 防火墙的一般网络布线示意 255
9.1.5  防火墙的使用限制 258
9.2 tcp wrappers 259
9.2.1 哪些服务有支持 259
9.2.2 /etc/hosts.{allowdeny} 的设置方式 261
9.3 linux 的数据包过滤软件:iptables 262
9.3.1 不同 linux 内核版本的防火墙软件 262
9.3.2 数据包进入流程:规则顺序的重要性 263
9.3.3 iptables 的表格(table)与链(chain) 264
9.3.4 本机的 iptables 语法 267
9.3.5 ipv4 的内核管理功能:/proc/sys/net/ipv4/* 278
9.4 设置单机防火墙的一个实例 281
9.4.1 规则草拟 281
9.4.2 实际设置 282
9.5 nat 服务器的设置 286
9.5.1 什么是 nat? snat? dnat? 287
9.5.2 最简单的 nat 服务器:ip 分享功能 290
9.5.3 iptables 的额外内核模块功能 292
9.5.4 在防火墙后端的网络服务器上做dnat 设置 292
9.6 重点回顾 293
9.7 参考数据与延伸阅读 294
第10章  申请合法的主机名 295
10.1 为何需要主机名 296
10.1.1 主机名的由来 296
10.1.2 重点在合法授权 297
10.1.3 申请静态还是动态 dns 主机名 298
10.2 注册一个合法的主机名 299
10.2.1 静态 dns 主机名注册(以 hinet 为例) 299
10.2.2 动态 dns 主机名注册(以 no-ip 为例) 301
10.3 重点回顾 306
10.4 参考数据与延伸阅读 307
第三篇  局域网内常见服务器的搭建
第11章  远程连接服务器 ssh / xdmcp / vnc /xrdp 310
11.1 远程连接服务器 311
11.1.1 什么是远程连接服务器 311
11.1.2 有哪些可供登录的类型 312
11.2 文字接口连接服务器: ssh 服务器 313
11.2.1 连接加密技术简介 314
11.2.2 启动 ssh 服务 317
11.2.3  ssh 客户端连接程序——linux 用户 317
11.2.4  ssh 客户端连接程序——windows 用户 324
11.2.5  sshd 服务器详细配置 328
11.2.6 制作不用密码可立即登录的ssh用户 332
11.2.7 简易安全设置 335
11.3 最原始图形接口:xdmcp服务的启用 337
11.3.1  x window 的 server/client 架构与各组件 338
11.3.2 设定 gdm 的 xdmcp 服务 341
11.3.3 用户系统为 linux 的登录方式 343
11.3.4 用户系统为 windows 的登录方式: xming 345
11.4 华丽的图形接口:vnc 服务器 348
11.4.1 默认的 vnc 服务器 348
11.4.2  vnc 的客户端连接软件 350
11.4.3  vnc 搭配本机的 xdmcp 画面 352
11.4.4 开机就启动 vnc server 的方法 354
11.4.5 同步的 vnc :可以通过图示同步教学 354
11.5 仿真的远程桌面系统:xrdp 服务器 355
11.6  ssh 服务器的高级应用 357
11.6.1 在非标准端口启动 ssh(非 port 22) 357
11.6.2 以 rsync 进行同步镜像备份 359
11.6.3 通过ssh通道加密原本无加密的服务 362
11.6.4 以ssh通道配合 x server 传递图形界面 363
11.7 重点回顾 367
11.8 参考数据与延伸阅读 368
第12章  网络参数管理者:dhcp服务器 369
12.1 dhcp 的工作原理 370
12.1.1 dhcp 服务器的用途 370
12.1.2 dhcp 协议的工作方式 371
12.1.3 何时需要架设 dhcp 服务器 375
12.2 dhcp 服务器端的配置 376
12.2.1 所需软件与文件结构 376
12.2.2 主要配置文件 /etc/dhcp/dhcpd.conf 的语法 377
12.2.3 一个局域网的 dhcp 服务器设置案例 379
12.2.4 dhcp 服务器的启动与观察 380
12.2.5 内部主机的 ip 对应 382
12.3 dhcp 客户端的设置 382
12.3.1 客户端是 linux 382
12.3.2 客户端是 windows 384
12.4 dhcp 服务器端的高级查看与使用 387
12.4.1 检查租约文件 387
12.4.2 让大量 pc 都具有固定 ip 的脚本 387
12.4.3 使用 ether-wake 实现远程自动开机(remote boot) 388
12.4.4 dhcp 与 dns 的关系 389
12.5 重点回顾 390
12.6 参考数据与延伸阅读 391
第13章  文件服务器之一:nfs 服务器 392
13.1 nfs的由来与功能 393
13.1.1 什么是 nfs(network file system) 393
13.1.2 什么是 rpc(remote procedure call) 394
13.1.3 nfs 启动的 rpc daemons 395
13.1.4 nfs 的文件访问权限 396
13.2 nfs server 端的配置 397
13.2.1 所需要的软件 398
13.2.2 nfs 的软件结构 398
13.2.3 /etc/exports 配置文件的语法与参数 399
13.2.4 启动 nfs 404
13.2.5 nfs 的连接查看 406
13.2.6 nfs 的安全性 408
13.3 nfs 客户端的设置 410
13.3.1 手动挂载 nfs 服务器共享的资源 410
13.3.2 客户端可处理的挂载参数与开机挂载 411
13.3.3 无法挂载的原因分析 414
13.3.4 自动挂载 autofs 的使用 415
13.4 案例演练 418
13.5 重点回顾 420
13.6 参考数据与延伸阅读 420
第14章  账号管理:nis 服务器 421
14.1 nis 的由来与功能 422
14.1.1 nis 的主要功能:管理账号信息 422
14.1.2 nis 的工作流程:通过 rpc 服务 423
14.2 nis server 端的设置 425
14.2.1 所需要的软件 425
14.2.2 nis 服务器相关的配置文件 425
14.2.3 一个实际操作案例 426
14.2.4 nis server 的设置与启动 426
14.2.5 防火墙设置 431
14.3 nis client 端的设置 431
14.3.1 nis client 所需的软件与软件结构 432
14.3.2 nis client 的设置与启动 432
14.3.3 nis client 端的验证:yptest、ypwhich、ypcat 435
14.3.4 用户参数修改:yppasswd、ypchfn、ypchsh 437
14.4 nis 搭配 nfs 的设置在群集计算机上的应用 438
14.5 重点回顾 441
14.6 参考数据与延伸阅读 442
第15章  时间服务器:ntp 服务器 443
15.1 关于时区与网络校时的通信协议 444
15.1.1 什么是时区?全球有多少时区?gmt 在哪个时区? 444
15.1.2 什么是夏令时(daylight saving time) 446
15.1.3 coordinated universal time(utc)与系统时间的误差 447
15.1.4 ntp 通信协议 447
15.1.5 ntp 服务器的层次概念 448
15.2 ntp 服务器的安装与设置 449
15.2.1 所需软件与软件结构 449
15.2.2 主要配置文件 ntp.conf 的处理 451
15.2.3 ntp 的启动与观察 453
15.2.4 安全性设置 455
15.3 客户端的时间更新方式 455
15.3.1 linux 手动校时工作:date、hwclock 455
15.3.2 linux 的网络校时 456
15.3.3 windows 的网络校时 457
15.4 重点回顾 459
15.5 参考数据与延伸阅读 459
第16章  文件服务器之二:samba 服务器 460
16.1 什么是 samba 461
16.1.1 samba 的发展历史与名称的由来 461
16.1.2 samba 常见的应用 462
16.1.3 samba 使用的 netbios 通信协议 463
16.1.4 samba 使用的 daemons 464
16.1.5 连接模式的介绍(peer/peer、domain model) 465
16.2 samba 服务器的基础设置 467
16.2.1 samba所需软件及其软件结构 467
16.2.2 基础的网上邻居共享流程与 smb.conf 的常用设置项目 469
16.2.3 不需密码的共享(security = share,纯测试) 474
16.2.4 需账号密码才可登录的共享(security = user) 479
16.2.5 设置成为打印机服务器(cups 系统) 486
16.2.6 安全性的议题与管理 496
16.2.7 主机安装时的规划与中文扇区挂载 499
16.3 samba客户端软件功能 500
16.3.1 windows 系统的使用 501
16.3.2 linux 系统的使用 505
16.4 以 pdc 服务器提供账号管理 509
16.4.1 让 samba 管理网络用户的一个实际案例 509
16.4.2 pdc 服务器的搭建 511
16.4.3 wimdows xp pro. 的客户端 515
16.4.4 windows 7 的客户端 519
16.4.5 pdc 问题的克服 520
16.5 服务器简单维护与管理 521
16.5.1 服务器相关问题克服 521
16.5.2 让用户修改samba密码同时同步更新 /etc/shadow 密码 522
16.5.3 利用 acl 配合单一用户时的管理 523
16.6 重点回顾 524
16.7 参考数据与延伸阅读 524
第17章  局域网控制者:proxy 服务器 526
17.1 什么是代理服务器 527
17.1.1 什么是代理服务器 527
17.1.2 代理服务器的工作流程 528
17.1.3 上层代理服务器 529
17.1.4 代理服务器与 nat 服务器的差异 531
17.1.5 搭建代理服务器的用途与优缺点 531
17.2 proxy 服务器的配置基础 533
17.2.1 proxy 所需的 squid 软件及其软件结构 533
17.2.2 centos 默认的 squid 设置 534
17.2.3 管理信任来源(如局域网)与目标(如恶意网站):acl 与 http_access 的使用 539
17.2.4 其他额外的功能项目 542
17.2.5 安全性设置:防火墙、selinux 与黑名单文件 544
17.3 客户端的使用与测试 545
17.3.1 浏览器的设置:firefox & ie 545
17.3.2 测试proxy 失败的画面 548
17.4 服务器的其他应用设定 549
17.4.1 上层 proxy 与获取数据分流的设定 549
17.4.2 proxy 服务放在 nat 服务器上:透明代理(transparent proxy) 551
17.4.3 proxy 的认证设置 553
17.4.4 末端日志分析:sarg 555
17.5 重点回顾 557
17.6 参考数据与延伸阅读 558
第18章  网络驱动器设备:iscsi 服务器 559
18.1 网络文件系统还是网络驱动器 560
18.1.1 nas 与 san 560
18.1.2 iscsi接口 561
18.1.3 各组件相关性 562
18.2 iscsi target 的设置 564
18.2.1 所需软件与软件结构 564
18.2.2 iscsi target 的实际设置 565
18.3 iscsi initiator 的设置 570
18.3.1 所需软件与软件结构 570
18.3.2 iscsi initiator 的实际设置 570
18.3.3 一个测试范例 574
18.4 重点回顾 576
18.5 参考数据与延伸阅读 577
第四篇  常见因特网服务器的搭建
第19章  主机名控制者:dns 服务器 580
19.1 什么是 dns 581
19.1.1 用网络主机名取得 ip 的历史渊源 581
19.1.2 dns 的主机名对应 ip 的查询流程 584
19.1.3 合法 dns 的关键:申请区域查询授权 590
19.1.4 主机名交由 isp 代管还是自己设置 dns 服务器 591
19.1.5 dns 数据库的记录:正解、反解、zone 的意义 592
19.1.6 dns 数据库的类型:hint、master/slave 架构 594
19.2 client 端的设置 596
19.2.1 相关配置文件 596
19.2.2 dns 的正、反解查询命令:host、nslookup、dig 597
19.2.3 查询域管理者相关信息:whois 602
19.3  dns 服务器的软件、种类与caching only dns服务器设置 604
19.3.1 搭建 dns 所需要的软件 604
19.3.2 bind 的默认路径设置与 chroot 604
19.3.3 单纯的 cache-only dns 服务器与 forwarding 功能 605
19.4 dns 服务器的详细设置 611
19.4.1 正解文件记录的数据(resource record,rr) 612
19.4.2 反解文件记录的 rr 数据 616
19.4.3 步骤一:dns 的环境规划 617
19.4.4 步骤二:主配置文件 /etc/named.conf 的设置 618
19.4.5 步骤三:最上层 . (root) 数据库文件的设置 620
19.4.6 步骤四:正解数据库文件的设置 620
19.4.7 步骤五:反解数据库文件的设置 622
19.4.8 步骤六:dns 的启动、查看与防火墙 623
19.4.9 步骤七:测试与数据库更新 624
19.5 协同工作的 dns:slave dns 及子域授权设定 626
19.5.1 master dns 权限的开放 626
19.5.2 slave dns 的设置与数据库权限问题 628
19.5.3 配置子域 dns 服务器:子域授权课题 630
19.5.4 依不同接口给予不同的 dns 主机名:view 功能的应用 632
19.6 dns 服务器的高级设定 635
19.6.1 架设一个合法授权的 dns 服务器 635
19.6.2 lame server 的问题 637
19.6.3 利用 rndc 命令管理 dns 服务器 638
19.6.4 搭建动态 dns 服务器:让你成为 isp 642
19.7 重点回顾 645
19.8 参考数据与延伸阅读 646
第20章  www 服务器 647
20.1 www的简史、资源以及服务器软件 648
20.1.1 www 的简史、html 与标准制订(w3c) 648
20.1.2 www 服务器与浏览器所提供的资源定位(url) 651
20.1.3  www 服务器的类型:系统、平台、数据库与程序(lamp) 653
20.1.4 https:加密的网页数据(ssl)及第三方证书机构 655
20.1.5 客户端常见的浏览器 656
20.2 www(lamp)服务器基本配置 657
20.2.1 lamp 所需软件与其结构 657
20.2.2 apache 的基本设定 660
20.2.3 php 的默认参数修改 668
20.2.4 启动 www 服务与测试 php 模块 670
20.2.5 mysql 的基本设定 672
20.2.6 防火墙设置与 selinux规则的放行 676
20.2.7 开始网页设计及安装架站软件,如 phpbb3 677
20.3 apache 服务器的高级设定 678
20.3.1 启动用户的个人网站(权限是重点) 678
20.3.2 启动某个目录的 cgi(perl)程序执行权限 680
20.3.3 找不到网页时的显示信息通知 681
20.3.4 浏览权限的设定操作(order、limit) 683
20.3.5 服务器状态说明网页 686
20.3.6 .htaccess 与认证网页设定 687
20.3.7 虚拟主机的设定(重要!) 691
20.4 日志文件分析以及 php 强化模块 694
20.4.1 php 强化模块(eaccelerator)与 apache 简易性能测试 694
20.4.2 syslog 与 logrotate 697
20.4.3 日志文件分析软件:webalizer 698
20.4.4 日志文件分析软件:awstats 700
20.5 建立连接加密网站(https)及防整站下载脚本 702
20.5.1 ssl 所需软件与证书文件及默认的 https 702
20.5.2 拥有自制证书的https 704
20.5.3 将加密首页与非加密首页分离 706
20.5.4 防整站下载软件 707
20.6 重点回顾 708
20.7 参考数据与延伸阅读 709
第21章  文件服务器之三:ftp 服务器 710
21.1 ftp 的数据传输原理 711
21.1.1 ftp 功能简介 711
21.1.2 ftp 的工作流程与使用到的端口 712
21.1.3 客户端选择被动式连接模式 714
21.1.4 ftp 的安全性问题与替代方案 716
21.1.5 开放什么身份的用户登录 716
21.2 vsftpd 服务器基础设置 718
21.2.1 为何使用 vsftpd 718
21.2.2 所需要的软件以及软件结构 719
21.2.3 vsftpd.conf 配置值说明 721
21.2.4 vsftpd 启动的模式 726
21.2.5 centos 的 vsftpd 默认值 727
21.2.6 针对实体账号的设定 729
21.2.7 仅有匿名登录的相关设置 734
21.2.8 防火墙设置 738
21.2.9 常见问题与解决之道 739
21.3 客户端的图形接口 ftp 连接软件 740
21.3.1 filezilla 740
21.3.2 通过浏览器取得 ftp 连接 744
21.4 让 vsftpd 增加 ssl 的加密功能 744
21.5 重点回顾 747
21.6 参考数据与延伸阅读 748
第22章  邮件服务器:postfix 749
22.1 邮件服务器的功能与工作原理 750
22.1.1 电子邮件的功能与问题 750
22.1.2 mail server 与 dns 之间的关系 751
22.1.3 邮件传输所需要的组件(mta、mua、mda)以及相关协议 754
22.1.4 用户收信时服务器端所提供的相关协议: mra 757
22.1.5 relay 与认证机制的重要性 759
22.1.6 电子邮件的数据内容 760
22.2 mta 服务器:postfix基础设定 761
22.2.1 postfix 的开发 761
22.2.2 所需要的软件与软件结构 762
22.2.3 一个邮件服务器的设定案例 764
22.2.4 让 postfix 可监听 internet 来收发邮件 764
22.2.5 邮件发送流程与收信、relay 等重要概念 767
22.2.6 设定邮件主机权限与过滤机制:/etc/postfix/access 770
22.2.7 设定邮件别名: /etc/aliases、~/.forward 770
22.2.8 查看邮件队列信息:postqueue、mailq 773
22.2.9 防火墙设置 775
22.3 mra 服务器:dovecot 设定 775
22.3.1 基础的 pop3/imap 设定 775
22.3.2 加密的 pop3s/imaps 设定 776
22.3.3 防火墙设置 777
22.4 mua 软件:客户端的收发邮件软件 777
22.4.1 linux mail 778
22.4.2 linux mutt 781
22.4.3 好用的跨平台(windows/linux x)软件:thunderbird 784
22.5 邮件服务器的高级设定 788
22.5.1 邮件过滤一:用 postgrey 进行非正规mail server 的垃圾邮件过滤 788
22.5.2 邮件过滤二:关于黑名单的过滤机制 792
22.5.3 邮件过滤三:基础的邮件过滤机制 793
22.5.4 非信任来源的 relay:开放 smtp 身份认证 795
22.5.5 非固定 ip 邮件服务器的福音:relayhost 799
22.5.6 其他设置小技巧 800
22.6 重点回顾 803
22.7 参考数据与延伸阅读 804