第1章 Linux系统简介 1
1.1 Linux的发展历史 1
1.2 Linux与GNU、GPL以及POSIX的关系 2
1.2.1 GNU 2
1.2.2 GPL 2
1.2.3 POSIX 3
1.3 Linux的特性 3
1.4 Linux的应用领域 4
1.5 Linux的内核及发行版本 5
1.6 常见的Linux发行版本 5
1.6.1 Red Hat Linux 5
1.6.2 Fedora Core/Fedora 6
1.6.3 Debian 6
1.6.4 Ubuntu 7
1.6.5 SuSE Linux 7
1.7 Linux的主要组成部分 7
1.7.1 内核 8
1.7.2 Shell 8
1.7.3 文件结构 8
1.7.4 实用工具 9
1.8 Linux最新内核版本的新特性 10
第2章 Linux系统启动安全 11
2.1 引导装载程序原理 11
2.2 Linux系统运行级别 12
2.3 LILO引导装载程序 13
2.4 GRUB引导装载程序 15
2.5 Linux系统启动安全保障技术 17
2.5.1 卸载LILO防止入侵 17
2.5.2 为LILO的单用户模式添加口令 18
2.5.3 加固GRUB 19
第3章 Linux文件系统安全 20
3.1 Linux文件系统基本原理和概念 20
3.1.1 Linux常用的文件系统 20
3.1.2 Linux文件 23
3.1.3 Linux目录 24
3.1.4 Linux目录结构 26
3.2 文件/目录访问权限管理 27
3.2.1 文件/目录访问权限 27
3.2.2 使用chmod改变文件/目录的访问权限 28
3.2.3 使用命令chown更改文件/目录的所有权 30
3.2.4 使用setuid/setgid改变执行权限 30
3.3 使用文件系统检查工具保证文件系统安全 32
3.3.1 Tripwire工具简介 32
3.3.2 Tripwire工作原理 32
3.3.3 安装Tripwire 38
3.3.4 配置和使用Tripwire 38
3.3.5 使用Tripwire进行文件监控 42
3.3.6 使用Tripwire的技巧 43
第4章 Linux用户和组管理安全 44
4.1 Linux下的用户和组管理安全概述 44
4.2 几个关键的用户和组文件 44
4.2.1 用户账号文件——passwd 44
4.2.2 用户影子文件——shadow 46
4.2.3 用户组账号文件——group 48
4.2.4 组账号文件——gshadow 49
4.2.5 Linux用户口令加密函数 50
4.2.6 使用pwck和grpck命令验证用户和组文件 50
4.3 安全管理用户和组 53
4.3.1 使用useradd命令添加用户 53
4.3.2 使用usermod命令修改用户信息 55
4.3.3 使用userdel命令删除用户 55
4.3.4 使用groupadd命令创建用户组 55
4.3.5 使用groupmod命令修改用户组属性 56
4.3.6 使用groupdel命令删除用户组 57
4.4 用户口令的安全性保证 57
4.4.1 安全用户口令的设定原则 57
4.4.2 使用密码分析工具验证 58
4.5 用户和组文件的安全性保证 60
4.6 使用嵌入式认证模块——PAM 61
4.6.1 PAM的起源 61
4.6.2 Linux-PAM的分层体系结构 62
4.6.3 Linux-PAM的应用 62
第5章 Linux进程管理安全 67
5.1 Linux中的进程原理 67
5.1.1 进程类型 67
5.1.2 进程的状态 67
5.1.3 进程的主要工作模式 68
5.1.4 Linux下的守护进程 69
5.1.5 Linux系统关键进程介绍 69
5.2 Linux进程管理 71
5.2.1 使用ps命令查看进程状态 71
5.2.2 使用top命令查看进程状态 73
5.2.3 使用kill命令终止进程 74
5.2.4 使用sleep命令暂停进程 75
5.2.5 使用nice改变进程执行优先级 76
5.2.6 使用renice修改优先级 76
5.2.7 使用pgrep命令查找进程 76
5.3 Linux进程文件系统PROC 77
5.3.1 使用PROC查看进程 77
5.3.2 内核模块介绍 79
5.3.3 PROC常用的调用接口 81
第6章 Linux中的日志管理 85
6.1 Linux日志管理简介 85
6.2 Linux基本日志管理机制 86
6.2.1 who命令 86
6.2.2 users命令 87
6.2.3 last命令 87
6.2.4 ac命令 87
6.2.5 lastlog命令 88
6.3 使用syslog设备 88
6.3.1 syslog简介 88
6.3.2 syslog配置文件 88
6.3.3 syslog进程 90
6.3.4 实际应用中的syslog调用接口 91
6.4 Linux日志使用注意事项 93
6.5 Linux日志输出查看方式 93
6.5.1 dmesg 93
6.5.2 tail 95
6.5.3 more和less 95
6.5.4 其他方式 97
第7章 Linux磁盘安全管理 98
7.1 安全管理磁盘 98
7.1.1 磁盘存储设备的命名 98
7.1.2 管理磁盘空间 99
7.2 硬件状态监控 106
7.2.1 获取和安装dmidecode工具 106
7.2.2 使用硬件状态监控工具 106
7.3 安全管理磁盘阵列 108
7.3.1 磁盘阵列原理 108
7.3.2 磁盘阵列的分类 108
7.3.3 Linux下使用磁盘阵列 110
7.4 Linux下的备份机制 113
7.4.1 常用备份命令 113
7.4.2 常用开源备份软件 115
7.4.3 备份策略 117
第8章 SELinux原理 121
8.1 Linux操作系统安全性分析 121
8.1.1 Linux操作系统安全级别 121
8.1.2 Linux操作系统主要安全机制 123
8.2 操作系统安全原理 124
8.2.1 BLP安全模型 124
8.2.2 RBAC模型 125
8.2.3 多级别安全机制 126
8.2.4 常见的操作系统加固技术 127
8.3 SELinux:Linux安全增强机制 128
8.3.1 SELinux的来源 128
8.3.2 SELinux机制介绍 128
8.3.3 SELinux与传统Linux的区别 129
8.3.4 SELinux中的上下文 130
8.3.5 SELinux中的目标策略 134
8.3.6 SELinux配置文件和策略目录介绍 140
8.3.7 使用SELinux的准备 142
8.3.8 SELinux中布尔变量的使用 145
8.4 国内外相关安全标准概述 148
第9章 Linux网络原理 151
9.1 计算机网络体系结构和参考模型 151
9.1.1 计算机网络简介及模型 151
9.1.2 OSI七层模型 152
9.1.3 TCP/IP四层模型 154
9.2 TCP/IP协议栈原理 155
9.2.1 IP 156
9.2.2 TCP 159
9.2.3 UDP 161
9.3 IPv6 162
9.4 重要相关协议介绍 164
9.4.1 ICMP 164
9.4.2 ARP/RARP 165
9.4.3 SNMP 167
9.5 Linux重要网络应用端口 168
9.5.1 端口技术原理 168
9.5.2 端口分类 169
9.5.3 常用端口介绍 169
9.5.4 网络端口扫描工具nmap 170
9.6 Linux网络安全管理命令 174
9.6.1 ifconfig:网络配置命令 174
9.6.2 ifup/ifdown:网卡激活/停用命令 175
9.6.3 hostname:主机名更改命令 175
9.6.4 route:路由配置命令 175
9.6.5 ping:网络连通测试命令 176
9.6.6 Traceroute:网络路径跟踪命令 176
9.6.7 netstat:网络状态查询命令 176
9.6.8 arp命令 177
9.6.9 arpwatch:监听ARP记录命令 177
9.7 使用xinetd管理Linux网络服务 177
9.7.1 xinetd原理 177
9.7.2 /etc/xinetd.conf文件 178
9.7.3 xinetd服务配置文件 179
9.7.4 通过文件配置使用xinetd 180
9.7.5 通过图形用户界面配置使用xinetd 181
第10章 Linux网络安全威胁 182
10.1 网络安全简介 182
10.1.1 网络信息安全的要素 184
10.1.2 网络中存在的威胁 185
10.1.3 网络信息安全领域的研究重点 185
10.2 Linux网络面临的常见威胁 187
10.2.1 端口扫描 187
10.2.2 主机扫描 188
10.2.3 操作系统“指纹”扫描 189
10.2.4 木马 189
10.2.5 DoS攻击和DDoS攻击 192
10.2.6 Linux下的病毒 196
10.2.7 IP地址欺骗 198
10.2.8 ARP欺骗 198
10.2.9 网络钓鱼 198
10.2.10 僵尸网络 201
10.2.11 跨站脚本攻击 202
10.2.12 零日攻击 202
第11章 构建安全的DNS服务 204
11.1 DNS服务安全简介 204
11.1.1 DNS服务简介 204
11.1.2 DNS服务存在的问题和面临的威胁 207
11.2 安装DNS的最新版本 208
11.3 正确配置DNS相关文件 209
11.3.1 几个重要的DNS服务器配置文件类型 209
11.3.2 named.conf主配置文件 210
11.3.3 区文件 212
11.3.4 DNS服务器配置实例 213
11.3.5 使用Dlint工具进行DNS配置文件检查 215
11.3.6 使用命令检验DNS功能 216
11.4 配置辅助域名服务器进行冗余备份 219
11.5 配置高速缓存服务器缓解DNS访问压力 220
11.6 配置DNS负载均衡 222
11.7 安全配置和使用DNS 222
11.7.1 限制名字服务器递归查询功能 222
11.7.2 限制区传送 222
11.7.3 限制查询 223
11.7.4 分离DNS 223
11.7.5 隐藏BIND的版本信息 224
11.7.6 使用非root权限运行BIND 224
11.7.7 删除DNS上不必要的其他服务 225
11.7.8 合理配置DNS的查询方式 225
11.8 使用dnstop监控DNS流量 226
第12章 构建安全的Web服务 228
12.1 Web服务器简介 228
12.1.1 HTTP基本原理 228
12.1.2 Apache服务器简介 229
12.2 Apache服务器面临的网络威胁 231
12.3 安装Apache的最新版本 231
12.3.1 获取Apache安装包 231
12.3.2 使用httpd-2.2.11.tar.gz软件包安装Apache 232
12.3.3 使用httpd-2.2.11.tar.bz2软件包安装Apache 232
12.4 安全配置Apache服务器 233
12.4.1 httpd.conf配置文件格式 233
12.4.2 安全设定httpd.conf文件中的全局配置选项 234
12.5 使用特定的用户运行Apache服务器 237
12.6 配置隐藏Apache服务器的版本号 238
12.7 实现访问控制 240
12.7.1 访问控制常用配置指令 240
12.7.2 使用.htaccess文件进行访问控制 241
12.8 使用认证和授权 244
12.8.1 认证和授权指令 244
12.8.2 管理认证口令文件和认证组文件 245
12.8.3 认证和授权使用实例 245
12.9 设置虚拟目录和目录权限 247
12.10 使用Apache中的安全模块 249
12.10.1 Apache服务器中安全相关模块 249
12.10.2 开启安全模块 250
12.11 使用SSL保证安全 251
12.11.1 SSL简介 251
12.11.2 Apache中运用SSL的基本原理 252
12.11.3 安装和启动SSL 254
12.12 设置虚拟主机 257
12.12.1 设置IP型虚拟主机 257
12.12.2 设置名字型虚拟主机 260
12.13 Apache日志记录 261
第13章 构建安全的FTP服务 265
13.1 FTP简介 265
13.1.1 FTP协议简介 265
13.1.2 FTP服务器连接过程及模式 265
13.1.3 FTP文件类型 266
13.1.4 FTP文件结构 267
13.1.5 FTP传输模式 267
13.1.6 FTP常用命令 267
13.1.7 FTP典型消息 268
13.2 FTP服务面临的安全威胁 268
13.3 安装最新版本的vsftpd服务器 269
13.4 安全配置vsftpd.conf文件 270
13.4.1 设定独立模式的相关配置 270
13.4.2 设定登录的相关配置 271
13.4.3 设定工作目录和chroot“监牢”的相关配置 272
13.4.4 设定文件下载与上传的相关配置 273
13.4.5 设定消息的相关配置 274
13.4.6 设定显示的相关配置 274
13.4.7 设定日志的相关配置 275
13.4.8 设定连接参数 275
13.4.9 其他设定 276
13.5 安全配置vsftpd.ftpusers文件 276
13.6 安全配置vsftpd.user_list文件 277
13.7 安全使用vsftpd服务器 278
13.7.1 匿名用户使用vsftpd服务器 278
13.7.2 本地用户使用vsftpd服务器 279
13.7.3 虚拟用户使用vsftpd服务器 282
13.7.4 配置vsftpd服务器在非标准端口工作 284
13.7.5 配置虚拟FTP服务器 285
13.7.6 使用Linux-PAM控制vsftpd用户的登录 287
13.8 安全配置Wu-ftpd 288
13.8.1 配置ftpaccess文件 288
13.8.2 配置ftphosts文件 294
13.8.3 配置/etc/ftpservers文件 295
13.8.4 配置ftpusers文件 295
第14章 构建安全的电子邮件服务 297
14.1 电子邮件系统原理 297
14.1.1 邮件传递代理 297
14.1.2 邮件存储和获取代理 297
14.1.3 邮件客户代理 298
14.1.4 电子邮件系统的常用协议 298
14.2 SMTP介绍 299
14.2.1 SMTP的模型 299
14.2.2 SMTP的基本命令 300
14.2.3 电子邮件的结构 301
14.2.4 OpenRelay的原理 303
14.2.5 电子邮件系统与DNS 304
14.3 电子邮件系统面临的安全威胁 304
14.4 安全使用sendmail Server 305
14.4.1 安装最新版本的sendmail服务器 305
14.4.2 安全设置sendmail.cf文件中的选项 305
14.4.3 使用sendmail.mc文件 308
14.4.4 使用access数据库 309
14.4.5 配置带SMTP认证的sendmail服务器 310
14.5 安全使用Postfix电子邮件服务器 311
14.5.1 安全配置Postfix邮件服务器 311
14.5.2 Postfix使用SMTP安全认证 313
14.6 垃圾邮件防范技术 314
14.6.1 常用技术 315
14.6.2 设置sendmail防范垃圾邮件 316
14.6.3 安全配置Postfix防范垃圾邮件 317
14.6.4 客户端配置垃圾邮件防护功能 317
第15章 使用防火墙保证Linux网络安全 322
15.1 防火墙简介 322
15.2 防火墙的主要分类 323
15.2.1 按防火墙的软、硬件形式划分 323
15.2.2 按防火墙的发展技术划分 323
15.2.3 按防火墙的结构划分 323
15.2.4 按防火墙的应用部署位置划分 324
15.3 防火墙技术及其特点 324
15.3.1 数据包过滤防火墙技术 324
15.3.2 应用层网关防火墙技术 324
15.3.3 代理防火墙技术 325
15.4 新一代防火墙的主要技术特点 325
15.4.1 传统防火墙的发展历史 325
15.4.2 防火墙体系结构 326
15.4.3 新一代分布式防火墙概述 328
15.4.4 新一代嵌入式防火墙技术 329
15.4.5 新一代智能防火墙技术 329
15.4.6 防火墙技术的发展趋势 330
15.5 使用Netfilter/iptables防火墙框架 331
15.5.1 Netfilter/iptables框架简介 331
15.5.2 安装Netfilter/iptables系统 332
15.5.3 iptables工作原理 333
15.5.4 使用iptable的过滤规则 334
15.5.5 使用iptables保障网络服务安全 337
第16章 使用IDS保证Linux网络安全 340
16.1 IDS简介 340
16.2 IDS分类 341
16.3 Snort介绍 343
16.4 安装Snort 344
16.5 Snort的工作模式 344
16.6 使用Snort 346
16.6.1 命令简介 346
16.6.2 查看ICMP数据报文 347
16.6.3 配置Snort的输出方式 349
16.6.4 配置Snort规则 349
16.7 编写Snort规则 351
16.7.1 规则动作 352
16.7.2 协议 352
16.7.3 IP地址 352
16.7.4 端口号 353
16.7.5 方向操作符 353
16.7.6 activate/dynamic规则对 353
16.7.7 一些重要的指令 354
16.7.8 规则选项 354
16.7.9 一些Snort规则的应用举例 360
16.8 Linux内核IDS:LIDS 361
16.8.1 LIDS简介 361
16.8.2 LIDS安装 362
16.8.3 配置和使用LIDS 363
第17章 构建安全的Linux远程登录 367
17.1 SSH服务简介 367
17.2 安装最新版本的OpenSSH 368
17.3 安全配置openSSH 370
17.4 SSH的密钥管理 373
17.5 使用scp命令远程复制文件 375
17.6 使用SSH设置“加密通道” 375
17.7 配置SSH的客户端 377
17.8 配置SSH自动登录 380
17.9 使用Xmanager 3.0实现Linux远程登录管理 383
第18章 Linux网络流量安全管理 386
18.1 网络流量管理简介 386
18.1.1 流量识别 386
18.1.2 流量统计分析 387
18.1.3 流量限制 388
18.1.4 其他方面 388
18.2 需要管理的常见网络流量 388
18.3 网络流量捕捉:图形化工具Wireshark 389
18.3.1 Wireshark简介 389
18.3.2 层次化的数据包协议分析方法 390
18.3.3 基于插件技术的协议分析器 391
18.3.4 安装Wireshark 391
18.3.5 使用Wireshark 392
18.4 网络流量捕捉:命令行工具tcpdump 396
18.4.1 tcpdump简介 396
18.4.2 安装tcpdump 396
18.4.3 使用tcpdump 397
18.5 网络流量分析——NTOP 400
18.5.1 NTOP介绍 400
18.5.2 安装NTOP 401
18.5.3 使用NTOP 402
18.6 网络流量限制——TC技术 405
18.6.1 TC技术原理 405
18.6.2 使用Linux TC进行流量控制实例 405
18.7 网络流量管理的策略 409
18.7.1 管理目标 409
18.7.2 具体策略 410