《LINUX防火墙 原书第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)STEVE SUEHRING ROBERT L.ZIEGLER著;何泾沙等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2006
  • ISBN:7111190238
  • 页数:356 页
图书介绍:本书主要介绍如何在Linux操作系统中使用Netfilter和iptables构建一个基于软件的防火墙。除了介绍防火墙的基础知识,本书还进一步在网络计算的环境中对防火墙进行更加深入的阐述。

目录 1

译者序 1

前言 1

第一部分 数据包过滤及基本安全措施第1章 防火墙的基本概念 1

1.1 OSI网络参考模型 2

1.1.1 面向无连接协议和面向连接协议 3

1.1.2 下一步 4

1.2 IP协议 4

1.2.1 IP地址分类和子网划分 4

1.2.2 IP分段 6

1.2.3 广播和多播 7

1.2.4 ICMP协议 7

1.3 传输机制 9

1.3.1 UDP 9

1.3.2 TCP 9

1.5 主机名称和IP地址 11

1.4 不要忘记ARP协议 11

1.6 路由:数据包的传送 12

1.7 服务端口:通向系统程序的大门 12

1.8 小结 16

第2章 数据包过滤的概念 17

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

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

2.3 拒绝与禁止一个数据包 21

2.4.1 对远程源地址进行过滤 22

2.4 过滤入站数据包 22

2.4.2 对本地目的地址进行过滤 24

2.4.3 对远程源端口进行过滤 25

2.4.4 对本地目的端口进行过滤 25

2.4.5 对入站数据包的TCP连接状态进行过滤 25

2.4.6 刺探和扫描 25

2.4.7 拒绝服务攻击 29

2.5.1 对本地源地址进行过滤 35

2.5 过滤出站数据包 35

2.4.8 源路由数据包 35

2.5.2 对远程目的地址进行过滤 36

2.5.3 对本地源端口进行过滤 36

2.5.4 对远程目的端口进行过滤 37

2.5.5 对出站数据包的TCP连接状态进行过滤 37

2.6 专用网络和公共网络服务 37

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

2.6.2 选择服务进行运行 38

2.7 小结 38

第3章 iptables:Linux防火墙管理程序 39

3.1 IP防火墙(IPFW)和网络过滤器防火墙机制的区别 39

3.1.1 IPFW数据包传输 40

3.1.2 Netfilter数据包传输 41

3.2 iptables的基本语法 41

3.3 iptables的特点 42

3.3.1 NAT表的特点 44

3.3.2 mangle表的特点 45

3.4 iptables的语法规则 46

3.4.1 filter表命令 47

3.4.2 filter表目标扩展 50

3.4.3 filter表匹配扩展 51

3.4.4 NAT表目标扩展 60

3.4.5 mangle表命令 62

3.5 小结 63

第4章 构建和安装一个独立的防火墙 64

4.1 iptables:Linux防火墙管理程序 64

4.1.1 定制或购买:Linux内核 66

4.1.2 源及目的寻址的选项 66

4.2 防火墙的初始化 67

4.2.1 防火墙示例中使用的符号常量 68

4.2.2 启动内核对监控的支持 68

4.2.3 删除预先存在的规则 70

4.2.4 重置默认策略及停止防火墙 70

4.2.6 定义默认策略 71

4.2.5 启动回环接口 71

4.2.7 秘密扫描及TCP状态标记 72

4.2.8 利用连接状态绕过规则检测 72

4.2.9 源地址欺骗及其他不合法地址 73

4.3 保护被分配在非特权端口上运行的服务 77

4.3.1 被分配在非特权端口上运行的常用本地TCP服务 78

4.3.2 被分配在非特权端口上运行的常用本地UDP服务 79

4.4 启动基本但必要的Internet服务 81

4.4.1 允许DNS(UDP/TCP端口53) 81

4.4.2 过滤AUTH用户身份认证服务(TCP端口113) 85

4.5 启动常用TCP服务 86

4.5.1 E-mail(TCP SMTP端口25、POP端口110、IMAP端口143) 86

4.5.2 Usenet新闻访问服务(TCP NNTP端口119) 94

4.5.3 Telnet(TCP端口23) 95

4.5.4 SSH(TCP端口22) 97

4.5.5 FTP(TCP端口21和20) 98

4.5.6 Web服务 102

4.5.7 Whois(TCP端口43) 105

