第1章 CentOS安装与基本操作 1
1.1 网络操作系统概述 1
1.1.1 网络操作系统的概念 1
1.1.2 网络操作系统的特点 2
1.1.3 网络操作系统的功能 2
1.1.4 网络操作系统的工作模式 2
1.1.5 网络服务器 3
1.1.6 常用的网络操作系统 4
1.2 Linux与CentOS 4
1.2.1 Linux操作系统简介 4
1.2.2 Linux操作系统的版本 6
1.2.3 CentOS Linux 6
1.3 安装CentOSLinux服务器 7
1.3.1 组建Linux实验网络 7
1.3.2 CentOS Linux安装过程 8
1.4 Linux图形界面基本操作 13
1.4.1 进入Linux图形界面 13
1.4.2 熟悉CentOS桌面 14
1.4.3 用户登录、注销与切换 15
1.4.4 关机和重启 15
1.4.5 使用活动概览视图 15
1.4.6 切换工作区和窗口 16
1.4.7 启动应用程序 16
1.4.8 系统设置 17
1.4.9 使用文件管理器 18
1.4.10 使用gedit文本编辑器 18
1.4.11 X Window System 19
1.5 Linux文本模式基本操作 19
1.5.1 进入Linux文本模式 20
1.5.2 文本模式下登录与注销 20
1.5.3 使用命令行关闭和重启系统 21
1.5.4 文本模式和图形界面切换 21
1.5.5 使用仿真终端窗口 21
1.6 Linux命令行与Shell操作 22
1.6.1 Shell基础 22
1.6.2 Linux命令行使用 25
1.6.3 命令行输入与输出 27
1.6.4 创建和执行Shell脚本 28
1.6.5 配置bash使用环境 29
1.7 使用vim编辑器 30
1.7.1 vim操作模式 30
1.7.2 打开vim编辑器 30
1.7.3 编辑文件 31
1.7.4 保存文件和退出vim 31
1.7.5 其他全局性操作 32
1.7.6 多文件操作 32
1.8 习题 32
第2章 Linux基本配置与管理 33
2.1 用户与组管理 33
2.1.1 用户与组概述 33
2.1.2 用户与组配置文件 34
2.1.3 超级用户权限 35
2.1.4 创建和管理用户账户 38
2.1.5 创建和管理组账户 41
2.1.6 其他用户管理命令 42
2.2 文件与目录管理 42
2.2.1 文件与目录概述 43
2.2.2 Linux目录配置标准——FHS 43
2.2.3 Linux文件类型 44
2.2.4 Linux目录操作 45
2.2.5 Linux文件操作 46
2.3 文件权限管理 49
2.3.1 文件访问者身份 49
2.3.2 文件访问权限与文件属性 50
2.3.3 变更文件访问者身份 50
2.3.4 设置文件访问权限 51
2.3.5 设置默认的文件访问权限 52
2.4 网络连接配置 53
2.4.1 网络接口设备命名规则 53
2.4.2 NetworkManager简介 54
2.4.3 网络连接配置基本项目 54
2.4.4 网络连接配置文件 54
2.4.5 网络连接配置方法 55
2.4.6 使用nmcli命令配置网络 55
2.4.7 使用文本用户界面工具nmtui 60
2.4.8 直接使用图形界面配置网络 61
2.5 软件安装 61
2.5.1 CentOS软件安装方式 61
2.5.2 使用rpm软件包管理 62
2.5.3 通过yum管理软件 63
2.5.4 使用源代码安装软件 68
2.6 习题 72
第3章 磁盘存储管理 73
3.1 磁盘存储概述 73
3.1.1 磁盘数据组织 73
3.1.2 Linux磁盘设备命名 74
3.1.3 分区样式 74
3.1.4 Linux分区 76
3.1.5 Linux文件系统 76
3.2 创建和管理Linux磁盘分区 77
3.2.1 磁盘分区方案 78
3.2.2 使用fdisk进行分区管理 78
3.2.3 使用gdisk和fdisk管理GPT分区 81
3.2.4 使用parted进行分区管理 82
3.3 创建和使用文件系统 83
3.3.1 在磁盘分区上建立文件系统 83
3.3.2 挂载文件系统 86
3.3.3 检查维护ext2/ext3/ext4文件系统 88
3.3.4 检查维护xfs文件系统 89
3.3.5 文件系统统计 90
3.3.6 挂载和使用外部存储设备 90
3.4 磁盘阵列配置与管理 92
3.4.1 磁盘阵列概述 92
3.4.2 创建和管理RAID 1阵列 93
3.4.3 创建和管理RAID 5阵列 96
3.4.4 其他常见的RAID操作 97
3.5 逻辑卷配置与管理 98
3.5.1 LVM概述 98
3.5.2 创建逻辑卷 100
3.5.3 删除逻辑卷 102
3.5.4 动态调整逻辑卷容量 102
3.6 配置和管理交换空间 103
3.6.1 交换空间概述 103
3.6.2 使用交换分区作为交换空间 104
3.6.3 使用逻辑卷作为交换空间 105
3.7 管理磁盘配额 106
3.7.1 Linux磁盘配额概述 106
3.7.2 启用Linux磁盘配额功能 106
3.7.3 设置用户和组配额限制值 107
3.7.4 检查磁盘配额情况 109
3.8 文件系统备份 110
3.8.1 数据备份概述 110
3.8.2 使用存档工具进行简单备份 110
3.8.3 使用dump和restore实现备份和恢复 111
3.8.4 xfs文件系统的备份和恢复 112
3.8.5 光盘备份 112
3.9 习题 113
第4章 Linux进程、内核与硬件管理 114
4.1 Linux进程管理 114
4.1.1 Linux进程概述 114
4.1.2 查看进程 115
4.1.3 Linux进程基本管理 117
4.1.4 服务与守护进程 119
4.2 计划任务管理 121
4.2.1 使用cron安排周期性任务 121
4.2.2 使用anacron唤醒停机期间的调度任务 123
4.2.3 使用at和batch工具安排一次性任务 125
4.3 内核管理 126
4.3.1 Linux内核概述 126
4.3.2 管理内核模块 127
4.3.3 配置内核参数以定制系统功能 130
4.4 硬件管理 131
4.4.1 设备文件与设备识别号 131
4.4.2 创建设备文件 132
4.4.3 通过udev自动创建和管理设备文件 132
4.4.4 监测硬件设备 134
4.4.5 管理PCI设备 134
4.4.6 管理USB设备 135
4.5 习题 135
第5章 systemd管理与系统启动 136
5.1 systemd与系统初始化 136
5.1.1 sysVinit初始化方式 136
5.1.2 Upstart初始化方式 137
5.1.3 systemd初始化方式 137
5.2 systemd的概念和运行机制 138
5.2.1 systemd的主要概念和术语 138
5.2.2 systemd单元文件 139
5.2.3 单元文件与启动目标 141
5.2.4 CentOS 7的systemd兼容性 144
5.3 systemd基本管理操作 144
5.3.1 systemctl命令 144
5.3.2 单元管理 144
5.3.3 单元文件管理 147
5.3.4 启动目标管理 148
5.3.5 系统电源管理 149
5.4 使用systemd管理Linux服务 149
5.4.1 Linux服务状态管理 149
5.4.2 配置服务启动状态 150
5.4.3 创建自定义服务 151
5.5 使用systemd实现计划任务管理 151
5.5.1 systemd定时器简介 152
5.5.2 创建systemd定时器 153
5.6 Linux系统启动过程分析 155
5.6.1 Linux启动过程 155
5.6.2 检测和分析systemd启动过程 157
5.7 Linux系统启动配置与故障排除 158
5.7.1 系统初始化配置 158
5.7.2 引导装载程序GRUB2配置 158
5.7.3 系统启动进入特殊模式 163
5.7.4 进入CentOS救援环境修复系统 164
5.8 习题 167
第6章 系统性能监测与日志管理 168
6.1 系统性能监测 168
6.1.1 性能监测简介 168
6.1.2 CPU性能监测 168
6.1.3 内存性能监测 169
6.1.4 磁盘I/O性能监测 170
6.1.5 通过top实现综合监测 171
6.1.6 系统性能优化 172
6.2 配置和使用rsyslog系统日志 172
6.2.1 系统日志文件 173
6.2.2 系统日志配置 173
6.2.3 日志文件轮转 175
6.2.4 查看和分析系统日志条目 176
6.2.5 集中式日志服务 176
6.3 配置和使用systemd日志 176
6.3.1 查看systemd日志条目 176
6.3.2 保存systemd日志 178
6.4 习题 178
第7章 网络配置与管理 179
7.1 网络连接配置进阶 179
7.1.1 使用ip命令管理网络连接 179
7.1.2 NetworkManager与network脚本 181
7.1.3 使用sysconfig文件进行网络配置 182
7.1.4 网络接口的绑定与组合 183
7.1.5 网桥的创建与管理 188
7.2 网络测试与监控 189
7.2.1 网络测试工具 189
7.2.2 网络性能监测 191
7.2.3 网络监视器 191
7.3 配置IP路由 192
7.3.1 IP路由与路由器 192
7.3.2 静态路由与动态路由 195
7.3.3 配置静态路由 196
7.3.4 配置动态路由 199
7.4 IPsec虚拟专用网 203
7.4.1 VPN与IPsec 203
7.4.2 Libreswan及其部署 206
7.4.3 主机到主机IPsec VPN连接配置 208
7.4.4 网络到网络IPsecVPN连接配置 210
7.5 习题 211
第8章 防火墙 212
8.1 防火墙概述 212
8.1.1 防火墙技术 212
8.1.2 网络地址转换(NAT)技术 214
8.1.3 Linux的防火墙架构 215
8.1.4 netfilter 216
8.1.5 iptables 216
8.1.6 firewalld 217
8.2 firewalld基础 217
8.2.1 区域简介 217
8.2.2 区域与网络连接 219
8.2.3 firewalld管理方法 220
8.3 firewalld管理操作 221
8.3.1 firewalld安装 221
8.3.2 firewalld服务管理 221
8.3.3 firewall-cmd通用设置 222
8.3.4 区域的配置和管理 223
8.3.5 在区域中设置常规规则 224
8.3.6 设置富语言规则 226
8.3.7 设置直接规则 229
8.3.8 锁定firewalld防火墙 229
8.3.9 使用图形界面配置工具firewall-config 230
8.4 部署firewalld网络防火墙 232
8.4.1 基本网络防火墙配置 232
8.4.2 通过NAT方式共享上网 235
8.4.3 通过端口转发发布内网服务器 236
8.4.4 配置DMZ(非军事区) 236
8.5 习题 237
第9章 Linux安全管理 238
9.1 加固Linux系统 238
9.1.1 安装必要的软件和初始化安全设置 238
9.1.2 及时更新系统 238
9.1.3 强化密码管理 239
9.1.4 控制root账户的使用 240
9.1.5 严格设置访问权限 241
9.1.6 强化应用程序安全 242
9.1.7 安装反病毒软件 243
9.1.8 保障网络安全 243
9.2 用户认证 244
9.2.1 Linux系统用户认证 244
9.2.2 password/shadow认证体系 247
9.2.3 PAM认证体系 247
9.2.4 配置PAM 248
9.3 TCPWrappers访问控制 250
9.3.1 TCPWrappers基础 251
9.3.2 使用TCPWrappers控制网络服务访问 252
9.4 SELinux强制访问控制 254
9.4.1 操作系统的访问控制机制 254
9.4.2 Linux安全模型 255
9.4.3 SELinux架构 255
9.4.4 SELinux上下文 256
9.4.5 启用SELinux 259
9.4.6 SELinux安全策略 260
9.4.7 使用布尔值管理SELinux策略 261
9.4.8 标记文件 262
9.4.9 管理受限的用户 264
9.4.10 管理受限的服务 265
9.5 系统审核 266
9.5.1 系统审核主要功能 266
9.5.2 系统审核运行机制 267
9.5.3 配置auditd守护进程 267
9.5.4 定义审核规则 268
9.5.5 管理audit服务 270
9.5.6 查看和分析审核记录 270
9.6 习题 271
第10章 DNS与DHCP 273
10.1 DNS基础 273
10.1.1 DNS结构与域名空间 273
10.1.2 DNS解析原理 275
10.1.3 DNS服务器类型 278
10.2 DNS基本配置与管理 278
10.2.1 安装DNS服务器 278
10.2.2 主DNS服务器配置实例 279
10.2.3 设置BIND主配置文件 281
10.2.4 使用区域文件配置DNS资源记录 283
10.2.5 配置反向解析 286
10.2.6 管理DNS服务 286
10.2.7 DNS服务器测试 287
10.2.8 DNS客户端配置与管理 289
10.3 DNS高级配置与管理 290
10.3.1 使用rndc管理DNS服务器 290
10.3.2 配置DNS转发服务器 291
10.3.3 配置根区域自定义DNS递归查询 293
10.3.4 配置仅缓存DNS服务器 293
10.3.5 部署主DNS服务器与辅助DNS服务器 294
10.3.6 配置区域委派 296
10.3.7 使用view语句实现分区解析 297
10.4 DHCP基础 298
10.4.1 什么是DHCP 298
10.4.2 DHCP工作原理 299
10.4.3 DHCP规划 301
10.5 DHCP服务器的部署与管理 302
10.5.1 DHCP主配置文件 302
10.5.2 DHCP服务器全局设置 303
10.5.3 配置DHCP作用域 303
10.5.4 配置DHCP选项 304
10.5.5 固定分配静态IP地址(“IP-MAC”绑定) 305
10.5.6 启动和管理DHCP服务 305
10.5.7 配置DHCP客户端 306
10.5.8 管理地址租约 306
10.6 DHCP服务器高级管理 307
10.6.1 使用地址池 307
10.6.2 使用分组简化DHCP配置 307
10.6.3 配置共享网络 308
10.6.4 DHCP匹配顺序 309
10.7 与DHCP集成实现DNS动态更新 309
10.7.1 创建用于安全动态更新的密钥 309
10.7.2 设置DNS主配置文件 310
10.7.3 设置DHCP主配置文件 310
10.7.4 测试DNS动态更新 311
10.8 习题 312
第11章 文件与打印服务器 313
11.1 文件和打印服务概述 313
11.1.1 文件服务器 313
11.1.2 打印服务器 314
11.2 NFS服务器 314
11.2.1 NFS概述 314
11.2.2 安装和运行NFS服务 315
11.2.3 配置NFS服务器 316
11.2.4 测试NFS服务器 318
11.2.5 配置和使用NFS客户端 318
11.3 Samba服务器 319
11.3.1 Samba基础 319
11.3.2 部署Samba服务器 321
11.3.3 在Samba服务器中配置匿名共享 322
11.3.4 在Samba服务器中配置安全共享 323
11.3.5 编辑Samba主配置文件 324
11.3.6 Samba服务器目录及其文件权限设置 326
11.3.7 配置和管理Samba用户 327
11.3.8 监测Samba服务器 328
11.3.9 Linux客户端访问Samba服务器 328
11.3.10 Windows客户端访问Samba服务器 329
11.3.11 Samba客户端访问控制 329
11.4 Linux打印服务器 330
11.4.1 CUPS打印系统 330
11.4.2 CUPS配置工具 331
11.4.3 配置和管理本地打印机 331
11.4.4 配置CUPS打印服务器 332
11.4.5 部署Samba打印服务器 333
11.5 习题 335
第12章 Web服务器与LAMP平台 336
12.1 概述 336
12.1.1 Web服务器 336
12.1.2 LAMP平台 337
12.2 部署Apache服务器 338
12.2.1 安装Apache 338
12.2.2 管理Web服务 338
12.2.3 Apache服务器配置文件 339
12.2.4 Apache服务器全局性配置 341
12.2.5 Apache主服务器基本配置 342
12.2.6 配置目录访问控制 344
12.2.7 配置和管理虚拟目录 345
12.2.8 为用户配置个人Web空间 346
12.2.9 配置Web应用程序 347
12.3 部署MariaDB与PHP 348
12.3.1 部署MariaDB数据库服务器 348
12.3.2 配置PHP应用程序 351
12.3.3 使用phpMyAdmin管理MariaDB 351
12.4 配置和管理虚拟主机 353
12.4.1 基于IP的虚拟主机 353
12.4.2 基于名称的虚拟主机 354
12.4.3 基于TCP端口架设多个Web网站 357
12.5 配置Web服务器安全 357
12.5.1 用户认证 357
12.5.2 访问控制 359
12.5.3 为Apache服务器配置SSL 360
12.6 习题 364
第13章 远程登录与管理 365
13.1 远程登录SSH 365
13.1.1 SSH概述 365
13.1.2 安装OpenSSH 365
13.1.3 配置OpenSSH服务器 366
13.1.4 使用SSH客户端 366
13.1.5 SSH公钥认证 368
13.2 远程桌面VNC 371
13.2.1 VNC简介 371
13.2.2 VNC服务器的安装与配置 371
13.2.3 VNC客户端的使用 374
13.2.4 使用SSH隧道保护VNC连接 374
13.3 习题 375
第14章 Linux虚拟化 376
14.1 Linux虚拟化概述 376
14.1.1 虚拟化的概念与应用 376
14.1.2 虚拟化技术 376
14.1.3 KVM——基于Linux内核的虚拟化 378
14.1.4 KVM管理工具 379
14.2 基于图形界面部署和管理KVM虚拟机 381
14.2.1 部署KVM虚拟系统 381
14.2.2 创建KVM虚拟机 383
14.2.3 使用和管理KVM虚拟机 385
14.2.4 KVM虚拟系统配置管理操作 386
14.2.5 KVM虚拟网络设置 387
14.2.6 虚拟存储设置 393
14.2.7 虚拟机高级管理 396
14.2.8 虚拟机桌面显示 398
14.3 使用命令行部署和管理KVM虚拟机 399
14.3.1 搭建KVM平台 399
14.3.2 使用virt-install命令创建虚拟机 400
14.3.3 使用virsh命令管理虚拟机 403
14.3.4 修改虚拟机定义文件 403
14.3.5 通过命令行工具和配置文件配置KVM虚拟网络 404
14.3.6 使用命令行工具配置虚拟存储 406
14.3.7 使用命令行工具管理虚拟机快照 408
14.3.8 使用virt-clone命令克隆虚拟机 409
14.4 习题 410