第1章 Linux系统概述 1
1.1 Linux系统发展概况 1
1.1.1 Linux的起源 1
1.1.2 GNU、FSF、开放源码与Linux的发展 2
1.2 Linux的特点 2
1.3 Linux的版本 4
1.3.1 狭义Linux 4
1.3.2 广义Linux 4
1.4 Linux的应用与前景 6
1.4.1 桌面应用 6
1.4.2 网络服务器 7
1.4.3 嵌入式系统 7
1.4.4 集群计算机 8
1.4.5 Linux的发展前景 8
第2章 系统引导程序 9
2.1 启动引导器 9
2.1.1 GRUB基本配置 9
2.1.2 GRUB多系统引导配置实例 11
2.2 Linux系统的启动过程及相关配置文件 12
2.2.1 Linux计算机系统启动过程 12
2.2.2 系统启动配置文件 14
2.2.3 服务脚本文件 16
2.3 启动过程故障分析及修复 18
2.3.1 单用户模式 18
2.3.2 修复文件系统 20
2.3.3 使用GRUB程序修复系统启动 20
2.3.4 系统启动修复实例 22
第3章 高级磁盘管理 24
3.1 文件系统概述 24
3.1.1 磁盘管理基础知识 24
3.1.2 磁盘分区、格式化及磁盘配额 24
3.2 Linux交换空间管理 25
3.2.1 交换空间工作原理 25
3.2.2 交换分区创建及管理 26
3.2.3 交换文件创建及管理 28
3.3 LVM逻辑卷管理 29
3.3.1 LVM工作原理 29
3.3.2 LVM名词与术语 29
3.3.3 LVM配置实例 31
3.4 RAID磁盘冗余阵列管理 34
3.4.1 RAID种类及其工作原理 35
3.4.2 RAID名词与术语 38
3.5 RAID配置实例 40
3.5.1 mdadm工具 40
3.5.2 划分硬盘分区 41
3.5.3 配置RAID 0 42
3.5.4 配置RAID 1 44
3.5.5 配置RAID 5 46
第4章 日志分析及备份管理 51
4.1 日志子系统 51
4.1.1 日志分析 51
4.1.2 日志查看方法 52
4.1.3 常用日志分析工具 55
4.1.4 日志定制 55
4.1.5 日志循环管理 56
4.2 系统备份 57
4.2.1 备份的重要性 58
4.2.2 备份策略 59
4.2.3 备份介质的选择 59
4.3 备份技术及分类 60
4.3.1 完全备份 60
4.3.2 增量备份 60
4.3.3 差分备份 61
4.4 备份内容 61
4.5 常用备份工具 62
4.5.1 Xtar 62
4.5.2 KDat 62
4.5.3 taper 63
4.5.4 tar 63
4.5.5 cpio 63
4.5.6 dump和restore 64
4.5.7 dd 65
4.5.8 cp 65
第5章 系统及环境管理 67
5.1 系统性能指标 67
5.2 影响性能的因素 67
5.2.1 使用磁盘阵列提速 67
5.2.2 swap分区优化设置 68
5.2.3 sysctl文件设置 69
5.3 性能分析工具 70
5.3.1 vmstat工具 70
5.3.2 top工具 72
5.3.3 mpstat工具 74
5.3.4 iostat工具 75
5.3.5 sar测试工具 76
5.3.6 ps工具 78
5.3.7 uptime工具 79
5.3.8 free命令 79
5.3.9 netstat工具 80
5.3.10 ipcs工具 80
5.3.11 GlancePlus工具 81
5.4 性能优化的思路 82
第6章 Shell编程 83
6.1 Shell概述 83
6.1.1 什么是Shell 83
6.1.2 Shell的作用 83
6.1.3 不同类型的Shell 86
6.2 Shell流程控制 87
6.2.1 测试命令 87
6.2.2 if条件语句 88
6.2.3 case条件选择 88
6.2.4 for循环 89
6.2.5 while和until循环 89
6.2.6 无条件控制语句break和continue 90
6.2.7 函数定义 90
6.2.8 命令分组 90
6.2.9 信号 90
6.3 Shell函数与函数调用 91
6.3.1 在脚本中使用函数 92
6.3.2 向函数传递参数 93
6.3.3 函数返回值 93
6.3.4 函数返回值测试 93
6.3.5 在Shell中使用函数 94
6.3.6 创建函数文件 94
6.3.7 定位文件 94
6.3.8 检查载入函数 95
6.4 awk工具和sed工具 95
6.4.1 awk工具 95
6.4.2 sed工具 99
6.5 Shell脚本实例 102
6.5.1 清除/var/log下的日志文件 102
6.5.2 一个改良的清除脚本 102
6.5.3 一个增强的和广义的删除日志文件的脚本 102
第7章 内核升级及其配置 104
7.1 内核概述 104
7.2 基于2.6.x内核的配置 105
7.2.1 2.6.x内核的新特性 105
7.2.2 2.6.x内核配置项 106
7.2.3 2.6.x内核配置实例 107
7.3 内核启动及内核升级常见故障 113
7.3.1 以新内核启动系统 113
7.3.2 内核升级常见故障及解决 113
7.4 定制内核 114
7.4.1 定制内核的意义 114
7.4.2 内核定制实例 114
第8章 TCP/IP协议体系 117
8.1 网络体系概念 117
8.1.1 计算机网络 117
8.1.2 网络协议 117
8.1.3 网络寻址 118
8.2 ISO参考模型 118
8.2.1 OSI参考模型概述 118
8.2.2 各层的功能 118
8.2.3 工作原理 119
8.3 TCP/IP参考模型 120
8.3.1 TCP/IP参考模型概述 120
8.3.2 TCP/IP和OSI参考模型的对比 120
8.4 IP地址 121
8.4.1 IP地址概述 121
8.4.2 IP地址的分类 121
8.4.3 A类IP地址 121
8.4.4 B类IP地址 122
8.4.5 C类IP地址 122
8.4.6 其他类 122
8.5 IP地址的寻址规则 122
8.5.1 网络寻址规则 122
8.5.2 主机寻址规则 123
8.6 子网划分、子网计算命令ipcalc 123
8.6.1 子网划分方法 123
8.6.2 ipcalc命令的使用 123
8.7 IP路由、路由设置命令route 125
8.7.1 路由的定义 125
8.7.2 路由的方式 125
8.7.3 静态路由 125
8.7.4 动态路由 125
8.7.5 route命令的使用 126
第9章 Linux网络命令及配置文件 128
9.1 Linux常用网络命令 128
9.1.1 ifconfig命令 128
9.1.2 netconfig命令 130
9.1.3 ethtool命令 132
9.1.4 mii-tool命令 133
9.1.5 netstat命令 135
9.1.6 chkconfig命令 136
9.1.7 nslookup命令 137
9.1.8 wget命令 138
9.2 Linux常用网络配置文件 139
9.2.1 /etc/nsswitch.conf 139
9.2.2 /etc/services 141
9.2.3 /etc/resolv.conf 141
9.2.4 /etc/sysconfig/network 142
9.2.5 /etc/sysconfig/network-scripts/ifcfg-eth0 142
第10章 远程管理Linux系统 143
10.1 Telnet服务 143
10.1.1 安装Telnet服务 143
10.1.2 启动Telnet服务 143
10.1.3 配置Telnet服务 144
10.2 SSH服务 145
10.2.1 启动SSH服务 145
10.2.2 SSH客户端连接 145
10.2.3 SSH服务的常规配置 151
10.2.4 SSH密钥认证原理 152
10.2.5 SSH密钥认证配置 153
10.3 VNC服务管理 154
10.3.1 启动VNC服务器 154
10.3.2 VNC客户端访问配置 154
10.3.3 VNC后台服务 156
10.4 Webmin 157
10.4.1 Webmin应用 157
10.4.2 安装并配置JRE 159
第11章 DHCP服务器 161
11.1 DHCP简介 161
11.2 DHCP的工作原理 162
11.3 安装DHCP服务器 163
11.4 DHCP服务配置 163
11.4.1 DHCP服务主配置文件 163
11.4.2 DHCP服务的客户租约文件 166
11.4.3 DHCP客户端的配置 167
11.5 DHCP服务应用 167
11.5.1 共享作用域 168
11.5.2 多作用域 168
11.6 Linux网络安装服务器架设 169
11.6.1 工作流程 170
11.6.2 实现步骤 170
第12章 DNS服务器 172
12.1 DNS服务概述 172
12.1.1 域名系统 172
12.1.2 域名解析过程 174
12.1.3 DNS的服务资源记录 174
12.1.4 BIND服务简介 176
12.1.5 DNS服务器的安装和启动 176
12.2 DNS服务配置 176
12.2.1 与DNS相关的两个文件 176
12.2.2 BIND服务配置 177
12.2.3 DNS客户端配置 181
12.2.4 DNS服务器的其他配置 184
12.2.5 DNS配置常见问题 185
12.3 DNS服务配置实例 185
第13章 Web服务器的配置与管理 189
13.1 Web服务器简介 189
13.2 Apache的安装配置 189
13.2.1 Apache的安装 189
13.2.2 Apache的启动与停止 190
13.3 Apache的全局环境配置 191
13.3.1 全局环境配置 192
13.3.2 Apache的主服务器配置 195
13.3.3 Apache的高级管理配置 197
13.3.4 Apache身份认证 200
13.3.5 虚拟主机的配置 200
13.4 Apache对JSP语言的支持 202
13.4.1 JSP的特点 202
13.4.2 安装与配置JSP的工作环境 202
13.5 日志文件的管理 206
13.5.1 错误日志 206
13.5.2 访问日志 207
13.6 Apache配置应用实例 208
13.7 Web服务器安全——SSL 212
第14章 MySQL服务器的配置与管理 214
14.1 MySQL服务概述 214
14.2 MySQL服务的安装与配置 214
14.2.1 获取MySQL 215
14.2.2 安装准备工作 215
14.2.3 开始安装 215
14.3 MySQL的管理 216
14.3.1 启动MySQL 217
14.3.2 停止MySQL 217
14.3.3 管理MySQL用户 217
14.3.4 常用MySQL命令 218
14.3.5 创建MySQL表 219
14.3.6 将文本导入数据库 220
14.3.7 导出/导入数据 220
14.3.8 备份和恢复数据 222
14.3.9 开机自动启动MySQL 224
第15章 LAMP概述 227
15.1 LAMP的概念 227
15.2 LAMP的安装 227
15.2.1 PHP语言概述 227
15.2.2 PHP软件包的安装 228
15.2.3 PHP软件的安全配置 230
15.2.4 Perl语言概述 232
15.2.5 Python语言概述 233
15.3 加速LAMP 235
15.3.1 Apache加速 235
15.3.2 PHP加速 237
15.4 LAMP应用实例 238
15.4.1 软件的简介 238
15.4.2 安装MySQL 239
15.4.3 安装httpd 240
15.4.4 安装PHP 240
15.4.5 安装Zend Optimizer 241
15.4.6 安装PHPMyAdmin 241
15.4.7 安装PHPwind 242
第16章 FTP服务器 245
16.1 FTP服务器概述 245
16.1.1 FTP服务的工作原理 245
16.1.2 流行的FTP服务器 246
16.2 vsftpd服务配置 246
16.2.1 启动vsftpd服务 246
16.2.2 vsftpd服务配置文件 247
16.2.3 vsftpd服务用户控制文件 250
16.3 vsftpd服务器设置实例 251
16.4 vsftpd客户端访问 252
16.5 vsftpd虚拟用户 255
16.5.1 虚拟用户的创建和实现 256
16.5.2 虚拟用户设置 257
第17章 电子邮件系统 259
17.1 电子邮件系统概述 259
17.1.1 电子邮件系统的组成 259
17.1.2 电子邮件传送协议SMTP 260
17.1.3 邮局协议和因特网消息存取通信协议 260
17.2 Sendmail电子邮件服务 261
17.2.1 Sendmail邮件服务的概述 261
17.2.2 Sendmail邮件服务器配置实例 261
17.3 Postfix邮件服务的安装与配置 263
17.3.1 Postfix的特点 264
17.3.2 Postfix的邮件队列与配置文件 264
17.3.3 Postfix常用参数的介绍 265
17.4 Postfix的配置实例 267
17.4.1 软件的简介 268
17.4.2 安装前准备 269
17.4.3 安装MySQL 270
17.4.4 安装httpd和PHP软件包 271
17.4.5 安装courier-authlib 271
17.4.6 安装cyrus-sasl 273
17.4.7 安装postfix 2.2.3 274
17.4.8 安装courier-imap 277
17.4.9 安装postfixadmin 278
17.4.10 安装squirrelmail 280
17.4.11 整体测试 281
第18章 Squid代理服务 284
18.1 Squid代理服务概述 284
18.1.1 代理服务概述 284
18.1.2 Squid代理服务概述 285
18.2 实现Squid服务 285
18.2.1 安装Squid 285
18.2.2 squid.conf文件基本配置 287
18.2.3 运行Squid 287
18.2.4 客户端配置 288
18.3 Squid服务配置与应用 289
18.3.1 Squid服务配置选项 289
18.3.2 访问控制 292
18.3.3 正向代理应用示例 297
18.3.4 Web加速-反向代理应用示例 299
18.3.5 其他应用 301
18.3.6 配置文件示例 302
第19章 Linux系统安全 305
19.1 系统安全概述 305
19.1.1 从安全角度看开源软件 305
19.1.2 系统安全性和评价 306
19.1.3 安全基础知识 306
19.1.4 系统用户和管理 307
19.1.5 数据加密 309
19.2 系统安全策略与配置 310
19.2.1 定义安全策略和模型 310
19.2.2 配置实例 311
19.3 PAM概述与工作原理 312
19.3.1 什么是Linux-PAM 312
19.3.2 PAM的分层体系结构 313
19.3.3 口令映射 314
19.4 安全工具 315
19.4.1 nmap和nessus网络安全扫描工具 316
19.4.2 弱点测试工具 317
19.4.3 Sxid和Skey 317
19.4.4 日志工具(logrotate,swatch,logcheck) 318
19.4.5 SSH和Tripwire 320
19.4.6 反扫描工具Portsentry 322
19.4.7 OpenSSL 323
19.4.8 Linux FreeS/WAN VPN 324
第20章 Linux网络服务安全 328
20.1 网络服务安全概述 328
20.1.1 网络服务安全含义 328
20.1.2 网络服务安全考虑因素 328
20.2 网络服务安全配置 333
20.2.1 FTP安全配置 333
20.2.2 邮件安全配置 335
20.2.3 Telnet和SSH安全配置 337
20.2.4 Web服务器安全配置 338
20.2.5 DHCP安全配置 341
20.2.6 DNS安全配置 342
20.2.7 NFS文件系统的安全配置 344
20.2.8 Samba文件系统的安全配置 344
20.2.9 tcp-wrapper及xinetd安全设置 346
20.2.10 拒绝服务攻击和入侵检测 349
20.2.11 拒绝服务攻击和入侵检测工具 353
第21章 Linux下的防火墙配置 361
21.1 Linux下的防火墙 361
21.1.1 防火墙的基本原理 361
21.1.2 iptables工作原理 363
21.2 iptables防火墙组件 364
21.2.1 iptables的元素 364
21.2.2 iptables工作流程 366
21.3 iptables的安装和实施 369
21.3.1 iptables的安装和启动 369
21.3.2 iptables的语法 369
21.3.3 iptables应用实例 372