4.5.8 RealAudio、RealVideo及QuickTime(TCP端口554和7070) 105

4.6 启动常用的UDP服务 107

4.6.1 traceroute(UDP端口33434) 107

4.6.2 访问提供服务的ISP的DHCP服务器(UDP端口67和68) 108

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

4.7 过滤ICMP控制和状态信息 111

4.7.1 错误状态和控制信息 111

4.7.2 ping反射请求(类型8)和反射应答(类型0)控制信息 113

4.8 记录被丢弃的入站数据包 114

4.9 记录被丢弃的出站数据包 116

4.10 预先设定禁止访问有问题的网站 116

4.11 安装防火墙 116

4.12 小结 119

5.1.1 从阻止高位端口流量的规则开始 121

5.1.2 使用state模块实现ESTABLISHED和RELATED的匹配 121

5.1 规则的组织 121

第二部分 高级议题、多个防火墙和网络防护带第5章 防火墙的优化 121

5.1.3 考虑传输层协议 122

5.1.4 尽早为最常使用的服务设置防火墙规则 123

5.1.5 使用多端口模块设定端口列表 123

5.1.6 利用网络数据流来决定如何对多个网络接口设置规则 123

5.2 用户自定义规则链 124

5.3 防火墙的优化示例 126

5.3.1 脚本中的用户自定义规则链 126

5.3.2 防火墙初始化 127

5.3.3 安装规则链 129

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

5.3.5 tcp-state-flags 139

5.3.6 connection-tracking 140

5.3.7 local_dhcp_client_query和remote_dhcp_server_response 140

5.3.8 source-address-check 141

5.3.10 记录被丢弃的数据包 142

5.3.9 destination-address-check 142

5.4 优化带来的结果 144

5.5 小结 145

第6章 数据包的转发 146

6.1 独立防火墙的局限性 146

6.2 基本的网关防火墙设置 147

6.3 局域网安全相关问题 148

6.4 可信家庭局域网的配置选项 149

6.4.1 对网关防火墙的局域网访问 150

6.4.2 对其他局域网的访问:在多个局域网间转发本地网络流 151

6.5 更高或更低可信度局域网的配置选项 152

6.5.1 划分地址空间来创建多个网络 153

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

6.6 屏蔽子网防火墙样板 159

6.6.1 防火墙实例中的符号常量 159

6.6.2 在隔断防火墙上设置环境 161

6.6.3 清空隔断防火墙原有的安全规则 161

6.6.4 定义隔断防火墙的默认策略 162

6.6.5 启用隔断防火墙的回环接口 162

6.6.7 使用连接状态来绕过规则检查 163

6.6.6 秘密扫描和TCP状态标志 163

6.6.8 源地址欺骗和其他的恶意地址 164

6.6.9 过滤ICMP控制和状态消息 165

6.6.10 启用DNS(UDP/TCP端口53) 166

6.6.11 过滤AUTH用户身份认证服务(TCP端口113) 170

6.6.12 E-mail(TCP SMTP端口25、POP3端口110、IMAP端口143) 170

6.6.13 Usenet新闻访问服务(TCP NNTP端口119) 172

6.6.14 Telnet(TCP端口23) 172

6.6.15 SSH(TCP端口22) 173

6.6.16 FTP(TCP端口21和20) 174

6.6.17 Web服务 176

6.6.18 隔断防火墙主机作为本地DHCP服务器(UDP端口67和68) 178

6.6.19 日志记录 179

6.7 将网关从本地服务转变为转发服务 179

6.8 小结 179

7.1 NAT概念的背景 181

第7章 NAT——网络地址转换 181

7.2 iptables NAT语义 184

7.2.1 源地址NAT 185

7.2.2 目的地址NAT 186

7.3 SNAT和专用局域网的例子 188

7.3.1 伪装去往Internet的局域网数据流 188

7.3.2 对到Internet的局域网数据流应用标准的NAT 189

7.4 DNAT、局域网和代理的例子 189

7.4.2 主机转发和端口重定向 190

7.4.1 主机转发 190

7.4.3 主机转发到服务器群 191

7.4.4 主机转发到使用专用地址的DMZ中的服务器 192

7.4.5 本地端口重定向——透明代理 193

7.5 小结 194

第8章 防火墙规则的检错 195

8.1 常用防火墙开发技巧 195

8.2 罗列防火墙规则 197

8.2.1 filter表的列表格式 197

