第1章 初识Linux系统 1
1.1 Linux的由来 2
1.2 Linux版本知多少 3
1.3 Linux操作系统简介 4
1.3.1 Linux操作系统结构 5
1.3.2 Linux的特点 6
1.3.3 Linux的主要应用领域 7
1.3.4 Linux的不足之处 8
1.3.5 Red Hat Enterprise Linux 5简介 8
第2章 系统安装与配置 10
2.1 安装Ubuntu Linux 11
2.1.1 准备工作 11
2.1.2 安装过程 12
2.2 安装Red Hat Enterprise Linux 5 17
2.2.1 设置系统启动顺序 17
2.2.2 选择安装方式 17
2.2.3 检测硬件 18
2.2.4 选择安装语言和键盘设置 18
2.2.5 Linux系统安装配置 19
2.2.6 系统的基本配置 24
第3章 Linux图形用户环境 27
3.1 X Window概述 28
3.1.1 X Window简介 28
3.1.2 X Window的应用 29
3.2 GNOME图形操作环境 30
3.2.1 GNOME图形界面的组成 30
3.2.2 面板与桌面 31
3.2.3 GNOME基本操作 33
3.2.4 GNOME系统首选项 33
3.2.5 应用程序 35
3.2.6 Internet应用与游戏 35
3.3 KDE图形操作环境 36
3.3.1 KDE面板 36
3.3.2 主菜单的使用 37
3.3.3 使用多个桌面 38
3.3.4 任务栏 39
3.3.5 添加图标和程序 39
3.3.6 配置KDE面板 39
3.3.7 管理文件 40
3.3.8 导航面板 40
3.3.9 KDE的个性化配置 40
第4章 Linux文件系统 43
4.1 Linux文件系统 44
4.1.1 文件系统的基本组成 44
4.1.2 Linux系统的文件类型 47
4.2 文件的基本操作 49
4.2.1 文件夹(目录)与文件的新建与删除 49
4.2.2 复制和移动文件 51
4.2.3 查看和搜索文件 51
4.2.4 其他文件操作常用命令简述 54
4.3 压缩文件的生成及解压缩 54
4.3.1 zip文件的解压缩 55
4.3.2 压缩/解压缩tar文件 56
第5章 Linux系统管理 57
5.1 软件包管理 58
5.1.1 rpm命令的作用 58
5.1.2 RPM软件包管理工具 59
5.2 文件管理 60
5.2.1 Linux文件类型 60
5.2.2 文件和目录许可 60
5.2.3 Linux常用文件压缩与归档命令 62
5.3 优化系统性能 66
5.3.1 内核的升级与配置 66
5.3.2 文件系统调整 68
5.4 进程管理 69
5.4.1 查看进程状态 69
5.4.2 进程终止 71
5.4.3 进程优先级的控制 72
5.4.4 进程自动化及cron工具 73
5.5 用户账号管理 75
5.5.1 root账号的密码 75
5.5.2 增加、删除和修改账号 76
5.5.3 群组的操作 79
5.6 磁盘资源管理 81
5.6.1 磁盘基础知识 81
5.6.2 磁盘分区管理 82
5.6.3 磁盘管理命令的使用 84
第6章 Shell与Linux命令行 88
6.1 Linux Shell简述 89
6.1.1 初识Shell 89
6.1.2 Shell变量 90
6.1.3 Shell转义字符 91
6.1.4 Linux重定向与管道 92
6.1.5 启动Shell 94
6.2 Shell常用命令简述 94
6.2.1 显示命令——cat、more、less 94
6.2.2 查看文件内容命令——head、tail 97
6.2.3 查找命令——file、locate、which、find、grep 97
6.3 Linux文件和目录操作命令简述 100
6.3.1 文件和目录操作命令——pwd、cd 100
6.3.2 查看目录内容命令——ls 101
6.3.3 创建和删除目录命令——mkdir、rmdir 101
6.3.4 改变文件时间记录命令——touch 103
6.3.5 文件及目录操作命令——cp、rm、mv、ln 104
6.4 Linux系统状态显示命令简述 107
6.4.1 显示文件和文件系统状态命令——stat 107
6.4.2 查看用户信息命令——who、whoami、uname、dmesg 108
6.5 Linux网络命令简述 110
6.5.1 网络命令之hostname、ping、host 110
6.5.2 配置网卡命令——ifconfig 112
6.5.3 网络命令之telnet、ftp 113
6.5.4 网络命令之wall、write、mesg 115
6.5.5 发信和收信命令——mail 116
6.5.6 查询其他用户资料命令——finger 116
6.5.7 网络信息显示命令——netstat 117
6.6 vi编辑器简述 118
6.6.1 vi的工作模式与常用命令 118
6.6.2 vi高级应用 120
第7章 VPN服务的配置与应用 122
7.1 VPN服务概述 123
7.1.1 VPN简介 123
7.1.2 VPN技术的特点 124
7.1.3 VPN的安全技术 124
7.1.4 VPN工作原理 125
7.2 安装VPN服务器 127
7.2.1 VPN服务器硬件环境 127
7.2.2 VPN服务器的安装 128
7.3 配置及启动VPN服务器 129
7.3.1 主配置文件设置 129
7.3.2 配置账号文件 130
7.3.3 设置NAT并打开Linux内核路由功能 130
7.3.4 启动和停止VPN服务 131
7.4 配置VPN客户端 132
第8章 Samba服务器的配置与应用 135
8.1 Samba服务概述 136
8.1.1 Samba服务简介 136
8.1.2 Samba服务的安装 136
8.1.3 图形化的Samba服务配置方法 138
8.1.4 Samba服务的启动、停止和重启 141
8.2 Samba服务的配置文件 142
8.2.1 Samba服务的密码文件 142
8.2.2 Samba服务的日志文件 142
8.2.3 Samba服务的主要配置文件 143
8.3 Samba服务的安全级别 148
8.4 访问Samba共享资源 149
第9章 E-mail服务器的配置与应用 151
9.1 电子邮件服务简述 152
9.1.1 电子邮件服务简介 152
9.1.2 SMTP与POP3协议 152
9.1.3 电子邮件系统的工作原理 153
9.1.4 几个邮件相关的专有名词 153
9.1.5 几款流行的E-mail服务器软件 154
9.2 Sendmail邮件服务器的安装和配置 154
9.2.1 安装前的准备 155
9.2.2 安装Sendmail 155
9.2.3 Sendmail初始配置 156
9.2.4 Sendmail的发送邮件功能 157
9.2.5 主机别名 158
9.2.6 用户别名 158
9.2.7 允许投递 158
9.2.8 虚拟域 159
9.3 Postfix邮件服务器 159
9.3.1 Postfix邮件服务的安装 160
9.3.2 Postfix邮件服务的配置 161
9.3.3 Postfix服务的基本配置 162
9.3.4 配置虚拟别名域 165
9.3.5 配置用户别名 165
9.3.6 SMTP认证的配置 166
9.3.7 启动和停止Postfix服务 170
9.4 POP和IMAP邮件服务的实现 170
9.4.1 Dovecot服务的实现 170
9.4.2 cyrus-imapd服务的实现 172
9.5 Web方式收发邮件 176
9.5.1 Squirrelmail的安装与配置 176
9.5.2 登录Squirrelmail 177
9.6 管理邮件队列及筛选垃圾邮件 177
9.6.1 管理邮件队列 178
9.6.2 垃圾邮件的筛选 178
第10章 FTP服务器的配置 183
10.1 FTP服务概述 184
10.1.1 FTP工作原理 184
10.1.2 匿名用户 184
10.1.3 FTP服务的连接模式 185
10.1.4 流行FTP服务器软件简介 185
10.2 vsftpd FTP服务器的安装与配置 186
10.2.1 安装vsftpd软件 186
10.2.2 vsftpd服务的启动与关闭 186
10.2.3 vsttpd的配置文件 188
10.2.4 监听地址与控制端口 189
10.2.5 FTP模式与数据端口 189
10.2.6 ASCII模式 189
10.2.7 超时选项 190
10.2.8 文件操作控制 190
10.2.9 负载控制 191
10.3 vsftpd FTP服务器的管理 191
10.3.1 匿名用户和本地用户的访问控制 191
10.3.2 用户登录控制 192
10.3.3 目录访问控制 192
10.3.4 日志管理 193
10.4 vsftpd应用 193
10.4.1 允许匿名用户上传文件 193
10.4.2 限制用户的目录访问权限 194
10.4.3 限制客户端上传 195
10.4.4 虚拟用户的管理 196
10.5 安装与配置PureFTPD服务器 198
10.5.1 安装Apache服务 198
10.5.2 安装MySQL数据库和相关程序 199
10.5.3 安装PureFTPD服务 199
10.5.4 生成PureFTPD服务管理脚本 200
10.5.5 配置匿名用户登录环境 201
10.5.6 启动和停止PureFTPD服务 202
10.6 webpureftp的管理环境配置 202
10.6.1 安装Zend Optimizer 202
10.6.2 配置webpureftp 203
10.6.3 生成MySQL数据库 204
10.6.4 生成pure-ftpd的MySQL数据库配置文件 205
10.6.5 使用webpureftp管理PureFTPD服务器 205
10.6.6 测试PureFTPD服务 205
10.7 FTP客户端的配置与访问 205
10.7.1 Windows环境下访问FTP服务器 206
10.7.2 Linux环境下访问FTP服务器 207
第11章 Linux下Web服务器配置基础 208
11.1 Web服务的概述 209
11.1.1 Web服务简介 209
11.1.2 HTTP简介 209
11.1.3 Web服务器软件 212
11.2 Apache服务器简介 212
11.2.1 Apache发展史 212
11.2.2 Apache的特性 213
11.3 Apache服务器的安装 213
11.3.1 安装Apache服务 213
11.3.2 Apache服务的启动与停止 216
11.4 剖析Apache配置文件 217
11.4.1 httpd.conf简介 218
11.4.2 Apache服务的基本配置 218
11.5 Apache服务器控制存取的方式 222
11.5.1 Options选项 223
11.5.2 设置浏览权限 223
11.6 更深层次地配置Apache 226
11.6.1 虚拟目录简介 226
11.6.2 虚拟主机 227
11.6.3 用户认证 229
11.7 配置动态Web站点 232
11.7.1 创建JSP动态网站 232
11.7.2 创建CGI动态网站 237
11.7.3 创建动态网站 238
11.8 Apache日志管理和统计分析 241
第12章 DHCP服务器的配置与应用 244
12.1 DHCP服务概述 245
12.1.1 DHCP服务简介 245
12.1.2 DHCP工作流程 245
12.1.3 IP地址租约和更新 246
12.1.4 DHCP服务器给予客户端的IP地址类型 247
12.2 DHCP服务的安装 249
12.2.1 DHCP服务器安装前的准备工作 249
12.2.2 安装DHCP服务器 249
12.2.3 启动和停止DHCP服务器 251
12.3 DHCP服务的配置 252
12.3.1 配置文件的格式 252
12.3.2 设置IP作用域 254
12.3.3 设置客户机IP选项 255
12.3.4 设置租约期限 255
12.3.5 保留特定的IP地址 255
12.3.6 分配多网段的IP地址 255
12.3.7 dhcpd.conf配置文件的参数 256
12.3.8 局域网DHCP服务器配置实战 257
12.4 DHCP客户机的配置 258
12.4.1 Linux操作系统客户机配置——图形界面法 259
12.4.2 Linux中DHCP的配置——命令行法 260
12.4.3 Windows操作系统客户机配置 260
第13章 DNS服务器的配置与应用配置 262
13.1 DNS服务概述 263
13.1.1 DNS服务简介 263
13.1.2 hosts文件 263
13.1.3 Bind简介 264
13.1.4 DNS的查询原理和规划 264
13.2 DNS服务的安装 266
13.2.1 安装DNS服务器 266
13.2.2 安装chroot软件包 267
13.2.3 DNS服务的启动与停止 267
13.3 配置主要名称服务器 268
13.3.1 主配置文件 268
13.3.2 设置根区域 269
13.3.3 根服务器信息文件 270
13.3.4 设置区域文件 270
13.3.5 区域解析文件 272
13.3.6 功能实现 274
13.3.7 主要名称服务器的测试 274
13.4 DNS客户端的配置 278
13.4.1 Linux中DNS客户端的配置 278
13.4.2 Windows中DNS客户端的配置 279
13.5 辅助DNS服务器 280
第14章 网络数据库MySQL服务的配置 282
14.1 MySQL概述 283
14.2 MySQL的安装 284
14.2.1 RPM包安装 284
14.2.2 用“软件包管理者”安装 285
14.2.3 源码方式安装 286
14.3 MySQL服务的配置和使用 288
14.3.1 修改MySQL管理员的口令 288
14.3.2 数据库的创建和删除 289
14.3.3 表的创建、复制、删除和修改 289
14.3.4 索引的创建和删除 291
14.3.5 用户的添加和删除 292
14.3.6 用户权限的设置 293
14.3.7 启动和停止MySQL服务 294
14.4 MySQL的图形化配置 295
14.4.1 安装phpMyAdmin 296
14.4.2 配置phpMyAdmin虚拟目录 296
14.4.3 使用phpMyAdmin 297
第15章 Linux编程环境 300
15.1 Linux C/C++编程 301
15.1.1 C语言概论 302
15.1.2 C语言开发环境简介 305
15.1.3 C函数库 308
15.1.4 获得系统帮助 308
15.1.5 gcc的基本用法和选项 309
15.1.6 调试C程序 311
15.1.7 创建与使用库函数 313
15.1.8 软件维护工具make 316
15.2 Perl编程 318
15.2.1 什么是Perl 318
15.2.2 安装Perl 319
15.2.3 Perl程序的具体实例 320
15.2.4 运行与调试Perl程序简介 324
第16章 Linux系统升级与日常维护 326
16.1 Linux系统内核升级 327
16.1.1 升级前的准备 327
16.1.2 执行升级 329
16.1.3 检验初始RAM磁盘映像 334
16.1.4 检验引导装载程序 334
16.2 Linux系统的日常维护常用指令 335
第17章 Linux系统安全 339
17.1 常见的攻击类型 340
17.1.1 端口扫描 340
17.1.2 嗅探 341
17.1.3 病毒 343
17.1.4 木马 344
17.2 Linux系统安全策略 344
17.2.1 分区安全 344
17.2.2 系统引导安全 345
17.2.3 账号安全 345
17.2.4 密码安全 347
17.2.5 系统日志 348
17.3 网络服务安全 351
17.3.1 iptables 351
17.3.2 TCP Wrappers 353
17.3.3 xinetd服务 354
17.3.4 常见网络服务的安全问题 356
17.4 脚本安全 357
17.4.1 处理用户输入 357
17.4.2 注意隐式输入 358
17.5 使用snort进行入侵检测 359
17.5.1 入侵检测系统简介 359
17.5.2 什么是snort 360
17.5.3 安装snort 360
17.5.4 使用snort 362
17.5.5 配置snort规则 365
17.5.6 编写snort规则 366
17.6 网络防火墙 367
17.6.1 防火墙的概念及作用 367
17.6.2 防火墙的架构与工作方式 367
17.6.3 防火墙的体系结构 369
17.6.4 防火墙的基本类型 370
17.6.5 代理服务器实现方式 371