目录 3
第1部分 做好开门七件事 3
第1章 重要的前期步骤 3
1.1 检查系统是否已被黑客侵入 5
1.1.1 终结非授权用户 5
1.1.2 找出并关闭非授权进程 8
1.1.3 查看日志文件,寻找黑客入侵活动的蛛丝马迹 9
1.1.4 检查系统文件是否完好无损 10
1.2 检查系统的稳定性和可用性 12
1.2.1 检查硬件操作是否正常 12
1.2.2 确保电源不会成为隐患 13
第2章 强化网络:禁用不必要的服务 17
第2部分 从根本入手:循序渐进的系统强化流程 17
2.1 第1步:让机器脱离网络 18
2.2 第2步:确定必要服务 20
2.2.1 Red Hat Enterprise Linux AS 3.0提供的基准服务 20
2.2.2 SLES8提供的基准服务 22
2.2.3 考虑是否还要激活其他服务 23
2.3 第3步:确定各项服务之间的依赖关系 28
2.4 第4步:禁止不必要的服务运行 34
2.4.1 利用软件工具修改启动脚本 35
2.4.2 禁用不必要的服务:命令行工具 41
2.5 第5步:重新启动系统 44
2.6 第6步:复查非必要服务的配置情况 44
2.7 第7步:复查必要服务的配置情况 45
2.6.1 对有关配置进行复查:GUI工具 45
2.6.2 对有关配置进行复查:命令行工具 45
2.7.1 检查系统服务的配置情况 46
2.7.2 测试这项服务是否在运行 46
2.7.3 在系统内存里检查这项服务是否存在 46
2.8 第8步:让机器重返网络 47
第3章 安装防火墙和过滤器 48
3.1 摸清家底 49
3.1.1 检查系统是否已经存在防火墙规则 49
3.1.2 网络基本知识 56
3.1.3 防火墙基本知识 58
3.2 按照预防为主的原则确定防火墙需求 61
3.2.1 制定预防策略 62
3.2.2 配置防火墙 63
第4章 强化软件的访问权限 83
4.1 确定必不可少的软件 84
4.2 确定软件之间的依赖关系 89
4.3 删除或限制不必要的软件 92
4.4 安全地安装软件 94
4.4.1 安装由Linux发行商提供的可信软件 95
4.4.2 安装其他可信来源的软件 98
4.5 监控系统 105
第5章 做好迎接灾难的准备 107
5.1 什么是灾后恢复 108
5.2 不要建立一个定制的内核 108
5.4 系统自动安装/恢复 109
5.3 把服务器设置和系统配置变动情况记录在案 109
5.4.1 使用Red Hat的Kickstart安装工具 111
5.4.2 使用SUSE的YaST自动安装工具 117
第6章 强化访问控制 130
6.1 Linux文件的权限和所有权 131
6.2 查看文件和子目录上的访问控制 139
6.2.1 检查临时子目录上的粘滞属性位 139
6.2.2 把SUID/SGID文件和子目录记录在案 140
第7章 强化数据存储 142
7.1 理解与密码学有关的法律和人文问题 143
7.1.1 遵守法律规定 143
7.1.2 理解人文问题 144
7.2 过程与结果:只加密数据是不够的 145
7.2.1 安全地存放数据 146
7.2.2 删除敏感数据的明文副本 147
7.3 用GnuPG加密文件 149
7.3.1 以安全的方式创建密钥 150
7.3.2 创建GnuPG密钥 150
7.4 用OpenSSL加密文件 161
7.5 安装和使用一个加密文件系统 163
第8章 强化身份验证机制和用户身份 170
8.1 PAM模块:灵活的身份验证机制 171
8.1.1 为什么要使用PAM 172
8.1.2 实现对口令字的严格要求 172
8.1.3 实现wheel用户组机制 172
8.2.1 删除不再需要的PAM配置文件 173
8.1.4 实现一个中央身份验证服务器 173
8.2 堵住漏洞:正确地配置PAM模块 173
8.2.2 PAM配置文件的格式 174
8.2.3 在做出修改之前对PAM配置进行备份 175
8.2.4 如何补救灾难性失误 176
8.2.5 PAM框架 176
8.2.6 传统服务 177
8.2.7 创建一个BSD风格的wheel用户组 180
8.2.8 为每个用户创建一个临时子目录 180
8.2.9 要求用户选用高强度口令字 181
8.3 NSS服务 185
第9章 强化软件运行环境 187
9.1 限制无关功能 188
9.2 用chroot环境保护服务 189
9.3 搭建chroot子目录结构 190
9.3.1 解决动态链接库依赖关系 192
9.3.2 确定文件依赖关系 195
9.3.3 在chroot子目录里创建设备 196
9.3.4 创建shell和用户环境 197
9.4 把服务安装到chroot子目录 200
9.4.1 从源代码开始安装 201
9.4.2 从一个源代码RPM安装 202
9.4.3 把一个二进制RPM安装到另一个地点 207
9.5 让服务把自己的活动记入日志 208
9.6 对chroot环境进行调试和优化 209
9.7.1 pam_chroot身份验证模块与Red Hat Enterprise Linux AS 3.0 210
9.7 把chroot环境与Linux发行版本的信息安防功能相结合 210
9.7.2 对文件模式和权限设置进行监控 212
9.8 chroot环境的日常管理和维护 213
第10章 强化网络通信 214
10.1 强化网络通信协议 215
10.1.1 使用SSH 216
10.1.2 用SSH保护X连接 228
10.1.3 使用虚拟私用网 228
10.2 IPSec 231
10.2.1 用FreeS/WAN构建一个VPN 232
10.2.2 验证你的网络连接 238
第11章 安装网络监控软件 241
第3部分 一劳不能永逸 241
11.1 安装网络分析器 243
11.1.1 安装和使用ngrep工具监控网络 243
11.1.2 安装和使用tcpdump工具 247
11.1.3 安装Ethereal工具 256
11.2 使用网络入侵监测系统 258
11.2.1 安装和使用Snort工具 259
11.2.2 Snort工具的“嗅探”模式 259
11.2.3 Snort工具的“数据包捕获”模式 261
11.2.4 Snort工具的“NIDS”模式 265
11.2.5 使用Snort工具的功能扩展模块 269
11.3 “蜜罐”/“蜜网” 270
11.4 其他工具 270
第12章 建立日志文件自动化扫描/报警机制 272
12.1 日志文件的作用 273
12.2 制定一个日志策略 275
12.3 配置syslog守护进程 276
12.3.1 选择条件 276
12.3.2 操作动作 278
12.4 建立一个中央日志服务器 280
12.4.1 建立中央日志服务器前的准备工作 280
12.4.2 配置一个中央日志服务器 280
12.4.3 为中央日志服务器配置各客户机器 281
12.5 用syslog-ng和stunnel工具创建一个中央日志服务器 282
12.5.1 SUSE:下载并安装stunnel 4.04软件 282
12.5.2 下载并安装syslog-ng软件 282
12.5.3 为机器生成主机身份证书 283
12.5.4 把主机身份证书复制到/etc/stunnel子目录 284
12.5.5 检查主机身份证书的权限 285
12.5.6 在服务器主机上创建stunnel配置文件 285
12.5.7 在客户主机上创建stunnel配置文件 285
12.5.8 在服务器主机上创建syslog-ng配置文件 285
12.5.9 在客户机器上创建syslog-ng配置文件 286
12.5.10 以手动方式启动stunnel和syslog-ng 286
12.5.11 在服务器上监控日志活动 286
12.5.12 使用logger命令直接向syslog守护进程发送消息 289
12.5.13 使用Perl的Sys:Syslog模块向syslog守护进程发送消息 289
12.5.14 日志文件的管理 290
12.7 搜索日志文件 291
12.6 其他系统日志文件 291
12.5.15 查找日志文件 291
12.7.1 搜索日志文件时的策略 292
12.7.2 以手动方式搜索日志文件 293
12.7.3 使用logwatch工具搜索日志文件 294
12.7.4 使用logsurfer工具搜索日志文件 294
12.7.5 使用swatch工具搜索日志文件 297
12.7.6 修改swatch配置以监测针对SSH守护进程的攻击 299
12.7.7 对攻击和异常活动做出反应 301
第13章 补丁的管理和监控 302
13.1 进行升级 303
13.1.1 对SUSE软件进行升级和打补丁 303
13.1.2 对Red Hat软件进行升级和打补丁 309
13.1.3 使用一个中央补丁服务器 319
13.2 对补丁升级工作进行监控和管理 320
13.2.1 制定一套变革管理制度 321
13.2.2 对补丁升级工作进行监控 322
第14章 系统自我监控工具 323
14.1 安装和运行一个基于主机的入侵检测系统 324
14.1.1 安装和使用Tripwire工具 324
14.1.2 利用rpm命令进行文件完整性检查 334
14.1.3 其他工具 336
14.2 安装和运行一个口令字审计程序 336
14.3 建立网络监控机制 340
14.3.1 配置和运行Nmap工具 340
14.3.2 配置和运行Nessus工具 345
第15章 编制安防预算,赢得公司支持 353
第4部分 Linux系统强化工作的成功之道 353
15.1 获得管理层支持 354
15.2 进行风险评估 355
15.2.1 确定风险评估范围 356
15.2.2 组建风险评估团队 356
15.2.3 收集问题并确定它们的影响和发生机率 357
15.2.4 为风险排出优先级 359
15.2.5 定量风险评估法概述 360
15.2.6 向管理层提交风险评估报告 361
15.3 确定投资回报 363
15.3.1 收集事实 363
15.3.3 寻求外部帮助和参考资料 367
15.3.2 确定投资回报 367
15.3.4 让管理层参与安防策略的制定和实施工作 370
第16章 发动一场信息安全战役 371
16.1 发动一场信息安全战役 372
16.1.1 确定目标 372
16.1.2 确定实现目标都需要哪些东西 373
16.1.3 制定策略 374
16.1.4 信息安全策略示例 379
16.1.5 赢得用户的接受和支持 381
16.1.6 对信息安防计划进行评估 383
16.1.7 信息安防计划的跟进与维护 383
附录 Linux信息安全资源 385