书籍详情
从实践中学习Web防火墙构建
作者:张博 著
出版社:机械工业出版社
出版时间:2020-06-01
ISBN:9787111657040
定价:¥89.00
购买这本书可以去
内容简介
本书是一本全面介绍Nginx及其相关模块的技术书籍,是国内首本深入介绍Web防火墙原理和架构的书籍。本书的编写版本为Nginx 1.11和Naxsi 0.56。本书共13章。第1章介绍了iptables的基本知识;第2章介绍了IP标头和TCP段结构,以及网络层的攻击与防御;第3章介绍了传输层的攻击与防御;第4章介绍了应用层的攻击与防御;第5章介绍了Web防火墙的发展史及WAF种类;第6章介绍了Naxsi模块;第7章介绍了动态限流模块ngx_dynamic_limit_req_module的原理及具体应用;第8章介绍了RedisPushIptables模块;第9章构建自己定制的Web防火墙;第10章介绍了Nginx的开发;第11章介绍了Nginx模块config文件的编写及调试;第12章介绍了Redis模块的开发及RedisPushIptables的代码拆解;第13章介绍了逆向分析的思路及Rootkit攻击示范。
作者简介
张博,Nginx和Redis资深开发者,sshfortress保垒机(sshfortress.com)创始人。拥有近8年的C语言编程经验和Linux运维经验,长期从事网络安全和系统安全领域的研究。2013年进入互联网行业,致力于网络安全、系统安全及运维工具的研发,开发了多款用来防御网络攻击的开源软件,包括ngx_dynamic_limit_req_module、ngx_cookie_limit_req_module、RedisPushlptables和NginxExecute等。
目录
赞誉
前言
第1章 iptables使用简介 1
1.1 iptables防火墙 1
1.2 基本概念 1
1.2.1 iptables包含表 3
1.2.2 iptables包含链 3
1.2.3 连接状态 4
1.2.4 iptables规则 4
1.2.5 具体目标 5
1.2.6 iptables扩展模块 5
1.3 安装iptables 5
1.3.1 内核设置 5
1.3.2 iptables安装方式 6
1.4 配置和使用 8
1.4.1 nftables防火墙 8
1.4.2 iptables的缺点 8
1.4.3 nftables与iptables的主要区别 9
1.4.4 从iptables迁移到nftables 10
1.4.5 iptables语法 11
1.4.6 显示当前规则 16
1.4.7 重置规则 16
1.4.8 编辑规则 16
1.4.9 保存和恢复规则 17
1.4.10 实例应用 17
第2章 网络层的安全与防御 20
2.1 IP标头和TCP段结构 20
2.1.1 IPv4标头结构 20
2.1.2 IPv6标头结构 24
2.1.3 TCP段结构 25
2.1.4 TCP协议操作 27
2.1.5 TCP连接建立 28
2.1.6 TCP连接终止 28
2.1.7 TCP资源使用 29
2.1.8 TCP数据传输 29
2.2 记录IP标头信息 34
2.2.1 使用tshark记录标头信息 34
2.2.2 使用iptables记录标头信息 35
2.3 网络层攻击定义 36
2.4 网络层攻击 37
2.5 网络层防御 41
第3章 传输层的安全与防御 42
3.1 记录传输层标头信息 42
3.1.1 使用iptables记录TCP标头 42
3.1.2 使用tshark记录TCP标头 43
3.1.3 使用iptables记录UDP标头 43
3.1.4 使用tshark记录UDP标头 44
3.1.5 UDP属性 44
3.2 传输层攻击定义 45
3.3 传输层攻击类型 45
3.3.1 TCP攻击 45
3.3.2 UDP攻击 48
3.3.3 信息收集 50
3.4 传输层防御手段 52
第4章 应用层的安全与防御 55
4.1 iptables字符串匹配模块 55
4.2 应用层攻击定义 56
4.3 应用层攻击类型 56
4.3.1 缓冲区溢出攻击 57
4.3.2 钓鱼式攻击 57
4.3.3 后门攻击 57
4.3.4 Web攻击 58
4.3.5 应用层DDoS 61
4.3.6 嗅探攻击 61
4.4 应用层防御手段 62
4.4.1 缓冲区溢出 63
4.4.2 钓鱼式 63
4.4.3 后门 63
4.4.4 Web攻击 64
4.4.5 应用层DDoS 64
4.4.6 网络嗅探 65
第5章 Web防火墙类型 66
5.1 Web防火墙简介 66
5.2 Web防火墙历史 67
5.3 WAF与常规防火墙的区别 68
5.4 部署方式 68
5.5 Web防火墙的类型 71
5.6 各类防火墙的优缺点 72
第6章 Naxsi Web防火墙 73
6.1 Naxsi简介 73
6.2 Naxsi安装 73
6.2.1 编译Naxsi 73
6.2.2 基本配置 74
6.3 Naxsi配置指令 76
6.3.1 白名单 76
6.3.2 规则 77
6.3.3 CheckRule 79
6.3.4 请求拒绝 80
6.3.5 指令索引 80
6.3.6 匹配规则 82
6.4 Naxsi基础使用 84
6.5 Naxsi格式解析 91
6.5.1 Raw_body 91
6.5.2 libinjection 92
6.5.3 JSON格式 93
6.5.4 运行时修饰符 94
6.6 示例 95
6.6.1 白名单示例 95
6.6.2 规则示例 97
6.7 Naxsi深入探索 98
6.7.1 Naxsi日志 98
6.7.2 内部规则 100
6.7.3 与Fail2Ban整合 102
第7章 ngx_dynamic_limit_req_module动态限流 104
7.1 实现原理 104
7.1.1 限流算法 104
7.1.2 应用场景 106
7.1.3 安装 107
7.2 功能 108
7.2.1 CC防卸 108
7.2.2 暴力破解 108
7.2.3 恶意刷接口 108
7.2.4 分布式代理恶意请求 109
7.2.5 动态定时拦截 109
7.2.6 黑名单和白名单 110
7.3 配置指令 110
7.3.1 dynamic_limit_req_zone 设置区域参数 111
7.3.2 dynamic_limit_req设置队列 114
7.3.3 dynamic_limit_req_log_level设置日志级别 114
7.3.4 dynamic_limit_req_status设置响应状态 115
7.3.5 black-and-white-list设置黑名单和白名单 115
7.4 扩展功能 115
7.4.1 API实时计数、PV、UV统计 115
7.4.2 API阈值通知 116
第8章 RedisPushIptables模块 120
8.1 RedisPushIptables简介 120
8.2 RedisPushIptables与Fail2Ban比较 120
8.2.1 Fail2Ban的特征 120
8.2.2 RedisPushIptables的特征 121
8.3 安装RedisPushIptables 122
8.4 动态删除配置 124
8.5 RedisPushIptables指令 125
8.6 客户端API示例 125
8.6.1 C语言编程 125
8.6.2 Python语言编程 126
8.6.3 Bash语言编程 128
8.6.4 Lua语言编程 128
第9章 构建自己的WAF 130
9.1 安装所需软件 130
9.2 参数配置 131
9.3 白名单生成 133
9.4 白名单自动化生成 138
9.5 整合Fail2ban 144
9.6 定制开发Naxsi 146
9.7 Naxsi已知漏洞 151
9.8 多层防御整合后对比 156
9.9 可能存在的瓶颈 157
9.10 恶意IP库 157
第10章 Nginx开发指南 158
10.1 基本概念 158
10.1.1 源码目录 158
10.1.2 引用头文件 159
10.1.3 整型封装 160
10.1.4 函数返回值 160
10.1.5 错误处理 161
10.2 字符串 161
10.2.1 字符串操作 162
10.2.2 格式化字符串 163
10.2.3 数字转换函数 164
10.2.4 正则表达式 165
10.3 日志时间格式 166
10.4 数据结构 167
10.4.1 数组 167
10.4.2 单向链表 168
10.4.3 双向链表 170
10.4.4 红黑树 171
10.4.5 散列表 171
10.5 内存管理 173
1
前言
第1章 iptables使用简介 1
1.1 iptables防火墙 1
1.2 基本概念 1
1.2.1 iptables包含表 3
1.2.2 iptables包含链 3
1.2.3 连接状态 4
1.2.4 iptables规则 4
1.2.5 具体目标 5
1.2.6 iptables扩展模块 5
1.3 安装iptables 5
1.3.1 内核设置 5
1.3.2 iptables安装方式 6
1.4 配置和使用 8
1.4.1 nftables防火墙 8
1.4.2 iptables的缺点 8
1.4.3 nftables与iptables的主要区别 9
1.4.4 从iptables迁移到nftables 10
1.4.5 iptables语法 11
1.4.6 显示当前规则 16
1.4.7 重置规则 16
1.4.8 编辑规则 16
1.4.9 保存和恢复规则 17
1.4.10 实例应用 17
第2章 网络层的安全与防御 20
2.1 IP标头和TCP段结构 20
2.1.1 IPv4标头结构 20
2.1.2 IPv6标头结构 24
2.1.3 TCP段结构 25
2.1.4 TCP协议操作 27
2.1.5 TCP连接建立 28
2.1.6 TCP连接终止 28
2.1.7 TCP资源使用 29
2.1.8 TCP数据传输 29
2.2 记录IP标头信息 34
2.2.1 使用tshark记录标头信息 34
2.2.2 使用iptables记录标头信息 35
2.3 网络层攻击定义 36
2.4 网络层攻击 37
2.5 网络层防御 41
第3章 传输层的安全与防御 42
3.1 记录传输层标头信息 42
3.1.1 使用iptables记录TCP标头 42
3.1.2 使用tshark记录TCP标头 43
3.1.3 使用iptables记录UDP标头 43
3.1.4 使用tshark记录UDP标头 44
3.1.5 UDP属性 44
3.2 传输层攻击定义 45
3.3 传输层攻击类型 45
3.3.1 TCP攻击 45
3.3.2 UDP攻击 48
3.3.3 信息收集 50
3.4 传输层防御手段 52
第4章 应用层的安全与防御 55
4.1 iptables字符串匹配模块 55
4.2 应用层攻击定义 56
4.3 应用层攻击类型 56
4.3.1 缓冲区溢出攻击 57
4.3.2 钓鱼式攻击 57
4.3.3 后门攻击 57
4.3.4 Web攻击 58
4.3.5 应用层DDoS 61
4.3.6 嗅探攻击 61
4.4 应用层防御手段 62
4.4.1 缓冲区溢出 63
4.4.2 钓鱼式 63
4.4.3 后门 63
4.4.4 Web攻击 64
4.4.5 应用层DDoS 64
4.4.6 网络嗅探 65
第5章 Web防火墙类型 66
5.1 Web防火墙简介 66
5.2 Web防火墙历史 67
5.3 WAF与常规防火墙的区别 68
5.4 部署方式 68
5.5 Web防火墙的类型 71
5.6 各类防火墙的优缺点 72
第6章 Naxsi Web防火墙 73
6.1 Naxsi简介 73
6.2 Naxsi安装 73
6.2.1 编译Naxsi 73
6.2.2 基本配置 74
6.3 Naxsi配置指令 76
6.3.1 白名单 76
6.3.2 规则 77
6.3.3 CheckRule 79
6.3.4 请求拒绝 80
6.3.5 指令索引 80
6.3.6 匹配规则 82
6.4 Naxsi基础使用 84
6.5 Naxsi格式解析 91
6.5.1 Raw_body 91
6.5.2 libinjection 92
6.5.3 JSON格式 93
6.5.4 运行时修饰符 94
6.6 示例 95
6.6.1 白名单示例 95
6.6.2 规则示例 97
6.7 Naxsi深入探索 98
6.7.1 Naxsi日志 98
6.7.2 内部规则 100
6.7.3 与Fail2Ban整合 102
第7章 ngx_dynamic_limit_req_module动态限流 104
7.1 实现原理 104
7.1.1 限流算法 104
7.1.2 应用场景 106
7.1.3 安装 107
7.2 功能 108
7.2.1 CC防卸 108
7.2.2 暴力破解 108
7.2.3 恶意刷接口 108
7.2.4 分布式代理恶意请求 109
7.2.5 动态定时拦截 109
7.2.6 黑名单和白名单 110
7.3 配置指令 110
7.3.1 dynamic_limit_req_zone 设置区域参数 111
7.3.2 dynamic_limit_req设置队列 114
7.3.3 dynamic_limit_req_log_level设置日志级别 114
7.3.4 dynamic_limit_req_status设置响应状态 115
7.3.5 black-and-white-list设置黑名单和白名单 115
7.4 扩展功能 115
7.4.1 API实时计数、PV、UV统计 115
7.4.2 API阈值通知 116
第8章 RedisPushIptables模块 120
8.1 RedisPushIptables简介 120
8.2 RedisPushIptables与Fail2Ban比较 120
8.2.1 Fail2Ban的特征 120
8.2.2 RedisPushIptables的特征 121
8.3 安装RedisPushIptables 122
8.4 动态删除配置 124
8.5 RedisPushIptables指令 125
8.6 客户端API示例 125
8.6.1 C语言编程 125
8.6.2 Python语言编程 126
8.6.3 Bash语言编程 128
8.6.4 Lua语言编程 128
第9章 构建自己的WAF 130
9.1 安装所需软件 130
9.2 参数配置 131
9.3 白名单生成 133
9.4 白名单自动化生成 138
9.5 整合Fail2ban 144
9.6 定制开发Naxsi 146
9.7 Naxsi已知漏洞 151
9.8 多层防御整合后对比 156
9.9 可能存在的瓶颈 157
9.10 恶意IP库 157
第10章 Nginx开发指南 158
10.1 基本概念 158
10.1.1 源码目录 158
10.1.2 引用头文件 159
10.1.3 整型封装 160
10.1.4 函数返回值 160
10.1.5 错误处理 161
10.2 字符串 161
10.2.1 字符串操作 162
10.2.2 格式化字符串 163
10.2.3 数字转换函数 164
10.2.4 正则表达式 165
10.3 日志时间格式 166
10.4 数据结构 167
10.4.1 数组 167
10.4.2 单向链表 168
10.4.3 双向链表 170
10.4.4 红黑树 171
10.4.5 散列表 171
10.5 内存管理 173
1
猜您喜欢