Linux防火墙(第4版)

978-7-115-43633-7
作者: 【美】Steve Suehring(史蒂夫 苏哈林)
译者: 王文烨
编辑: 傅道坤

图书目录:

目录

第 1部分 数据包过滤以及基本安全措施 1

第 1章 数据包过滤防火墙的预备知识 3

1.1 OSI网络模型 5

1.1.1 面向连接和无连接的协议 6

1.1.2 下一步 7

1.2 IP协议 7

1.2.1 IP编址和子网划分 7

1.2.2 IP分片 10

1.2.3 广播与组播 10

1.2.4 ICMP 11

1.3 传输层机制 13

1.3.1 UDP 13

1.3.2 TCP 14

1.4 地址解析协议(ARP) 16

1.5 主机名和IP地址 16

1.6 路由:将数据包从这里传输到那里 17

1.7 服务端口:通向您系统中程序的大门 17

1.8 小结 22

第 2章 数据包过滤防火墙概念 23

2.1 一个数据包过滤防火墙 24

2.2 选择一个默认的数据包过滤策略 26

2.3 对一个数据包的驳回(Rejecting)VS拒绝(Denying) 28

2.4 过滤传入的数据包 28

2.4.1 远程源地址过滤 28

2.4.2 本地目的地址过滤 31

2.4.3 远程源端口过滤 31

2.4.4 本地目的端口过滤 32

2.4.5 传入TCP的连接状态过滤 32

2.4.6 探测和扫描 32

2.4.7 拒绝服务攻击 36

2.4.8 源路由数据包 42

2.5 过滤传出数据包 42

2.5.1 本地源地址过滤 42

2.5.2 远程目的地址过滤 43

2.5.3 本地源端口过滤 43

2.5.4 远程目的端口过滤 44

2.5.5 传出TCP连接状态过滤 44

2.6 私有网络服务VS公有网络服务 44

2.6.1 保护不安全的本地服务 45

2.6.2 选择运行的服务 45

2.7 小结 46

第3章 iptables:传统的Linux防火墙管理程序 47

3.1 IP防火墙(IPFW)和Netfilter防火墙机制的不同 47

3.1.1 IPFW数据包传输 48

3.1.2 Netfilter数据包传输 49

3.2 iptables基本语法 50

3.3 iptables特性 51

3.3.1 NAT表特性 53

3.3.2 mangle表特性 55

3.4 iptables语法 55

3.4.1 filter表命令 57

3.4.2 filter表目标扩展 60

3.4.3 filter表匹配扩展 62

3.4.4 nat表目标扩展 71

3.4.5 mangle表命令 73

3.5 小结 74

第4章 nftables:(新)Linux防火墙管理程序 75

4.1 iptables和nftables的差别 75

4.2 nftables基本语法 75

4.3 nftables特性 75

4.4 nftables语法 76

4.4.1 表语法 77

4.4.2 规则链语法 78

4.4.3 规则语法 78

4.4.4 nftables的基础操作 82

4.4.5 nftables文件语法 83

4.5 小结 83

第5章 构建和安装独立的防火墙 85

5.1 Linux防火墙管理程序 86

5.1.1 定制与购买:Linux内核 87

5.1.2 源地址和目的地址的选项 88

5.2 初始化防火墙 89

5.2.1 符号常量在防火墙示例中的使用 90

5.2.2 启用内核对监控的支持 90

5.2.3 移除所有预先存在的规则 92

5.2.4 重置默认策略及停止防火墙 93

5.2.5 启用回环接口 94

5.2.6 定义默认策略 95

5.2.7 利用连接状态绕过规则检测 96

5.2.8 源地址欺骗及其他不合法地址 97

5.3 保护被分配在非特权端口上的服务 101

5.3.1 分配在非特权端口上的常用本地TCP服务 102

5.3.2 分配在非特权端口上的常用本地UDP服务 104

5.4 启用基本的、必需的互联网服务 106

5.5 启用常用TCP服务 111

5.5.1 Email (TCP SMTP端口25, POP端口110, IMAP端口143) 111