8.2.2 nat表的列表格式 202

8.2.3 mangle表的列表格式 203

8.3 检查输入、输出和转发规则 205

8.3.1 检查输入规则 205

8.3.2 检查输出规则 206

8.3.3 检查转发规则 207

8.4 解释系统日志 209

8.4.1 syslog配置 209

8.4.2 防火墙日志信息:如何理解它们 211

8.5.1 netstat-a[-n-p-Ainet] 214

8.5 检查开启的端口 214

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

8.6 小结 218

第三部分 超越iptables 219

第9章 入侵检测和响应 219

9.1 入侵检测 219

9.2 系统可能遭受入侵的症状 220

9.2.1 体现在系统日志中的迹象 220

9.2.3 体现在文件系统中的迹象 221

9.2.2 体现在系统配置中的迹象 221

9.2.4 体现在用户账号中的迹象 222

9.2.5 体现在安全审计工具中的迹象 222

9.2.6 体现在系统性能方面的迹象 222

9.3 系统受损后应采取的措施 223

9.4 事件报告 224

9.4.1 为什么要报告事件 224

9.4.2 报告哪些类型的事件 225

9.4.3 向谁报告事件 226

9.4.4 报告时应提供哪些信息 227

9.4.5 去哪儿获取更多的信息 228

9.5 小结 228

第10章 入侵检测工具 229

10.1 入侵检测工具包:网络工具 229

10.1.1 交换机和集线器以及为什么重要 230

10.2.1 运行Chkrootkit 231

10.2 Rootkit检测器 231

10.1.3 ARPWatch 231

10.1.2 嗅探器(sniffer)的布署 231

10.2.2 当Chkrootkit报告计算机已被感染时如何处理 233

10.2.3 Chkrootkit及同类工具的局限性 233

10.2.4 安全地使用Chkrootkit 234

10.2.5 什么时候需要运行Chkrootkit 235

10.3 文件系统的完整性 235

10.4 日志监控 235

10.5 如何防止入侵 237

10.5.1 勤安防 237

10.5.2 勤更新 238

10.5.3 勤测试 238

10.6 小结 240

第11章 网络监控和攻击检测 241

11.1 监听以太网 241

11.2 TCPDump:简单介绍 243

11.2.1 获取和安装TCPDump 243

11.2.2 TCPDump选项 244

11.2.3 TCPDump表达式 246

11.2.4 TCPDump高级功能 248

11.3 使用TCPDump捕捉特定的协议 248

11.3.1 在现实中使用TCPDump 249

11.3.2 通过TCPDump来检测攻击 255

11.3.3 使用TCPDump记录流量 259

11.4 使用snort自动检测入侵 261

11.4.1 获取和安装Snort 261

11.4.2 配置Snort 263

11.4.3 测试Snort 264

11.4.4 接受警报 265

11.4.5 关于Snort的最后思考 265

11.5 使用ARPWatch进行监视 265

11.6 小结 267

第12章 文件系统的完整性 268

12.1 定义文件系统完整性 268

12.3 配置AIDE 269

12.2 安装AIDE 269

12.3.1 创建AIDE配置文件 270

12.3.2 一个简单的AIDE配置文件示例 271

12.3.3 初始化AIDE数据库 272

12.3.4 AIDE调度及自动运行 272

12.4 监视AIDE 273

12.5 清除AIDE数据库 274

12.6 改变AIDE报告的输出信息 275

12.7 在AIDE中定义宏 277

12.8 AIDE的监测类型 278

12.9 小结 280

第13章 内核的强化 281

13.1 经过安全强化的Linux 281

13.2 使用GrSecurity增强安全性 282

13.3 内核快速浏览 282

13.3.2 你的号码是什么 283

13.3.3 内核:从20000英尺的高度往下看 283

13.3.1 怎么称呼 283

13.4 要不要打补丁 284

13.5 使用GrSecurity内核 285

13.5.1 下载Grsec以及一个全新的内核 285

13.5.2 编译第一个内核 285

13.5.3 改进内核的构造 292

13.6.1 使用Grsec的补丁 293

13.6.2 选择Grsec中的功能 293

13.6 GrSecurity 293

13.6.3 构造Grsec内核 295

13.6.4 超越GrSecurity的基本功能 296

13.7 结论:专用内核 297

附录 299

附录A 安全资源 299

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

附录C 虚拟专用网 341

附录D 术语表 348