第一篇 Linux入门与基础管理
第1章 Linux安装及入门 / 1
1.1 Linux初识 / 2
1.2 Linux的独特性 / 2
1.2.1 Linux的优点 / 3
1.2.2 Linux流行的原因 / 6
1.2.3 Linux的可移植性 / 6
1.3 Linux的版本分类 / 7
1.4 Red Hat Linux发展 / 7
1.5 Red Hat Enterprise Linux 6 / 8
1.5.1 Red Hat Enterprise Linux 6版本 / 8
1.5.2 Red Hat Enterprise Linux 6主要特点 / 9
1.5.3 RHEL 6与RHEL 5.5的区别 / 11
1.6 Red Hat Enterprise Linux 6重要安装步骤 / 11
1.6.1 启动安装程序 / 12
1.6.2 安装类型及分区注意事项 / 12
1.6.3 引导装载程序设置 / 14
1.6.4 软件包选择 / 16
1.7 系统删除 / 17
1.8 系统启动、登录等基本操作 / 18
1.8.1 启动系统 / 18
1.8.2 终端模拟、ssh和telnet / 20
1.8.3 用reboot命令重新启动计算机 / 21
1.8.4 用shutdown命令关机或进入单人维护模式 / 21
1.9 文本模式和图形化模式的切换 / 22
1.10 系统登录时的几个注意事项 / 22
1.10.1 如何处理登录失败 / 23
1.10.2 退出 / 23
第2章 桌面程序管理 / 24
2.1 桌面环境介绍 / 25
2.1.1 CDE / 25
2.1.2 KDE / 25
2.1.3 GNOME / 26
2.2 桌面和面板 / 26
2.2.1 桌面 / 26
2.2.2 面板 / 27
2.3 添加、删除应用程序 / 28
2.4 使用RPM命令安装软件包 / 29
2.4.1 使用rpm命令安装xxx.rpm文件 / 29
2.4.2 使用rpm命令安装
xxx.src.rpm文件 / 29
2.4.3 安装程序xxx.bin / 30
2.4.4 安装xxx.tar.gz、xxx.bz2、xxx.z文件 / 30
2.5 获取帮助文档 / 30
2.5.1 --help选项 / 31
2.5.2 man命令 / 31
2.5.3 info命令显示工具信息 / 33
2.5.4 使用“帮助”窗口 / 34
2.6 vim编辑器 / 35
2.6.1 vim简介 / 35
2.6.2 vi/vim常用的命令 / 36
2.7 Red Hat Enterprise Linux 6下的常用软件 / 39
2.8 Linux设备简介 / 40
2.9 日期和时间 / 40
2.10 输入法 / 41
2.11 电源管理 / 42
2.12 桌面显示设置 / 43
2.13 设置屏幕外观 / 43
2.14 配置声卡 / 44
2.15 安装配置Mplayer / 45
2.15.1 下载解压包 / 45
2.15.2 下载解压Mplayer软件包 / 46
2.15.3 编译、安装 / 48
2.16 配置网卡 / 48
2.16.1 图形化配置方式 / 48
2.16.2 测试网络配置情况 / 50
第3章 Webmin和xinetd管理 / 52
3.1 Webmin介绍 / 53
3.2 Webmin的下载与安装 / 53
3.3 安装设置Webmin / 55
3.4 Webmin应用 / 57
3.5 xinetd介绍 / 59
3.6 配置xinetd服务器 / 59
3.6.1 xinetd主配置文件 / 59
3.6.2 单个xinetd服务文件 / 62
3.6.3 xinetd的启动和停止 / 62
3.7 允许xinetd连接 / 63
3.7.1 TCP封装器和xinetd / 63
3.7.2 xinetd的单个访问控制 / 64
第4章 文件系统管理 / 66
4.1 文件管理器介绍 / 67
4.2 Linux文件系统的基本类型 / 68
4.2.1 ext2 / 68
4.2.2 ext3 / 69
4.2.3 ext4(The fourth extended file system) / 70
4.2.4 交换分区 / 71
4.2.5 独立磁盘冗余阵列(RAID) / 72
4.2.6 逻辑卷管理器(LVM) / 72
4.3 系统目录 / 73
4.4 文件系统的结构 / 75
4.5 文件名的命名 / 76
4.6 文件及目录访问权限 / 77
4.6.1 一般权限 / 78
4.6.2 特殊权限 / 79
4.6.3 使用文件管理器来改变文件/目录的权限 / 80
4.6.4 使用chmod和数字改变文件/目录的访问特权 / 82
4.6.5 使用命令chown改变文件/目录的所有权 / 83
4.7 链接 / 84
4.7.1 符号链接 / 85
4.7.2 删除链接 / 86
第5章 账号管理 / 87
5.1 root账号 / 88
5.2 普通账号 / 90
5.2.1 创建用户账号 / 91
5.2.2 账号停用 / 93
5.2.3 账号删除 / 93
5.3 管理组群 / 94
5.4 图形化管理用户 / 94
第6章 磁盘管理 / 96
6.1 数据存储 / 97
6.1.1 数据存储方式 / 97
6.1.2 存储发展趋势 / 97
6.2 数据管理 / 98
6.2.1 高可用集群 / 98
6.2.2 备份 / 98
6.2.3 复制 / 99
6.2.4 容灾 / 99
6.2.5 迁移 / 99
6.2.6 内容管理 / 99
6.3 RAID / 100
6.3.1 RAID简介 / 100
6.3.2 RAID的优点 / 100
6.3.3 RAID级别 / 101
6.3.4 RAID 0级(Stripe) / 101
6.3.5 RAID 1级(Mirror) / 101
6.3.6 RAID 1+0 / 101
6.3.7 RAID 3 / 102
6.3.8 RAID 5级 / 102
6.4 Linux逻辑卷管理 / 102
6.4.1 Linux逻辑卷简介 / 102
6.4.2 逻辑卷基本原理 / 103
6.4.3 逻辑卷使用举例 / 103
6.4.4 磁盘实用工具 / 106
6.4.5 实际空间问题及解决方法 / 106
6.5 Linux磁盘空间管理 / 107
6.5.1 df命令 / 107
6.5.2 du命令 / 108
6.5.3 磁盘使用分析器 / 108
6.6 数据备份简介 / 109
6.6.1 备份的数据量 / 109
6.6.2 备份媒体的类型 / 110
第7章 常用系统管理 / 111
7.1 系统服务管理 / 112
7.1.1 运行、重启和停止某个服务 / 112
7.1.2 使某个服务在系统启动时自动运行或停止 / 113
7.2 系统端口管理 / 113
7.2.1 端口分类 / 113
7.2.2 监听端口开启情况 / 114
7.2.3 关闭/开启端口 / 114
7.2.4 常用端口 / 115
7.3 文件系统使用情况监控 / 117
7.3.1 确定文件系统使用情况 / 117
7.3.2 开放文件情况监控 / 118
7.4 磁盘性能监控 / 118
7.4.1 使用iostat命令 / 118
7.4.2 使用sar命令 / 118
7.5 系统性能监控 / 119
7.5.1 top命令 / 119
7.5.2 使用top监视特定用户 / 120
7.5.3 终止执行中的进程 / 120
7.5.4 使用系统监视器 / 122
7.6 系统处理器情况监控 / 123
7.7 内存使用情况监控 / 124
7.8 网络子系统情况监控 / 124
7.9 系统进程管理 / 125
7.9.1 捕获进程状态 / 125
7.9.2 查看较详细的说明 / 125
7.9.3 查看其他用户的进程 / 126
7.9.4 查看后台执行的进程 / 126
7.9.5 将进程清单排序 / 126
7.9.6 搭配其他命令查询进程 / 127
7.9.7 删除进程 / 127
7.9.8 控制进程优先级 / 128
7.10 查看用户行为 / 129
7.10.1 查看系统当前的在线用户 / 130
7.10.2 查看曾经登录系统的用户 / 131
7.11 系统日志管理 / 132
7.11.1 日志文件概述 / 132
7.11.2 syslogd与klogd守护进程 / 133
7.11.3 配置系统日志 / 134
7.11.4 配置文件语法 / 137
7.11.5 分析日志文件 / 139
7.11.6 转储日志文件 / 140
第8章 Linux常用命令 / 141
8.1 终端介绍 / 142
8.2 文件目录操作基本命令 / 143
8.2.1 cat / 143
8.2.2 chgrp / 143
8.2.3 chmod / 143
8.2.4 chown / 143
8.2.5 clear / 143
8.2.6 cmp / 144
8.2.7 cp / 144
8.2.8 cut / 144
8.2.9 diff / 144
8.2.10 du / 144
8.2.11 file / 144
8.2.12 find / 145
8.2.13 head / 145
8.2.14 In / 145
8.2.15 less / 145
8.2.16 locate / 145
8.2.17 ls / 145
8.2.18 mkdir / 146
8.2.19 more / 146
8.2.20 rmkdir / 146
8.2.21 mv / 146
8.2.22 pico / 146
8.2.23 pwd / 147
8.2.24 rm / 147
8.2.25 sort / 147
8.2.26 stat / 147
8.2.27 strings / 147
8.2.28 tail / 147
8.2.29 touch / 148
8.2.30 umask / 148
8.2.31 uniq / 148
8.2.32 vi / 148
8.2.33 wc / 148
8.2.34 whereis / 148
8.2.35 man / 148
8.2.36 dd / 148
8.2.37 df / 149
8.2.38 edquota / 149
8.2.39 fdformat / 149
8.2.40 fdisk / 149
8.2.41 mkfs / 149
8.2.42 mkswap / 149
8.2.43 mount / 149
8.2.44 quota / 149
8.2.45 swapon、swapoff / 150
8.2.46 quotaon、quotaoff / 150
8.2.47 umount / 150
8.3 系统信息显示命令 / 150
8.3.1 dmesg / 150
8.3.2 mesg / 150
8.3.3 free / 151
8.3.4 shutdown / 151
8.3.5 uname / 151
8.3.6 uptime / 151
8.3.7 date / 151
8.3.8 who / 151
8.3.9 whoami / 152
8.3.10 last / 152
8.3.11 su / 152
8.3.12 cal / 152
8.3.13 write / 152
8.4 备份压缩归档命令 / 153
8.4.1 zip、gzip和gunzip / 153
8.4.2 tar / 154
8.5 系统网络管理相关命令 / 155
8.5.1 finger / 156
8.5.2 ftp / 156
8.5.3 host / 156
8.5.4 hostname / 156
8.5.5 ifconfig / 156
8.5.6 mail / 156
8.5.7 netstat / 156
8.5.8 ping / 157
8.5.9 rlogin / 157
8.5.10 rcp / 157
8.5.11 route / 157
8.5.12 tcpdump / 157
8.5.13 talk / 158
8.5.14 telnet / 158
8.5.15 wall / 158
8.5.16 wget / 158
8.5.17 &、bg / 158
8.5.18 fg / 158
8.5.19 jobs / 159
8.5.20 kill / 159
8.5.21 ps / 159
8.5.22 top / 159
8.5.23 at、atq、atrm、crontab / 159
8.6 YUM命令 / 160
8.6.1 yum的特点 / 160
8.6.2 配置yum文件 / 160
8.6.3 yum指令详解 / 161
8.7 DOS和Linux常用命令对比 / 163
第9章 Linux编程 / 164
9.1 shell / 165
9.2 bash基本命令 / 166
9.3 shell变量类型 / 167
9.3.1 预定义变量 / 167
9.3.2 环境变量 / 168
9.3.3 用户变量 / 169
9.3.4 参数变量 / 169
9.4 比较语句 / 170
9.4.1 字符串比较 / 170
9.4.2 数值的比较 / 170
9.4.3 逻辑操作 / 170
9.4.4 文件操作 / 171
9.5 控制程序执行流程的语句类型 / 171
9.5.1 if条件语句 / 172
9.5.2 for循环 / 172
9.5.3 while和until循环 / 172
9.5.4 case条件选择 / 173
9.5.5 无条件控制语句break和continue / 173
9.6 函数 / 174
9.7 运行shell程序的方法 / 174
9.7.1 sh shell程序文件名 / 174
9.7.2 sh / 175
9.7.3 用chmod命令使shell程序成为可执行程序 / 175
9.8 信号或中断处理 / 175
9.9 bash shell程序的调试 / 176
9.10 GCC编译器 / 177
9.10.1 GNU C编译器简介 / 177
9.10.2 GCC约定规则 / 177
9.10.3 GCC的基本用法 / 178
9.10.4 GCC的基本选项 / 178
9.10.5 GCC编译程序举例 / 180
9.10.6 GCC的错误类型及对策 / 181
9.11 GNU make / 182
9.11.1 GNU make简介 / 182
9.11.2 makefile 基本结构 / 184
9.11.3 makefile 变量 / 184
9.11.4 运行make / 185
9.12 GDB / 186
9.12.1 GDB简介 / 186
9.12.2 基本GDB命令 / 186
9.12.3 启动GDB / 187
9.12.4 GDB调试程序过程 / 188
第二篇 各种服务器管理与应用
第10章 DNS服务器管理 / 191
10.1 DNS介绍 / 192
10.1.1 DNS特征及组成 / 192
10.1.2 DNS的层次结构与域名
分配 / 193
10.1.3 DNS查询过程 / 194
10.1.4 DNS的种类 / 195
10.2 BIND / 196
10.2.1 安装BIND / 196
10.2.2 启动DNS / 197
10.2.3 BIND常用测试命令 / 197
10.3 配置主域名服务器 / 197
10.3.1 配置主文件/etc/named.
conf / 198
10.3.2 配置正向解析文件
/var/named/localhost.zone / 199
10.3.3 配置反向解析文件
/var/named/named.local / 199
10.3.4 配置根域名服务器指向文件
/var/named/named.ca / 200
10.4 测试DNS服务器 / 201
10.4.1 用ping命令测试 / 201
10.4.2 用nslookup命令测试 / 202
10.5 配置辅助域名服务器 / 205
10.6 配置区域委派及子域DNS服务器 / 206
10.7 配置负载均衡域名服务器 / 209
10.8 配置直接域名解析 / 210
10.9 配置DNS泛域名解析功能 / 211
10.10 Linux客户端DNS配置 / 212
第11章 DHCP服务器管理 / 213
11.1 DHCP 介绍 / 214
11.1.1 DHCP服务器应用 / 214
11.1.2 DHCP地址租约方式 / 215
11.2 安装启动DHCP服务 / 215
11.3 配置DHCP服务器 / 216
11.3.1 dhcpd.conf文件详解 / 216
11.3.2 配置DHCP服务器 / 217
11.4 如何配置DHCP中继代理 / 218
11.4.1 配置子网A中的DHCP服务器 / 219
11.4.2 DHCP中继代理设置 / 220
11.5 配置DHCP客户端 / 221
11.5.1 Windows XP下的DHCP客户端配置 / 221
11.5.2 Linux下的DHCP客户端配置 / 222
第12章 Samba服务器管理 / 224
12.1 Samba / 225
12.2 配置Samba服务器 / 225
12.2.1 share级服务器 / 226
12.2.2 user级服务器 / 228
12.2.3 server级服务器 / 230
12.3 Linux分区和Windows分区资源互访 / 231
12.3.1 从Linux分区访问Windows分区 / 231
12.3.2 从Windows分区访问Linux分区 / 232
12.4 Samba相关命令及程序 / 233
12.4.1 smbd / 233
12.4.2 nmbd / 233
12.4.3 smbclient / 234
12.4.4 smbstatus / 234
12.4.5 testparm / 235
12.4.6 smbmount / 235
12.4.7 testprns / 235
12.5 配置Samba打印共享 / 235
12.5.1 配置Samba打印共享 / 235
12.5.2 测试Samba共享打印机配置的正确性 / 236
12.5.3 配置Windows客户机访问Samba共享打印机 / 236
第13章 FTP服务器管理 / 239
13.1 FTP介绍 / 240
13.1.1 anonymous / 240
13.1.2 real / 240
13.1.3 guest / 241
13.2 安装与启动vsftpd / 241
13.3 vsftpd.conf文件详述 / 242
13.4 匿名账号FTP服务器配置 / 245
13.4.1 简单的匿名账号服务器配置 / 245
13.4.2 配置匿名账号上传功能 / 248
13.4.3 最大并发连接数和用户的最大线程数设置 / 251
13.4.4 匿名用户的最大传输速率设置 / 251
13.4.5 禁止某些IP段的匿名用户访问FTP服务器 / 251
13.4.6 仅允许匿名用户访问 / 252
13.4.7 设置用ASCII方式传送数据 / 253
13.4.8 设置登录FTP服务器的欢迎信息 / 253
13.4.9 设置数据传输中断的时间间隔 / 255
13.5 真实账号FTP服务器配置 / 255
13.5.1 限制用户列表内的用户访问FTP服务器 / 256
13.5.2 更改FTP服务器默认的端口号 / 257
13.5.3 限制用户访问特定的目录 / 258
13.6 Windows客户端访问FTP服务器 / 260
13.6.1 DOS模式下使用ftp命令访问 / 260
13.6.2 使用IE浏览器访问 / 263
13.6.3 使用专用ftp客户端软件访问 / 264
13.7 Linux客户端访问FTP服务器 / 264
13.7.1 使用ftp命令访问 / 264
13.7.2 使用Mozilla Firefox浏览器访问 / 267
第14章 NFS服务器管理 / 268
14.1 NFS介绍 / 269
14.1.1 rpc.nfsd / 270
14.1.2 rpc.mountd / 270
14.2 NFS服务器配置 / 270
14.2.1 配置/etc/exports文件 / 271
14.2.2 使用exportfs命令更改设置 / 272
14.3 配置NFS客户端 / 272
14.3.1 使用mount命令 / 273
14.3.2 配置/etc/fstab文件 / 275
14.4 启动和停止NFS / 276
14.5 NFS服务的安全事项 / 277
14.5.1 NFS不安全性的主要体现 / 277
14.5.2 NFS安全建议 / 278
第15章 Web服务器管理 / 280
15.1 Apache介绍 / 281
15.2 安装与启动Apache / 281
15.3 配置Web服务器 / 284
15.3.1 配置Web目录 / 284
15.3.2 设置路径别名 / 285
15.3.3 配置访问控制 / 286
15.3.4 配置用户认证 / 287
15.4 个人站点配置和管理 / 290
15.5 配置基于IP地址的虚拟主机配置 / 292
15.5.1 IP地址相同,但端口号不同的虚拟主机配置 / 292
15.5.2 端口号相同,但IP地址不同的虚拟主机配置 / 294
15.6 基于名称的虚拟主机配置 / 295
15.7 动态虚拟主机配置 / 297
15.8 Web服务器日志管理 / 299
15.9 滚动日志配置 / 301
15.9.1 rotatelogs / 301
15.9.2 logrotate / 302
15.10 webalizer / 303
15.10.1 安装和查看webalizer / 303
15.10.2 配置webalizer / 304
15.10.3 在Mozilla Firefox浏览器中进行测试 / 305
第三篇 Linux高级应用
第16章 VPN服务器管理 / 306
16.1 VPN介绍 / 307
16.2 VPN的类型 / 307
16.2.1 远程访问虚拟网VPDN(Virtual Private Dial Network) / 308
16.2.2 企业内部虚拟网Intranet VPN / 308
16.2.3 企业扩展虚拟网Extranet VPN / 308
16.3 VPN的特点 / 308
16.3.1 降低费用 / 308
16.3.2 增强安全性 / 309
16.3.3 网络协议支持 / 309
16.3.4 IP地址安全 / 309
16.4 VPN工作原理 / 309
16.5 隧道协议类型 / 310
16.5.1 PPTP/ L2TP / 310
16.5.2 IPSec / 311
16.5.3 SOCKS v5 / 312
16.6 配置VPN服务器 / 313
16.6.1 安装ppp和pptpd / 313
16.6.2 配置VPN服务器 / 314
16.6.3 基于SSL的VPN客户端访问实现 / 314
16.7 VPN安全访问控制设计与实现 / 316
16.7.1 修改/etc/services文件 / 316
16.7.2 使用“服务配置”工具管理VPN服务 / 316
第17章 LDAP应用 / 317
17.1 LDAP 介绍 / 318
17.1.1 LDAP目录结构 / 318
17.1.2 LDAP客户端/服务器模型 / 319
17.1.3 LDAP的使用 / 319
17.1.4 LDAP术语 / 320
17.2 OpenLDAP / 320
17.2.1 服务器端进程 / 321
17.2.2 OpenLDAP工具 / 321
17.2.3 安装OpenLDAP / 321
17.2.4 配置slapd文件 / 322
17.2.5 启动slapd / 324
17.3 配置OpenLDAP客户端 / 324
17.3.1 创建目录项 / 325
17.3.2 搜索、查询以及修改目录 / 326
17.3.3 使用OpenLDAP进行用户认证 / 327
第18章 防火墙配置及应用 / 330
18.1 Iptables 介绍 / 331
18.2 Iptables和Ipchains语法比较 / 331
18.3 Iptables语法规则 / 333
18.3.1 表(table) / 333
18.3.2 命令(command) / 333
18.3.3 匹配(match) / 335
18.3.4 目标(target) / 336
18.3.5 保存规则 / 337
18.3.6 Iptables使用实例 / 337
18.4 配置Iptables包过滤防火墙 / 341
18.4.1 建立相应的脚本文件 / 341
18.4.2 刷新所有链的规则 / 342
18.4.3 首先禁止转发任何包,然后再一步步设置允许通过的包 / 342
18.4.4 设置关于服务器的包过滤规则 / 342
18.4.5 设置针对Intranet客户的过滤规则 / 343
18.4.6 接收来自整个Intranet的数据包过滤,定义如下规则 / 343
18.4.7 处理ip碎片 / 343
18.4.8 设置icmp包过滤 / 344
18.4.9 执行脚本,使配置生效 / 345
第19章 Linux路由及NAT应用 / 346
19.1 路由器介绍 / 347
19.2 路由选择原理 / 347
19.3 路由协议 / 348
19.3.1 RIP路由协议 / 348
19.3.2 OSPF路由协议 / 348
19.4 Linux软路由器配置要求 / 349
19.5 配置Linux静态路由器 / 349
19.5.1 配置网卡接口地址 / 350
19.5.2 测试网卡接口IP配置状况和路由表 / 350
19.5.3 分别设置两个网段内主机的IP和网关 / 351
19.5.4 测试路由运行情况 / 352
19.6 配置Linux动态路由器 / 353
19.6.1 Zebra相关配置文件 / 353
19.6.2 Zebra的基本配置 / 355
19.6.3 配置基于RIP协议的路由器 / 356
19.6.4 配置基于OSPF协议的路由器 / 361
19.7 NAT / 364
19.7.1 NAT的类型 / 365
19.7.2 NAT的功能 / 365
19.7.3 NAT应用 / 366
19.7.4 NAT规则及语法 / 367
19.7.5 操作实例 / 367
19.8 Linux下NAT配置 / 370
19.8.1 内网和外网IP地址映射 / 370
19.8.2 局域网通过配置NAT上网 / 371
第20章 Linux远程管理及应用 / 374
20.1 VNC / 375
20.2 配置VNC服务器 / 376
20.3 Linux下访问VNC服务器 / 376
20.4 Windows客户端访问VNC服务器 / 377
20.5 浏览器访问VNC服务器 / 379
20.6 Openssh / 379
20.7 配置Openssh服务器 / 380
20.8 SSH远程管理Linux服务器 / 382
20.9 PuTTY / 383
20.10 SecureCRT / 384
20.10.1 SecureCRT简介 / 384
20.10.2 使用SecureCRT 4.1 / 385
第四篇 Linux系统安全与防范
第21章 系统安全管理 / 387
21.1 设置GRUB与LILO安全性 / 388
21.2 设置账号安全 / 389
21.2.1 设置默认口令和账号的长度及有效期 / 389
21.2.2 清除空口令的账号 / 390
21.2.3 特别账号处理 / 391
21.3 设置重要系统文件的安全性 / 392
21.3.1 权限与文件系统 / 392
21.3.2 设置自动注销账号的登录 / 392
21.3.3 禁止外来ping请求 / 394
21.3.4 设置文件/etc/host.conf,防止IP欺骗 / 395
21.3.5 禁止任何人su作为root / 395
21.3.6 禁止使用Ctrl+Alt+Delete / 396
21.3.7 截断以前使用的命令列表 / 397
21.4 系统服务的安全管理 / 397
21.4.1 检查和关闭开启的服务 / 397
21.4.2 直接修改脚本文件 / 399
21.4.3 使用“服务配置”工具设置系统服务安全 / 400
21.5 远程连接服务器时的安全事项 / 400
21.6 系统端口管理 / 401
21.7 设置系统日志文件的安全性 / 404
21.7.1 关注Linux下的日志s子系统 / 405
21.7.2 重要的日志文件和命令 / 405
21.8 防火墙应用 / 407