5.5.2 SSH(TCP端口22) 117

5.5.3 FTP (TCP端口20、21) 118

5.5.4 通用的TCP服务 121

5.6 启用常用UDP服务 122

5.6.1 访问您ISP的DHCP服务器(UDP端口67、68) 122

5.6.2 访问远程网络时间服务器(UDP端口123) 124

5.7 记录被丢弃的传入数据包 125

5.8 记录被丢弃的传出数据包 126

5.9 安装防火墙 126

5.9.1 调试防火墙脚本的小窍门 127

5.9.2 在启动Red Hat和SUSE时启动防火墙 128

5.9.3 在启动Debian时启动防火墙 128

5.9.4 安装使用动态IP地址的防火墙 128

5.10 小结 129

第 2部分 **议题、多个防火墙和网络防护带 131

第6章 防火墙的优化 133

6.1 规则组织 133

6.1.1 从阻止高位端口流量的规则开始 133

6.1.2 使用状态模块进行ESTABLISHED和RELATED匹配 134

6.1.3 考虑传输层协议 134

6.1.4 尽早为常用的服务设置防火墙规则 135

6.1.5 使用网络数据流来决定在哪里为多个网络接口设置规则 135

6.2 用户自定义规则链 136

6.3 优化的示例 139

6.3.1 优化的iptables脚本 139

6.3.2 防火墙初始化 140

6.3.3 安装规则链 142

6.3.4 构建用户自定义的EXT-input和EXT-output规则链 144

6.3.5 tcp-state-flags 152

6.3.6 connection-tracking 153

6.3.7 local-dhcp-client-query和remote-dhcp-server-response 153

6.3.8 source-address-check 155

6.3.9 destination-address-check 155

6.3.10 在iptables中记录丢弃的数据包 156

6.3.11 优化的nftables脚本 157

6.3.12 防火墙初始化 158

6.3.13 构建规则文件 159

6.3.14 在nftables中记录丢弃的数据包 163

6.4 优化带来了什么 163

6.4.1 iptables的优化 163

6.4.2 nftables的优化 164

6.5 小结 164

第7章 数据包转发 165

7.1 独立防火墙的局限性 165

7.2 基本的网关防火墙的设置 166

7.3 局域网安全问题 168

7.4 可信家庭局域网的配置选项 169

7.4.1 对网关防火墙的局域网访问 170

7.4.2 对其他局域网的访问:在多个局域网间转发本地流量 171

7.5 较大型或不可信局域网的配置选项 173

7.5.1 划分地址空间来创建多个网络 173

7.5.2 通过主机、地址或端口范围限制内部访问 175

7.6 小结 180

第8章 网络地址转换 181

8.1 NAT的概念背景 181

8.2 iptables和nftables中的NAT语义 184

8.2.1 源地址NAT 186

8.2.2 目的地址NAT 187

8.3 SNAT和私有局域网的例子 189

8.3.1 伪装发往互联网的局域网流量 189

8.3.2 对发往互联网的局域网流量应用标准的NAT 190

8.4 DNAT、局域网和代理的例子 191

8.5 小结 192

第9章 调试防火墙规则 193

9.1 常用防火墙开发技巧 193

9.2 列出防火墙规则 194

9.2.1 iptables中列出表的例子 195

9.2.2 nftables中列出表的例子 198

9.3 解释系统日志 199

9.3.1 syslog配置 199

9.3.2 防火墙日志消息:它们意味着什么 202

9.4 检查开放端口 205

9.4.1 netstat -a [ -n -p -A inet ] 205

9.4.2 使用fuser检查一个绑定在特定端口的进程 207

9.4.3 Nmap 208

9.5 小结 208

第 10章 虚拟专用网络 209

10.1 虚拟专用网络概述 209

10.2 VPN协议 209

10.2.1 PPTP和L2TP 209

10.2.2 IPSec 210

10.3 Linux和VPN产品 212

10.3.1 Openswan/Libreswan 213

10.3.2 OpenVPN 213

10.3.3 PPTP 213

10.4 VPN和防火墙 213

