第1篇 架站基础知识
第1章 网络硬件基础知识 2
1.1 计算机网络概述 2
1.1.1 计算机网络的定义 2
1.1.2 计算机网络的功能 3
1.1.3 计算机网络分类 4
1.2 局域网传输介质 6
1.2.1 双绞线 6
1.2.2 同轴电缆 8
1.2.3 光导纤维 9
1.2.4 无线介质 10
1.3 局域网连网设备 11
1.3.1 网卡 11
1.3.2 集线器 13
1.3.3 交换机 13
1.3.4 路由器 15
1.3.5 三层交换机 15
1.4 局域网架设实例 16
1.4.1 双机互连网络 16
1.4.2 小型交换网络 17
1.4.3 企业网络 18
1.4.4 无线局域网 18
1.5 小结 19
1.6 习题 19
第2章 Linux服务器架设规划 21
2.1 网络规划 21
2.1.1 需求分析 21
2.1.2 目标与设计原则 22
2.1.3 硬件和软件平台的规划 24
2.2 Linux服务器硬件规划 25
2.2.1 对CPU的要求 25
2.2.2 对内存的要求 26
2.2.3 对硬盘的要求 27
2.2.4 关于网卡的建议 28
2.3 Linux操作系统 28
2.3.1 Linux的起源 28
2.3.2 Linux的特点 29
2.3.3 Linux的发行版本 30
2.3.4 Red Hat Enterprise Linux简介 32
2.4 小结 33
2.5 习题 33
第3章 Linux系统的安装、管理与优化 35
3.1 安装RHEL 9 35
3.1.1 准备安装RHEL 9 35
3.1.2 开始安装RHEL 9 36
3.1.3 安装后的设置工作 43
3.2 在云服务器上部署RHEL 9 45
3.3 Linux系统管理 47
3.3.1 登录系统 47
3.3.2 用户管理 49
3.3.3 进程管理 54
3.3.4 软件包管理 57
3.4 Linux性能优化 61
3.4.1 关闭不需要的服务进程 61
3.4.2 文件系统参数优化 63
3.4.3 内核参数优化 65
3.5 小结 66
3.6 习题 66
第4章 Linux网络接口配置 68
4.1 TCP/IP网络基础 68
4.1.1 网络协议 68
4.1.2 OSI参考模型 68
4.1.3 TCP/IP模型 70
4.2 网络接口配置 71
4.2.1 主机名 71
4.2.2 IP地址 71
4.2.3 子网掩码 73
4.2.4 默认网关地址 74
4.2.5 域名服务器 74
4.2.6 DHCP服务器 74
4.3 配置以太网连接 75
4.3.1 添加以太网连接 75
4.3.2 配置网络参数 77
4.3.3 配置无线以太网连接 79
4.4 小结 80
4.5 习题 80
第5章 Linux网络管理与故障诊断 82
5.1 Linux网络设置命令 82
5.1.1 网络接口配置命令——ifconfig 82
5.1.2 检查网络是否通畅命令——ping 84
5.1.3 追踪数据包传输路径命令——traceroute 85
5.1.4 管理系统ARP缓存命令——arp 87
5.1.5 域名查找命令——dig 89
5.2 网络配置文件 91
5.2.1 网络服务配置文件 91
5.2.2 网络设备配置文件 92
5.2.3 网络地址解析文件 93
5.3 网络故障诊断 94
5.3.1 诊断网卡故障 94
5.3.2 网卡驱动程序 95
5.3.3 诊断网络层问题 97
5.3.4 诊断传输层和应用层问题 98
5.4 小结 99
5.5 习题 100
第2篇 Linux主机与网络安全
第6章 Linux主机安全 102
6.1 网络端口 102
6.1.1 什么是端口 102
6.1.2 端口的分类 103
6.1.3 查看本机端口的状态 103
6.1.4 端口的关闭与启用 105
6.1.5 端口扫描工具Nmap 106
6.2 Linux自动更新 109
6.2.1 自动更新的意义 110
6.2.2 本地YUM源客户端配置 111
6.2.3 YUM客户端的使用 112
6.3 Linux系统漏洞检测工具OpenSCAP 113
6.3.1 OpenSCAP简介 113
6.3.2 使用OpenSCAP扫描系统 114
6.3.3 OSPP和PCI DSS合规性扫描 115
6.4 SELinux简介 120
6.4.1 SELinux的工作流程 120
6.4.2 SELinux的配置 121
6.4.3 SELinux应用实例 123
6.5 小结 125
6.6 习题 125
第7章 Linux系统日志 127
7.1 Linux系统日志基础知识 127
7.1.1 Linux系统日志进程的运行 127
7.1.2 Linux系统日志的配置 128
7.1.3 查看Linux系统日志 130
7.2 Linux系统日志高级专题 130
7.2.1 日志的转储 131
7.2.2 登录日志 132
7.2.3 记账功能 133
7.3 日志分析工具 135
7.3.1 Logcheck日志分析工具 135
7.3.2 SwatchDog日志分析工具 136
7.4 小结 138
7.5 习题 138
第8章 Linux路由配置 140
8.1 路由的基本概念 140
8.1.1 路由的原理 140
8.1.2 路由表 141
8.1.3 静态路由和动态路由 142
8.2 Linux静态路由配置 143
8.2.1 route命令格式 143
8.2.2 普通客户机的路由设置 144
8.2.3 路由器配置实例 145
8.3 Linux的策略路由 146
8.3.1 策略路由的概念 146
8.3.2 路由表管理 147
8.3.3 路由策略管理 149
8.3.4 策略路由应用实例 150
8.4 小结 151
8.5 习题 152
第9章 Linux防火墙配置 153
9.1 Firewalld防火墙简介 153
9.2 启用Firewalld 153
9.3 管理服务与端口 154
9.3.1 Firewalld命令行管理工具 154
9.3.2 Firewalld图形管理工具 157
9.4 使用Web接口配置Firewalld 162
9.5 使用Firewalld防火墙配置NAT 164
9.5.1 NAT简介 164
9.5.2 配置IP地址伪装 166
9.5.3 配置源NAT和目的NAT 166
9.6 小结 166
9.7 习题 167
第10章 Snort入侵检测系统 168
10.1 入侵检测简介 168
10.1.1 网络安全简介 168
10.1.2 常见的网络攻击类型 169
10.1.3 入侵检测系统 173
10.2 Snort的安装与使用 174
10.2.1 Snort简介 174
10.2.2 Snort 3的安装与运行 175
10.2.3 Snort命令格式 180
10.2.4 用Snort抓取数据包 181
10.3 配置Snort 3 183
10.3.1 Snort 3配置文件 183
10.3.2 配置Snort规则文件 184
10.3.3 配置snort.lua文件 185
10.3.4 设置Snort开机自启动 190
10.4 编写Snort规则 191
10.4.1 Snort规则基础 191
10.4.2 Snort规则头 191
10.4.3 Snort规则选项 193
10.5 小结 195
10.6 习题 196
第3篇 Linux常见服务器架设
第11章 远程管理Linux 198
11.1 架设SSH服务器 198
11.1.1 SSH概述 198
11.1.2 OpenSSH服务器的安装和运行 199
11.1.3 SSH客户端的使用 201
11.1.4 配置OpenSSH客户端 204
11.1.5 OpenSSH的端口转发功能 206
11.1.6 基于Windows系统的SSH客户端 207
11.1.7 配置OpenSSH服务器 211
11.2 使用VNC实现远程管理 216
11.2.1 VNC简介 216
11.2.2 VNC服务器的安装与运行 216
11.2.3 VNC客户端 218
11.2.4 VNC服务器配置 220
11.3 小结 222
11.4 习题 223
第12章 DHCP服务 224
12.1 DHCP服务概述 224
12.1.1 DHCP的功能 224
12.1.2 DHCP的工作过程 225
12.1.3 DHCP的报文格式 227
12.1.4 DHCP与BOOTP 228
12.2 安装与运行DHCP服务器 229
12.2.1 安装DHCP服务器 229
12.2.2 运行DHCP服务器 229
12.2.3 DHCP客户端 231
12.3 配置DHCP服务器 234
12.3.1 ISC DHCP配置参数 234
12.3.2 ISC DHCP配置声明和选项 236
12.3.3 ISC DHCP的DDNS功能 239
12.3.4 客户端租约数据库文件dhcpd.lease 240
12.3.5 DHCP中继代理 242
12.4 小结 244
12.5 习题 244
第13章 DNS服务器架设与应用 245
13.1 DNS的工作原理 245
13.1.1 名称解析方法 245
13.1.2 DNS的组成 246
13.1.3 DNS查询过程 247
13.1.4 DNS报文格式 249
13.1.5 实际的DNS报文数据 251
13.2 BIND的安装与运行 252
13.2.1 BIND简介 252
13.2.2 BIND的获取与安装 252
13.2.3 BIND的简单配置与运行 253
13.2.4 Chroot的功能 256
13.2.5 使用Rndc 257
13.3 BIND的配置 259
13.3.1 BIND的主配置文件 259
13.3.2 根服务器文件named.root 263
13.3.3 区域数据文件 264
13.3.4 反向解析区域数据文件 265
13.3.5 DNS负载均衡 266
13.3.6 直接域名、泛域名与子域 268
13.3.7 辅域服务器和只缓存服务器 269
13.4 小结 271
13.5 习题 272
第14章 Web服务器架设和管理 273
14.1 HTTP概述 273
14.1.1 HTTP的通信过程 273
14.1.2 HTTP的请求行和应答行 275
14.1.3 HTTP的头域 276
14.1.4 HTTP数据包实例 278
14.1.5 持久连接和非持久连接 281
14.2 Apache软件的安装与运行 283
14.2.1 Apache简介 283
14.2.2 Apache软件的获取与安装 284
14.2.3 Apache软件的运行 285
14.3 Apache服务器的配置 287
14.3.1 Apache全局配置选项 287
14.3.2 Apache主服务器配置 287
14.3.3 目录访问控制 290
14.3.4 配置用户的个人网站 294
14.3.5 认证与授权配置 295
14.3.6 虚拟主机配置 298
14.3.7 日志记录 300
14.3.8 让Apache支持SSL 302
14.4 Apache对动态网页的支持 306
14.4.1 CGI脚本 306
14.4.2 使Apache支持PHP 8 307
14.4.3 使Apache支持JSP 309
14.5 小结 312
14.6 习题 313
第15章 MySQL数据库服务器架设 314
15.1 数据库简介 314
15.1.1 数据库的基本概念 314
15.1.2 SQL简介 315
15.1.3 MySQL数据库简介 316
15.2 架设MariaDB服务器 317
15.2.1 MariaDB软件的安装与运行 317
15.2.2 MariaDB数据库客户端 318
15.2.3 MariaDB图形界面管理工具 320
15.3 MariaDB服务器的配置与连接 323
15.3.1 配置文件my.cnf 323
15.3.2 MariaDB进程配置 325
15.3.3 编程语言与MariaDB数据库的连接 327
15.4 小结 329
15.5 习题 329
第16章 Postfix邮件服务器架设 330
16.1 邮件系统的工作原理 330
16.1.1 邮件系统的组成与传输流程 330
16.1.2 简单邮件传输协议(SMTP) 331
16.1.3 邮局协议(POP3) 334
16.1.4 Internet消息访问协议(IMAP) 336
16.2 Postfix邮件系统 338
16.2.1 Postfix概述 338
16.2.2 Postfix邮件系统结构 339
16.2.3 Postfix服务器软件的安装与运行 341
16.3 Postfix服务器的配置 342
16.3.1 Postfix服务器的基本配置 343
16.3.2 Postfix邮件接收域 346
16.3.3 配置SMTP认证 348
16.4 Postfix与其他软件的集成 351
16.4.1 使用Dovecot架设POP3和IMAP服务器 351
16.4.2 使用MariaDB存储邮件账号 354
16.4.3 使用SquirreLMail构建Web界面的邮件客户端 355
16.4.4 使用Procmail过滤邮件 358
16.5 小结 360
16.6 习题 360
第17章 共享文件系统 362
17.1 NFS服务的安装、运行与配置 362
17.1.1 NFS概述 362
17.1.2 远程过程调用RPC 363
17.1.3 NFS协议 364
17.1.4 NFS服务的安装与运行 366
17.1.5 NFS服务器共享目录的导出 368
17.1.6 在客户端使用NFS服务 371
17.1.7 自动挂载NFS文件系统 374
17.2 Samba服务的安装、运行与配置 375
17.2.1 SMB协议简介 375
17.2.2 NetBIOS协议简介 376
17.2.3 Samba简介 378
17.2.4 Samba服务器的安装与运行 379
17.2.5 与Samba配置有关的Windows术语 381
17.2.6 配置Samba服务器的全局选项 383
17.2.7 Samba的共享配置 385
17.2.8 Samba客户端 387
17.3 小结 389
17.4 习题 389
第18章 Squid代理服务器架设 391
18.1 代理服务概述 391
18.1.1 代理服务器的工作原理 391
18.1.2 Web缓存的类型和特点 393
18.1.3 三种典型的代理方式 394
18.2 Squid服务器的安装与运行 396
18.2.1 Squid简介 396
18.2.2 Squid软件的安装与运行 397
18.2.3 代理的客户端配置 398
18.3 配置Squid服务器 399
18.3.1 Squid的常规配置选项 399
18.3.2 Squid访问控制 401
18.3.3 Squid多级代理配置 404
18.3.4 透明代理配置 405
18.3.5 反向代理配置 407
18.3.6 Squid日志管理 408
18.4 小结 410
18.5 习题 410
第19章 LDAP服务的配置与应用 412
19.1 目录服务概述 412
19.1.1 目录服务简介 412
19.1.2 X.500简介 413
19.1.3 轻量级目录访问协议(LDAP) 414
19.1.4 LDAP的基础模型 415
19.1.5 流行的LDAP产品 416
19.2 架设OpenLDAP服务器 418
19.2.1 OpenLDAP服务器的安装与运行 418
19.2.2 OpenLDAP服务器的主配置文件 419
19.2.3 使用LDIF添加目录树 422
19.2.4 使用图形界面工具管理LDAP目录 426
19.3 使用OpenLDAP进行用户认证 428
19.4 小结 428
19.5 习题 429
第20章 网络时间服务器的配置与应用 430
20.1 网络时间服务概述 430
20.1.1 NTP的用途与工作原理 430
20.1.2 NTP的报文格式与工作模式 432
20.1.3 NTP服务的网络体系结构 433
20.1.4 时区 434
20.2 Chrony时间服务概述 435
20.2.1 Chrony简介 435
20.2.2 Chrony的优势 436
20.3 Chrony服务器的安装与配置 437
20.3.1 安装Chrony服务器 437
20.3.2 配置Chrony服务器 438
20.3.3 配置Chrony客户端 439
20.4 启动与测试Chrony服务器 439
20.4.1 启动Chrony服务器 439
20.4.2 测试Chrony服务器 440
20.5 小结 444
20.6 习题 444
第21章 容器管理 445
21.1 容器简介 445
21.1.1 什么是容器 445
21.1.2 容器与虚拟机 445
21.1.3 容器镜像的类型 446
21.1.4 UBI镜像 446
21.1.5 安装容器工具 448
21.2 使用Podman和UBI运行容器 449
21.2.1 Podman的语法格式 449
21.2.2 运行容器 451
21.2.3 管理容器 455
21.3 使用Buildah和Skopeo 458
21.3.1 Buildah和Skopeo应用实例 458
21.3.2 使用Buildah构建容器镜像 459
21.3.3 使用Skopeo检查远程容器镜像 460
21.4 小结 461
21.5 习题 461