第1篇 预备知识 2
第1章 网络硬件知识 2
1.1 计算机网络 2
1.1.1 计算机网络的定义 2
1.1.2 计算机网络的功能 3
1.1.3 计算机网络分类 4
1.2 局域网传输介质 6
1.2.1 双绞线 7
1.2.2 同轴电缆 9
1.2.3 光导纤维 9
1.2.4 无线介质 11
1.3 局域网连网设备 12
1.3.1 网卡 12
1.3.2 集线器 14
1.3.3 交换机 14
1.3.4 路由器 16
1.3.5 三层交换机 17
1.4 几种局域网架设实例 17
1.4.1 双机互连网络 18
1.4.2 小型交换网络 18
1.4.3 企业网络 19
1.4.4 无线局域网 19
1.5 小结 20
第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
第3章 Linux系统的安装、管理与优化 34
3.1 Red Hat Enterprise Linux 5的安装 34
3.1.1 准备安装RHEL 5 34
3.1.2 开始安装RHEL 5 35
3.1.3 安装后的设置工作 39
3.2 Linux系统管理 42
3.2.1 登录系统 42
3.2.2 用户管理 43
3.2.3 进程管理 47
3.2.4 软件包管理 49
3.3 Linux性能优化 52
3.3.1 关闭不需要的服务进程 52
3.3.2 文件系统参数优化 53
3.3.3 内核参数优化 55
3.4 小结 56
第4章 Linux网络接口配置 57
4.1 TCP/IP网络基础 57
4.1.1 网络协议 57
4.1.2 ISO/OSI模型 57
4.1.3 TCP/IP模型 59
4.2 网络接口配置的基本内容 60
4.2.1 主机名 60
4.2.2 IP地址 60
4.2.3 子网掩码 62
4.2.4 默认网关地址 63
4.2.5 域名服务器(DNS) 63
4.2.6 DHCP服务器 64
4.3 配置以太网连接 64
4.3.1 添加以太网连接 65
4.3.2 配置网络参数 66
4.3.3 使用配置文件 69
4.3.4 配置无线以太网连接 70
4.4 配置拨号连接 71
4.4.1 使用Modem拨号上网 71
4.4.2 通过xDSL拨号上网 73
4.4.3 使用ISDN拨号上网 73
4.5 小结 75
第5章 Linux网络管理与故障诊断 76
5.1 Linux网络设置命令 76
5.1.1 网络接口配置命令——ifconfig 76
5.1.2 检查网络是否通畅——ping命令 78
5.1.3 追踪数据包传输路径——traceroute命令 79
5.1.4 管理系统ARP缓存——arp命令 81
5.1.5 域名查找工具——dig命令 83
5.2 网络相关的配置文件 85
5.2.1 /etc/sysconfig/network文件 85
5.2.2 /etc/sysconfig/network-scripts/ifcfg-ethN文件 86
5.2.3 /etc/resolv.conf和/etc/hosts文件 87
5.3 Linux下的网络故障诊断 88
5.3.1 诊断网卡故障 88
5.3.2 网卡驱动程序 90
5.3.3 诊断网络层问题 92
5.3.4 诊断传输层和应用层问题 92
5.4 小结 94
第2篇 Linux主机与网络安全措施第6章 Linux主机安全 96
6.1 网络端口 96
6.1.1 什么是端口 96
6.1.2 端口的分类 97
6.1.3 查看本机的端口状态 97
6.1.4 端口的关闭与启用 99
6.1.5 端口扫描工具nmap 101
6.2 Linux自动更新 104
6.2.1 自动更新的意义 104
6.2.2 CentOS的yum客户端配置 105
6.2.3 yum客户端的使用 107
6.3 Linux平台的防毒软件 109
6.3.1 Linux平台下的计算机病毒 109
6.3.2 Clamav反病毒软件的获取与安装 110
6.3.3 Clamav反病毒软件的使用 110
6.3.4 以后台进程方式运行Clamav反病毒软件 112
6.3.5 Clamav病毒库的更新 116
6.4 SELinux简介 119
6.4.1 SELinux的工作流程 119
6.4.2 SELinux的配置 120
6.4.3 SELinux应用示例 121
6.5 小结 124
第7章 Linux系统日志 125
7.1 Linux系统日志基础 125
7.1.1 Linux系统日志进程的运行 125
7.1.2 Linux系统日志配置 126
7.1.3 查看Linux系统日志 128
7.2 Linux日志高级专题 129
7.2.1 日志的转储 129
7.2.2 登录日志 130
7.2.3 记账功能 131
7.3 日志分析工具 133
7.3.1 Logcheck日志分析工具 133
7.3.2 Swatch日志分析工具 134
7.4 小结 136
第8章 Linux路由配置 137
8.1 路由的基本概念 137
8.1.1 路由原理 137
8.1.2 路由表 138
8.1.3 静态路由和动态路由 139
8.2 Linux静态路由配置 140
8.2.1 route命令格式 140
8.2.2 普通客户机的路由设置 141
8.2.3 路由器配置实例 142
8.3 Linux的策略路由 143
8.3.1 策略路由的概念 144
8.3.2 路由表管理 144
8.3.3 路由策略管理 146
8.3.4 策略路由应用实例 147
8.4 小结 149
第9章 Linux防火墙配置 150
9.1 iptables防火墙介绍 150
9.1.1 netfilter框架 150
9.1.2 iptables防火墙内核模块 151
9.1.3 iptables命令格式 152
9.2 iptables主机防火墙 155
9.2.1 iptables防火墙的运行与管理 155
9.2.2 RHEL 5开机时默认的防火墙规则 157
9.2.3 管理主机防火墙规则 159
9.2.4 常用的主机防火墙规则 161
9.2.5 使用图形界面管理主机防火墙规则 162
9.3 iptables网络防火墙配置 164
9.3.1 保护服务器子网的防火墙规则 164
9.3.2 保护内部客户机的防火墙规则 166
9.3.3 mangle表应用举例 168
9.4 iptables防火墙的NAT配置 169
9.4.1 NAT简介 169
9.4.2 使用iptables配置源NAT 170
9.4.3 使用iptables配置目的NAT 171
9.5 小结 173
第10章 Snort入侵检测系统 174
10.1 入侵检测简介 174
10.1.1 网络安全 174
10.1.2 常见的网络攻击类型 175
10.1.3 入侵检测系统 178
10.2 Snort的安装与使用 180
10.2.1 Snort简介 180
10.2.2 Snort的安装与运行 180
10.2.3 Snort命令的格式 181
10.2.4 用Snort抓取数据包 182
10.3 配置Snort 184
10.3.1 定义Snort变量 185
10.3.2 配置Snort选项 186
10.3.3 配置Snort预处理模块 188
10.3.4 配置Snort输出插件 191
10.3.5 配置Snort规则文件 192
10.4 编写Snort规则 193
10.4.1 Snort规则基础 193
10.4.2 Snort规则头 193
10.4.3 Snort规则选项 195
10.5 小结 197
第3篇 Linux常见服务器架设篇第11章 远程管理Linux 200
11.1 架设Telnet服务器 200
11.1.1 远程管理 200
11.1.2 Telnet工作原理 201
11.1.3 Telnet协议 202
11.1.4 实际的Telnet数据包 204
11.1.5 Telnet服务器软件的安装 205
11.1.6 Telnet服务器软件的运行 206
11.1.7 Telnet服务器软件的配置 208
11.2 架设SSH服务器 210
11.2.1 SSH概述 210
11.2.2 OpenSSH服务器的安装和运行 211
11.2.3 SSH客户端的使用 213
11.2.4 配置OpenSSH客户端 216
11.2.5 OpenSSH的端口转发功能 217
11.2.6 Windows下的SSH客户端 219
11.2.7 配置OpenSSH服务器 223
11.3 使用VNC实现远程管理 229
11.3.1 VNC简介 230
11.3.2 VNC服务器的安装与运行 230
11.3.3 VNC客户端 232
11.3.4 VNC服务器配置 234
11.4 小结 237
第12章 架设FTP服务器 238
12.1 FTP的工作原理 238
12.1.1 FTP的工作流程 238
12.1.2 FTP协议规范之一:数据传送格式 239
12.1.3 FTP协议规范之二:控制命令种类 240
12.1.4 FTP协议规范之三:应答格式 242
12.1.5 用抓包工具观察FTP协议数据包 243
12.2 FTP客户端 244
12.2.1 数据连接的主动方式和被动方式 244
12.2.2 匿名账号 246
12.2.3 数据传输的ASCII模式和二进制模式 247
12.2.4 FTP客户端常用命令详解 248
12.2.5 图形界面的FTP客户端 254
12.3 Vsftpd的安装与运行 256
12.3.1 Vsftpd服务器软件简介 256
12.3.2 Vsftpd的安装 257
12.3.3 Vsftpd的运行与简单配置 257
12.4 Vsftpd高级配置 260
12.4.1 初始配置文件 260
12.4.2 匿名用户配置 263
12.4.3 Vsftpd虚拟主机的配置 265
12.4.4 虚拟用户的配置 267
12.4.5 Vsftpd的日志 270
12.5 磁盘限额 272
12.5.1 设置支持磁盘限额的分区 272
12.5.2 设置对用户的磁盘限额 273
12.5.3 启用和终止磁盘限额 274
12.6 小结 275
第13章 DHCP服务 276
13.1 DHCP服务概述 276
13.1.1 DHCP的功能 276
13.1.2 DHCP的工作过程 277
13.1.3 DHCP报文格式 279
13.1.4 DHCP与BOOTP 280
13.2 DHCP服务器的安装与运行 281
13.2.1 DHCP服务的安装 281
13.2.2 DHCP服务器的运行 282
13.2.3 DHCP客户端 283
13.3 DHCP服务配置 285
13.3.1 ISC DHCP配置参数 286
13.3.2 ISC DHCP配置的声明和选项 288
13.3.3 ISC DHCP的DDNS功能 290
13.3.4 客户端租约数据库文件dhcpd.lease 292
13.3.5 DHCP中继代理 294
13.4 小结 295
第14章 DNS服务器架设与应用 296
14.1 DNS工作原理 296
14.1.1 名称解析方法 296
14.1.2 DNS组成 297
14.1.3 DNS查询的过程 298
14.1.4 DNS报文格式 300
14.1.5 实际的DNS报文数据 302
14.2 BIND的安装与运行 303
14.2.1 BIND简介 303
14.2.2 BIND的获取与安装 304
14.2.3 BIND的简单配置与运行 305
14.2.4 chroot功能 308
14.2.5 使用rndc 309
14.3 BIND的配置 311
14.3.1 BIND的主配置文件 311
14.3.2 根服务器文件named.root 315
14.3.3 区域数据文件 316
14.3.4 反向解析区域数据文件 318
14.3.5 配置DNS负载均衡功能 319
14.3.6 直接域名、泛域名与子域 320
14.3.7 辅域服务器和只缓存服务器 322
14.4 小结 324
第15章 Web服务器架设和管理 325
15.1 HTTP协议 325
15.1.1 HTTP协议的通信过程 325
15.1.2 HTTP协议的请求行和应答行 327
15.1.3 HTTP的头域 328
15.1.4 HTTP协议数据包实例 330
15.1.5 持久连接和非持久连接 333
15.2 Apache的安装与运行 335
15.2.1 Apache简介 335
15.2.2 Apache软件的获取与安装 336
15.2.3 Apache的运行 337
15.3 Apache服务器的配置 339
15.3.1 Apache全局配置选项 339
15.3.2 Apache主服务器配置 341
15.3.3 目录访问控制 346
15.3.4 配置用户个人网站 349
15.3.5 认证与授权配置 351
15.3.6 虚拟主机配置 354
15.3.7 日志记录 357
15.3.8 让Apache支持SSL 359
15.4 Apache对动态网页的支持 362
15.4.1 CGI脚本 362
15.4.2 使Apache支持PHP5 364
15.4.3 使Apache支持JSP 365
15.5 小结 369
第16章 MySQL数据库服务器架设 370
16.1 数据库简介 370
16.1.1 数据库的基本概念 370
16.1.2 SQL语言简介 371
16.1.3 MySQL数据库简介 372
16.2 MySQL数据库服务器的架设 373
16.2.1 MySQL数据库软件的安装与运行 373
16.2.2 MySQL数据库客户端 375
16.2.3 MySQL图形界面管理工具 377
16.3 MySQL服务器的配置与连接 380
16.3.1 配置文件my.cnf 380
16.3.2 mysqld进程配置 383
16.3.3 MySQL实例管理器 385
16.3.4 编程语言与MySQL数据库的连接 388
16.4 小结 389
第17章 Postfix邮件服务器架设 390
17.1 邮件系统工作原理 390
17.1.1 邮件系统的组成及传输流程 390
17.1.2 简单邮件传输协议SMTP 391
17.1.3 邮局协议POP3 394
17.1.4 Internet消息访问协议IMAP简介 396
17.2 Postfix邮件系统 398
17.2.1 Postfix概述 398
17.2.2 Postfix邮件系统结构 399
17.2.3 Postfix服务器软件的安装与运行 401
17.3 Postfix服务器的配置 403
17.3.1 Postfix服务器基本配置 403
17.3.2 Postfix邮件接收域 406
17.3.3 配置SMTP认证 408
17.4 Postfix与其他软件的集成 411
17.4.1 用vm-pop3d构建POP3服务器 411
17.4.2 用Dovecot架设POP3和IMAP服务器 413
17.4.3 使用MySQL存储邮件账号 416
17.4.4 用Squirrelmail构建Web界面的邮件客户端 417
17.4.5 用procmail过滤邮件 420
17.5 小结 423
第18章 共享文件系统 424
18.1 NFS服务的安装、运行与配置 424
18.1.1 NFS概述 424
18.1.2 远程过程调用RPC 425
18.1.3 NFS协议 426
18.1.4 NFS服务的安装与运行 428
18.1.5 NFS服务器共享目录的导出 430
18.1.6 使用图形界面管理NFS服务器 433
18.1.7 客户端使用NFS服务 434
18.1.8 自动挂载NFS文件系统 437
18.2 Samba服务的安装、运行与配置 438
18.2.1 SMB协议概述 438
18.2.2 NetBIOS协议 440
18.2.3 Samba概述 442
18.2.4 Samba服务器的安装与运行 442
18.2.5 与Samba配置有关的Windows术语 444
18.2.6 配置Samba服务器的全局选项 445
18.2.7 Samba的共享配置 448
18.2.8 使用图形界面配置Samba服务器 450
18.2.9 Samba客户端 452
18.3 小结 455
第19章 Squid代理服务器架设 456
19.1 代理服务概述 456
19.1.1 代理服务器的工作原理 456
19.1.2 Web缓存的类型和特点 458
19.1.3 3种典型的代理方式 459
19.2 Squid服务器的安装与运行 461
19.2.1 Squid简介 461
19.2.2 Squid软件的安装与运行 462
19.2.3 代理的客户端配置 463
19.3 配置Squid服务器 465
19.3.1 Squid常规配置选项 466
19.3.2 Squid访问控制 468
19.3.3 Squid多级代理配置 470
19.3.4 透明代理配置 472
19.3.5 反向代理配置 473
19.3.6 Squid日志管理 475
19.4 小结 477
第20章 LDAP服务的配置与应用 478
20.1 目录服务概述 478
20.1.1 目录服务 478
20.1.2 X.500简介 479
20.1.3 轻量级目录访问协议LDAP 480
20.1.4 LDAP的基础模型 481
20.1.5 流行的LDAP产品 482
20.2 架设OpenLDAP服务器 484
20.2.1 OpenLDAP服务器的安装与运行 484
20.2.2 OpenLDAP服务器的主配置文件 486
20.2.3 使用LDIF添加目录树 489
20.2.4 使用图形界面工具管理LDAP目录 492
20.3 使用OpenLDAP进行用户认证 494
20.3.1 Linux系统用户认证 494
20.3.2 Apache服务器的用户认证 496
20.4 小结 496
第21章 网络时间服务器的配置与使用 497
21.1 网络时间服务概述 497
21.1.1 NTP协议用途与工作原理 497
21.1.2 NTP协议的报文格式及工作模式 499
21.1.3 NTP服务的网络体系结构 500
21.1.4 时区 501
21.2 NTP服务器的安装、运行与配置 502
21.2.1 NTP服务器的安装与运行 502
21.2.2 NTP服务器端配置 504
21.2.3 NTP服务器的测试 507
21.3 NTP客户端的配置 508
21.3.1 Linux NTP客户端的配置 508
21.3.2 Windows NTP客户端的配置 509
21.4 小结 510
第22章 架设VPN服务器 511
22.1 VPN概述 511
22.1.1 VPN原理 511
22.1.2 VPN协议 513
22.1.3 VPN的身份验证协议 514
22.2 基于PPTP协议的VPN服务器架设 515
22.2.1 PPTP VPN服务器的安装与运行 516
22.2.2 PPTP服务器的配置 517
22.2.3 PPTP Windows客户端的配置与使用 519
22.3 小结 522
第23章 流媒体服务器架设 523
23.1 流媒体技术基础 523
23.1.1 流媒体传输的基本原理 523
23.1.2 实时流媒体协议RTSP 524
23.1.3 流媒体播放方式 525
23.1.4 流媒体文件的压缩格式 526
23.2 Helix Server的安装与运行 527
23.2.1 Helix Server的获取 528
23.2.2 Helix Server的安装 529
23.2.3 Helix Server的运行与停止 531
23.2.4 测试Helix Server 532
23.3 Helix Server的基本配置 534
23.3.1 Helix服务器的Web管理界面 534
23.3.2 端口设置与IP地址绑定 535
23.3.3 连接控制与冗余服务器 536
23.3.4 加载点与HTTP分发 537
23.4 Helix Server的安全设置 538
23.4.1 访问控制 538
23.4.2 用户账号数据库 539
23.4.3 认证域 540
23.4.4 资源保护 542
23.5 小结 545