第一部分 基本事项 3
第1章 包过滤防火墙的基本概念 3
1.1 TCP/IP参考网络模型 4
1.2 服务端口:通向系统程序的大门 5
1.3 数据包:IP网络消息 7
1.3.1 IP消息类型:ICMP 7
1.3.2 IP消息类型:UDP 7
1.3.3 IP消息类型:TCP 9
1.4 小结 12
第二部分 包过滤和基本安全标准 15
第2章 包过滤概念 15
2.1 包过滤防火墙 16
2.2 选择一个默认的包过滤策略 17
2.3 拒绝(Reject)和禁止(Deny)一个包 18
2.4 输入包的过滤 19
2.4.1 远程源地址过滤 19
2.4.2 本地目的地址过滤 21
2.4.3 远程源端口过滤 21
2.4.4 本地目的端口过滤 21
2.4.5 输入包的TCP连接状态过滤 21
2.4.6 刺探和扫描 22
2.4.7 拒绝服务攻击 25
2.4.8 过滤输入数据包的多种考虑 27
2.5 输出包的过滤 28
2.5.1 本地源地址过滤 28
2.5.4 远程目的端口过滤 29
2.5.2 远程目的地址过滤 29
2.5.3 本地源端口过滤 29
2.5.5 TCP连接状态的输出过滤 30
2.6 内部专用对公共网络服务 30
2.6.1 保护不安全的本地服务 30
2.6.2 选择要运行的服务 31
2.7 小结 41
第3章 构建和安装防火墙 43
3.1 ipchains:Linux防火墙管理程序 43
3.1.1 防火墙脚本中所使用的ipchains选项 44
3.1.2 源和目的地址选项 45
3.2 初始化防火墙 46
3.2.2 删除任何已存在的规则 47
3.2.1 防火墙例子中使用的符号常量 47
3.2.3 定义默认策略 48
3.2.4 启用回环接口 48
3.2.5 源地址欺骗和其他的不合法地址 48
3.3 ICMP控制和状态消息过滤 53
3.3.1 错误状态和控制消息 54
3.3.2 ping Echo Request(类型8)和Echo Reply(类型0)控制消息 55
3.4 保护分配在非特权端口上的服务 57
3.4.1 分配给非特权端口的常用本地TCP服务 58
3.4.2 分配给非特权端口的常用本地UDP服务 60
3.5 激活基本的Internet服务 61
3.5.1 允许DNS(UDP/TCP端口53) 61
3.6.1 E-mail(TCP SMTP端口25,POP端口110,IMAP端口143) 67
3.6 激活公用TCP服务 67
3.6.2 访问Usenet新闻服务(TCP NNTP端口119) 73
3.6.3 telnet(TCP端口23) 74
3.6.4 SSH(TCP端口22) 75
3.6.5 ftp(TCP端口21,20) 77
3.6.6 Web服务 80
3.6.7 finger(TCP端口79) 83
3.6.8 whois(TCP端口43) 84
3.6.9 gopher(TCP端口70) 84
3.6.10 WAIS(TCP端口210) 85
3.7 激活公用UDP服务 85
3.7.1 traceroute(UDP端口33434) 86
3.7.2 访问ISP的DHCP服务器(UDP端口67,68) 87
3.7.3 访问远程网络时间服务器(UDP 123) 89
3.8 记录被禁止的输入数据包 90
3.9 禁止访问有问题的站点 92
3.10 激活LAN访问 92
3.10.1 激活LAN对防火墙内部网络接口的访问 92
3.10.2 激活LAN访问Internet:IP转发和地址隐藏 93
3.11 安装防火墙 94
3.11.1 安装带有静态IP地址的防火墙 94
3.11.2 安装带有动态IP地址的防火墙 94
3.12 小结 95
第4章 局域网、多重防火墙和网络防御带 97
4.1 LAN安全相关问题 98
4.2 可信家庭网络的配置选项 99
4.2.2 LAN访问别的局域网:在多个LAN之间转发本地网络流 100
4.2.3 LAN访问Internet:通过地址隐藏再转发 100
4.2.1 LAN访问堡垒防火墙 100
4.3 大型内部网络的安全配置选项 102
4.3.1 划分子网,创建多个网络 102
4.3.2 通过主机地址或端口范围限制内部访问 103
4.3.3 LAN到Internet网络流的地址隐藏 109
4.3.4 端口重定向——透明代理 111
4.3.5 转发从Internet到内部服务器的连接请求 111
4.4 屏蔽子网防火墙样板 112
4.4.1 防火墙实例中的符号常量说明 114
4.4.2 清空隔断(choke)防火墙原有的安全规则 115
4.4.5 源地址欺骗和别的恶意地址 116
4.4.3 定义隔断防火墙的默认策略 116
4.4.4 激活隔断防火墙机器的回环接口 116
4.4.6 过滤ICMP控制和状态信息 117
4.4.7 激活DNS(UDP/TCP端口53) 121
4.4.8 过滤用户认证服务(TCP端口113) 125
4.4.9 E-mail(TCP SMTP端口25、POP端口110、IMAP端口143) 127
4.4.10 访问Usenet新闻组服务(TCP NNTP端口119) 135
4.4.11 Telnet(TCP端口23) 137
4.4.12 SSH(TCP端口22) 139
4.4.13 FTP(TCP端口21和20) 142
4.4.14 Web服务 149
4.4.15 finger(TCP端口79) 158
4.4.16 Whois服务(TCP端口43) 160
4.4.17 gopher服务(TCP端口70) 161
4.4.18 WAIS(TCP端口43) 162
4.4.19 RealAudio和QuickTime服务(端口554) 163
4.4.20 IRC(TCP端口6667) 166
4.4.21 CU-SeeMe(UDP端口7648,7649,24032;TCP端口7648,7649) 170
4.4.22 Quake服务(UDP端口26000以及1025~1200) 173
4.4.23 网络时间服务(UDP端口123) 176
4.4.24 远程系统日志(UDP端口514) 178
4.4.25 Choke主机作为本地DHCP服务器(UDP端口67和68) 179
4.4.26 使局域网中主机访问Choke防火墙主机 180
4.4.27 激活IP地址隐藏功能 180
4.5 小结 181
4.4.28 日志记录 181
第5章 调试防火墙规则 183
5.1 常用的防火墙开发技巧 183
5.2 列出防火墙规则 184
5.2.1 ipchains-L input 185
5.2.2 ipchains-L input-n 186
5.2.3 ipchains-L input-v 187
5.2.4 ipchains-L input-nv 188
5.3 检查输入、输出和转发规则 189
5.3.1 检查输入规则 190
5.3.2 检查输出规则 191
5.3.3 检查转发规则 192
5.4 用单个数据包对防火墙规则进行测试 194
5.5.1 netstat-a[-n-p-A inet] 195
5.5 检查打开的端口 195
5.5.2 strobe 197
5.5.3 nmap 198
5.6 调试SSH——一个真实的例子 198
5.7 小结 200
第三部分 系统级安全和监控 203
第6章 检查系统是否正常运行 203
6.1 用ifconfig检查网络接口 203
6.2 用ping命令检查网络连接 204
6.3 用netstat命令检查网络 205
6.4 用ps-ax检查所有进程 207
6.5.2 syslog的配置 209
6.5.1 日志记录什么以及在何处记录 209
6.5 系统日志详解 209
6.5.3 防火墙日志消息 211
6.5.4 常被刺探的端口 213
6.5.5 常见的端口扫描日志例子 215
6.5.6 自动日志分析软件包 216
6.6 小结 216
第7章 UNIX系统管理相关问题 219
7.1 认证:检查身份 219
7.1.1 Shadow口令 219
7.1.2 MD5口令hash(哈希)法 220
7.1.3 伯克利(Berkeley)rhost认证: hosts.equiv和.rhost文件 220
7.2.1 root帐号访问特权 221
7.2 授权:根据身份限定访问权限 221
7.1.4 共享访问中央认证:网络信息服务(NIS) 221
7.2.2 限制访问su 222
7.2.3 tcp_wrappers程序 222
7.2.4 文件和目录权限 224
7.3 特定服务器配置 226
7.3.1 Telnet配置的相关问题 226
7.3.2 SSH配置的相关问题 226
7.3.3 SMTP配置的相关问题 227
7.3.4 DNS配置的相关问题 228
7.3.5 FTP配置相关问题 245
7.3.6 POP服务器相关配置问题 249
7.3.7 DHCP服务器相关配置问题 251
7.3.8 NTP配置的相关问题 252
7.3.9 HTTP CGI脚本配置相关问题 253
7.4 SOCKS:应用层代理防火墙 254
7.5 /etc/passwd和/etc/group文件中的系统帐号 255
7.6 设置PATH变量 256
7.7 /etc/issue.net文件 257
7.8 远程日志 257
7.9 保持软件不断升级 258
7.9.1 从Red Hat处取得系统的错误更改 258
7.9.2 利用mountd进行攻击的例子 258
7.10 小结 259
第8章 入侵检测和事件报告 261
8.1 系统完整性检查工具 261
8.1.3 ifstatus 262
8.1.1 COPS 262
8.1.2 Crack 262
8.1.4 MD5 263
8.1.5 SATAN 263
8.1.6 tiger 263
8.1.7 tripwire 263
8.2 系统可能受损的迹象 264
8.2.1 与系统日志有关的迹象 264
8.2.2 与系统配置有关的迹象 265
8.2.3 与文件系统有关的迹象 265
8.2.4 与用户帐号有关的迹象 265
8.3 系统受到安全侵害后应该采取的措施 266
8.2.6 与系统性能有关的迹象 266
8.2.5 与安全审计工具有关的迹象 266
8.4 事件报告 268
8.4.1 为什么要报告事件 268
8.4.2 报告哪类事件 269
8.4.3 向谁报告事件 270
8.4.4 你应提供哪些信息 271
8.4.5 去何处查找更多的信息 271
8.5 小结 272
第四部分 附录 275
附录A 安全资源 275
附录B 防火墙应用实例和支持脚本 283
附录C 词汇表 365