10.5 小结 214

第3部分 iptables和nftables之外的事 215

第 11章 入侵检测和响应 217

11.1 检测入侵 217

11.2 系统可能遭受入侵时的症状 218

11.2.1 体现在系统日志中的迹象 218

11.2.2 体现在系统配置中的迹象 219

11.2.3 体现在文件系统中的迹象 219

11.2.4 体现在用户账户中的迹象 220

11.2.5 体现在安全审计工具中的迹象 220

11.2.6 体现在系统性能方面的迹象 220

11.3 系统被入侵后应采取的措施 221

11.4 事故报告 222

11.4.1 为什么要报告事故 222

11.4.2 报告哪些类型的事故 223

11.4.3 向谁报告事故 224

11.4.4 报告事故时应提供哪些信息 225

11.5 小结 226

第 12章 入侵检测工具 227

12.1 入侵检测工具包:网络工具 227

12.1.1 交换机和集线器以及您为什么应该关心它 228

12.1.2 ARPWatch 228

12.2 Rootkit检测器 229

12.2.1 运行Chkrootkit 229

12.2.2 当Chkrootkit报告计算机已被感染时应如何处理 230

12.2.3 Chkrootkit和同类工具的局限性 231

12.2.4 安全地使用Chkrootkit 231

12.2.5 什么时候需要运行Chkrootkit 232

12.3 文件系统完整性 232

12.4 日志监控 233

12.5 如何防止入侵 234

12.5.1 勤安防 234

12.5.2 勤更新 235

12.5.3 勤测试 236

12.6 小结 237

第 13章 网络监控和攻击检测 239

13.1 监听以太网 239

13.2 TCPDump:简单介绍 241

13.2.1 获得并安装TCPDump 242

13.2.2 TCPDump的选项 242

13.2.3 TCPDump表达式 244

13.2.4 TCPDump**功能 247

13.3 使用TCPDump捕获特定的协议 247

13.3.1 在现实中使用TCPDump 247

13.3.2 通过TCPDump检测攻击 254

13.3.3 使用TCPDump记录流量 258

13.4 使用Snort进行自动入侵检测 260

13.4.1 获取和安装Snort 261

13.4.2 配置Snort 262

13.4.3 测试Snort 263

13.4.4 接收警报 264

13.4.5 关于Snort的**后思考 265

13.5 使用ARPWatch进行监控 265

13.6 小结 267

第 14章 文件系统完整性 269

14.1 文件系统完整性的定义 269

14.2 安装AIDE 270

14.3 配置AIDE 270

14.3.1 创建AIDE配置文件 271

14.3.2 AIDE配置文件的示例 273

14.3.3 初始化AIDE数据库 273

14.3.4 调度AIDE自动地运行 274

14.4 用AIDE监控一些坏事 274

14.5 清除AIDE数据库 276

14.6 更改AIDE报告的输出 277

14.7 在AIDE中定义宏 279

14.8 AIDE的检测类型 280

14.9 小结 283

第4部分 附录 285

附录A 安全资源 287

附录B 防火墙示例与支持脚本 289

附录C 词汇表 325

附录D GNU自由文档许可证 335

详情

本书是构建Linux防火墙的权威指南,包括如何使用Linux iptable/nftables来实现防火墙安全的主题。本书共分三大部分。第1部分为数据包过滤以及基本的安全措施,第2部分为Linux防火墙的高级主题、多个防火墙和网络防护带,第3部分则讲解了iptables和nftables之外的主题。

图书摘要

相关图书

Linux常用命令自学手册
Linux常用命令自学手册
庖丁解牛Linux操作系统分析
庖丁解牛Linux操作系统分析
Linux后端开发工程实践
Linux后端开发工程实践
轻松学Linux:从Manjaro到Arch Linux
轻松学Linux:从Manjaro到Arch Linux
Linux高性能网络详解:从DPDK、RDMA到XDP
Linux高性能网络详解:从DPDK、RDMA到XDP
跟老韩学Linux架构(基础篇)
跟老韩学Linux架构(基础篇)

相关文章

相关课程