第1章 Web系统集成与安全 1
1.1 构建大型网站 1
1.2 LAMP网站架构方案分析 3
1.2.1 操作系统的选择 3
1.2.2 Web服务器、缓存和PHP加速 4
1.2.3 数据库 5
1.3 LAMP安装 5
1.3.1 LAMP安装准备 5
1.3.2 开始安装LAMP 8
1.3.3 安装PHP扩展Eaccelerator 0.9.6.1加速软件 11
1.3.4 安装Suhosin 13
1.4 利用Nginx实现Web负载均衡 13
1.4.1 安装、配置Nginx 14
1.4.2 Nginx实施负载均衡 20
1.4.3 设置Nginx的反向代理配置 21
1.4.4 在Nginx负载均衡服务器上设置缓存 22
1.5 Apache安全加固 22
1.5.1 使用配置指令进行访问控制 22
1.5.2 使用.htaccess进行访问控制 23
1.5.3 使用认证和授权保护Apache 25
1.5.4 使用Apache中的安全模块 27
1.5.5 使用SSL保证Web通信安全 28
1.5.6 其他安全措施 30
1.6 利用Sphinx提高LAMP应用检索性能 33
1.7 Apache与Tomcat集成 36
1.7.1 安装模块 36
1.7.2 Tomcat5优化 37
1.8 分析Apache网站状态 39
1.8.1 AWStats简介 39
1.8.2 安装AWStats 40
1.8.3 配置AWStats 40
1.8.4 应用AWStats分析日志 41
1.8.5 扩展功能加入IP插件 42
1.9 应对分布式拒绝服务(DDoS)的攻击 42
1.9.1 DDoS攻击原理 43
1.9.2 DDoS的检测方法 45
1.9.3 防范DDoS攻击 46
1.9.4 基于角色的防范 49
1.9.5 小结 51
1.10 案例实战:网站遭遇DDoS攻击 51
1.10.1 事件发生 51
1.10.2 事件分析 54
1.10.3 针对措施 55
1.10.4 小结 59
1.11 基于开源的Web应用防火墙(FreeWAF) 60
1.11.1 安装FreeWAF注意事项 60
1.11.2 FreeWAF网络部署 62
1.11.3 防篡改设置 63
1.12 Web漏洞扫描工具 64
1.12.1 Nikto 64
1.12.2 其他Web检测工具 66
1.12.3 利用开源软件扫描漏洞 67
1.12.4 Fast-Track 67
1.12.5 商业软件 69
1.12.6 小结 70
1.13 基于PHP的SQL注入防范 70
1.13.1 服务器端的安全配置 70
1.13.2 PHP代码的安全配置 71
1.13.3 PHP代码的安全编写 71
1.13.4 小结 72
1.14 SQL注入漏洞检测方法 72
1.15 BIND View实现网通电信互访 76
1.15.1 背景 76
1.15.2 选择BIND解决方案 76
1.15.3 BIND View方案 77
1.15.4 方案实施步聚 79
1.15.5 小结 82
第2章 目录服务配置案例 83
2.1 Linux下LDAP统一认证的实现 83
2.1.1 LDAP概述 83
2.1.2 实现思路 84
2.1.3 使用LDAP做身份认证 85
2.1.4 LDAP版本的选择 86
2.1.5 LDAP软件的选择 86
2.1.6 OpenLDAP的安装和配置 86
2.1.7 轻松搞定LDAP账号管理 89
2.1.8 配置Apache支持LDAP 92
2.1.9 利用Smbldap-tool工具管理Samba 94
2.1.10 利用Smbldap-tool初始化LDAP 97
2.1.11 使用phpLDAPadmin管理LDAP服务器 98
2.1.12 LDAP的安全管理 100
2.2 利用LDAP实现Windows和Linux平台统一认证 101
2.2.1 Linux认证 101
2.2.2 Windows认证 104
2.2.3 Linux+Windows统一认证 106
第3章 基于Postfix的大型邮件系统案例 109
3.1 基于Postfix的大型邮件系统 109
3.1.1 Postfix与其他MTA的对比 109
3.1.2 基本邮件服务器的搭建 110
3.1.3 Postfix常见问题 114
3.1.4 Postfix的反垃圾配置 116
3.1.5 Postfix的反病毒配置 117
3.1.6 自动监控Postfix邮件服务器 119
3.2 搭建分布式的邮件系统 120
3.2.1 搭建分布式邮件系统的架构设计 120
3.2.2 邮件接收服务器的配置与设计 121
3.2.3 用户邮件服务器的配置与设计 122
3.3 利用Stunnel加密保护邮件服务器 122
3.3.1 安装编译Stunnel 123
3.3.2 保障IMAP安全 123
3.3.3 保障POP3安全 124
3.3.4 保障SMTP安全 124
第4章 Oracle RAC数据库集群在Linux系统下搭建案例 125
4.1 确定Oracle系统的规模 126
4.1.1 CPU规模的调整 126
4.1.2 内存规模的调整 127
4.1.3 I/O子系统的调整 127
4.1.4 RAID磁盘子系统 128
4.2 Oracle RAC设置流程 128
4.2.1 系统安装前的关键配置 129
4.2.2 配置主机解析文件hosts 132
4.2.3 配置系统内核参数 132
4.2.4 给Oracle用户配置Shell 136
4.2.5 配置系统安全设置 137
4.2.6 添加Oracle用户和组 137
4.2.7 设置Oracle用户环境变量 138
4.2.8 配置节点间的SSH信任 139
4.2.9 配置共享存储系统 140
4.2.10 建立和配置raw设备 145
4.2.11 安装Oracle Clusterware 146
4.2.12 安装Oracle数据库 152
4.2.13 配置Oracle Net 154
4.2.14 创建RAC数据库 155
4.2.15 Oracle CRS的管理与维护 163
4.2.16 测试Oracle RAC数据库的集群功能 166
4.2.17 ASM基本操作 171
第5章 企业集群案例分析 175
5.1 基于Heartbeat的双机热备系统范例 175
5.1.1 准备工作 175
5.1.2 安装Heartbeat 176
5.1.3 配置/etc/ha.d/ha.cf 176
5.1.4 配置/etc/ha.d/haresources 177
5.1.5 配置haresources文件 178
5.1.6 配置/etc/ha.d/authkeys 179
5.1.7 在备份服务器上安装Heartbeat 180
5.1.8 设置系统时间 180
5.1.9 启动Heartbeat 180
5.1.10 在备份服务器上启动Heartbeat 182
5.1.11 检查主服务器上的日志文件 183
5.1.12 停止并启动Heartbeat 183
5.1.13 监视资源 184
5.1.14 小结 184
5.2 企业服务器搭建双机集群配置 185
5.2.1 Heartbeat、Mon、Rsync简介 185
5.2.2 安装环境 185
5.2.3 安装Heartbeat 187
5.2.4 测试HA系统 190
5.2.5 Mon服务监控 191
5.2.6 数据同步 193
5.2.7 集群测试技术 194
5.3 利用HA-OSCAR创建高可用Linux集群 197
5.3.1 支持的发行版和系统要求 197
5.3.2 HA-OSCAR的体系结构 198
5.3.3 HA-OSCAR的向导安装步骤详解 200
5.3.4 监控和配置Webmin 203
5.3.5 小结 208
5.4 WebLogic集群高可用案例 209
5.4.1 RHEL 5.4操作系统的安装 210
5.4.2 Java环境的配置安装 211
5.4.3 设置环境变量 211
5.4.4 WebLogic 11安装部署 212
5.4.5 启动WebLogic的AdminServer服务 217
5.4.6 部署Web应用 221
5.4.7 启动Web应用 222
5.4.8 WebLogic优化 224
第6章 FTP服务器的安全配置案例 225
6.1 VSFTP服务的基本配置 225
6.2 Linux下VSFTPD和ProFTPD用户集中管理 230
6.2.1 建立程序安装目录 231
6.2.2 安装MySQL 231
6.2.3 安装ProFTPD 232
6.2.4 MySQL与ProFTPD组合 234
6.2.5 VSFTPD与MySQL的组合 237
6.2.6 开机自动启动VSFTPD 239
6.3 在VSFTPD中实现对IP的安全管理案例 239
6.3.1 项目背景 240
6.3.2 准备工作 240
6.3.3 用于封禁和解封的Shell脚本 241
6.3.4 部署实施 242
6.3.5 小结 243
6.4 暴力破解FTP服务器的技术探讨与防范 243
6.4.1 网络本身的负载能力与高速网络 243
6.4.2 CPU运算、处理能力低下的解决方法 245
6.4.3 安全策略的突破 246
6.4.4 应对措施——第三方软件Fail2ban加固方法 250
第7章 部署IDS案例分析 254
7.1 在Linux下部署IDS案例 254
7.1.1 安装Snort 254
7.1.2 维护Snort 258
7.1.3 编写Snort规则 262
7.1.4 分析Snort规则 265
7.2 Linux下PortSentry的配置 270
7.2.1 入侵检测工具简介 270
7.2.2 PortSentry的安装配置 271
7.2.3 启动检测模式 273
7.2.4 测试 274
7.3 利用IP碎片绕过Snort 274
7.3.1 事件发生 274
7.3.2 故障处理 277
7.3.3 数据包解码 278
7.3.4 针对IP碎片攻击的预防措施 284
7.3.5 评估NIDS的两个工具 285
7.3.6 服务器被入侵后应该做的5件事 285
7.3.7 小结 286
第8章 虚拟化技术应用案例 287
8.1 Linux下Wine虚拟机 287
8.1.1 Wine的体系结构 287
8.1.2 Wine运行的技术背景 288
8.1.3 Wine启动分析 289
8.1.4 Win32启动分析 290
8.1.5 Winelib启动分析 290
8.1.6 Win16与DOS程序启动分析 290
8.1.7 Wine安装 291
8.2 基于SUSE Linux Server上的Xen虚拟化应用 292
8.2.1 Xen和KVM虚拟化的对比 292
8.2.2 Xen的特点 292
8.2.3 Xen架构和Xen虚拟化技术简介 293
8.2.4 安装使用SUSE Xen软件 294
8.2.5 引导Xen系统 297
8.2.6 安装Xen客户机——Domain-U 300
8.2.7 故障查询 304
8.3 VMware HA在企业中的应用 305
8.3.1 项目基本情况 305
8.3.2 VMware资源动态分配的实现 306
8.3.3 VMware高可用性的实现 306
8.3.4 高可用性集群的实现 306
第9章 Linux性能优化 309
9.1 Linux性能评估 309
9.2 网络性能优化 318
9.2.1 网络性能 318
9.2.2 TCP连接优化 320
9.3 Oracle应用优化案例 321
9.3.1 Oracle数据库性能优化 321
9.3.2 Oracle数据库系统性能调优的方法 321
9.3.3 性能调优工具 323
9.3.4 系统调整 323
9.4 动态PHP网站优化案例 324
9.4.1 初期性能问题及处理 324
9.4.2 逐步解决问题 324
9.4.3 网站结构优化 324
第10章主机监控应用案例 325
10.1 基于Linux系统的Nagios网络管理 325
10.1.1 Nagios系统及特点 326
10.1.2 在Linux上运行Nagios系统 327
10.1.3 运用Nagios实现对网络上服务器的监控 328
10.1.4 对Nagios系统的评价和建议 330
10.2 运用NRPE扩展Nagios功能 331
10.2.1 监控原理 331
10.2.2 配置Nagios客户端 331
10.2.3 配置Nagios服务器端 333
10.3 利用飞信实现Nagios短信报警功能 335
10.3.1 飞信简介 335
10.3.2 安装与配置飞信 335
10.3.3 整合飞信到Nagios中 337
10.4 运用Ntop监控网络流量 338
10.4.1 几种流量采集技术的比较 340
10.4.2 Ntop系统的部署及性能 341
10.4.3 Ntop安装配置 342
10.4.4 应用Ntop 344
10.4.5 优化Ntop 356
10.5 基于Linux的集群监控系统 360
10.5.1 安装准备 361
10.5.2 集群节点管理器部署Ganglia 361
10.6 使用cheops-ng加强管理Linux网络 368
10.6.1 cheops-ng的工作原理 368
10.6.2 cheops-ng的下载和安装 368
10.6.3 cheops-ng的配置 369
10.6.4 cheops-ng的运行 373
10.7 打造开源安全信息管理平台 375
10.7.1 Ossim背景介绍 375
10.7.2 安装Ossim 378
10.7.3 安装远程管理工具 380
10.7.4 安装X-Window 381
10.7.5 配置解析 383
10.7.6 分布式部署(VPN连接)举例 384
10.7.7 Ossim的系统配置 386
10.7.8 Ossim的后台管理及配置 397
10.8 Ossim插件配置管理 402
10.8.1 原始日志格式对比 402
10.8.2 插件配置工作步骤 403
10.8.3 插件导入方法 404
10.8.4 收集Cisco防火墙日志 408
10.8.5 收集CheckPoint设备日志 411
10.8.6 将Squid的日志收集到Ossim系统 413
10.8.7 对日志中含有中文字符的处理方式 413
10.8.8 Linux系统下网络服务日志方法总结 414
10.9 Ossim压力测试 415
10.9.1 软硬件测试环境 415
10.9.2 测试项目 415
10.9.3 测试工具 416
10.9.4 BT中的网络压力测试工具 421
10.10 运用TC工具控制网络流量 422
10.10.1 相关概念 423
10.10.2 使用TC 424
10.10.3 创建HTB队列 425
10.10.4 为根队列创建相应的类别 425
10.10.5 为各个类别设置过滤器 425
10.10.6 应用实例 426
第11章 iptables防火墙应用案例 428
11.1 调整netfilter内核模块以限制P2P连接 428
11.1.1 netfilter的结构框架 428
11.1.2 连线跟踪 430
11.2 基于Linux的iptables/netfilter限制BT下载案例分析 436
11.2.1 禁止基于标准协议的BT下载 436
11.2.2 禁止下载者和Tracker服务器之间的交互 437
11.2.3 禁止下载者之间连接 437
11.2.4 禁止基于非标准协议的BT下载 437
11.2.5 禁止BT客户端加入DHT网络 439
11.2.6 小结 442
11.3 基于iptables的Web认证系统的实现 442
11.3.1 引言 442
11.3.2 系统应用模块 442
11.3.3 系统功能及实现方法 443
11.3.4 系统性能与优化 445
11.4 运用iptables防御Syn Flood攻击 446
11.4.1 传统的SYNFlood攻击防御方案 446
11.4.2 基于iptables的动态包过滤防火墙 447
11.4.3 iptables和入侵检测软件的集成 447
11.4.4 测试结果和分析 448
11.4.5 性能优化 449
11.5 iptables过滤实例 450
11.5.1 过滤URL 450
11.5.2 过滤关键字 451
11.5.3 iptables过滤特定网段 451
11.5.4 禁上某些网站 451
第12章 数据备份与恢复 452
12.1 运用SSH、Rsync实现数据自动备份 452
12.1.1 SSH无密码安全登录 452
12.1.2 crontab定时和数据同步 453
12.1.3 Rsync数据同步 454
12.2 用日志进行MySQL数据库实时恢复 454
12.2.1 设置二进制日志 455
12.2.2 简单的数据恢复 455
12.2.3 手动恢复数据 456
12.2.4 针对某一时间点恢复数据 456
12.2.5 使用position参数恢复 457
12.3 NetBackup的安装、配置及管理 458
12.3.1 NetBackup的基本概念 458
12.3.2 安装NetBackup 459
12.3.3 NetBackup的配置 460
12.3.4 创建一个基本备份任务 462
12.3.5 管理NetBackup 465
12.3.6 优化措施 467
12.4 运用NetBackup进行Oracle备份和恢复 469
12.4.1 备份过程 469
12.4.2 恢复过程 475
第13章 内核安全加固案例 485
13.1 用VXE保护Linux系统安全 485
13.1.1 VXE的工作原理 485
13.1.2 与chroot服务的比较 486
13.1.3 VXE安装使用 488
13.1.4 小结 489
13.2 用DSM模块来阻止缓冲区溢出 489
13.2.1 初步认识缓冲区溢出 490
13.2.2 用GCC编译 491
13.2.3 示例 492
13.2.4 阻止缓冲区溢出攻击解决方案 495
13.2.5 DSM与缓冲区溢出攻击 496
13.2.6 利用DSM阻止缓冲区溢出攻击 497
13.2.7 小结 498
第14章 远程连接 499
14.1 应用Linux远程桌面 499
14.1.1 X-Window初步 499
14.1.2 理解X Server 500
14.1.3 在Linux下配置XDM 502
14.1.4 Windows下X-Win32连接设置 503
14.1.5 小结 505
14.2 远程控制VNC攻击案例研究 505
14.2.1 功能强大的VNC工具——vncpwdump 505
14.2.2 使用vncpwdump进行渗透测试 506
14.2.3 针对VNC密码验证绕过漏洞的扫描 509
14.2.4 小结 510
14.3 加固SSH服务器九条 510
14.4 SSH/RDP远程访问审计方法 518
14.4.1 远程桌面审计实现 519
14.4.2 SSH审计实现 519
14.4.3 加密协议审计的实施 520
附录A Linux系统软件包的依赖性问题 521
A.1 什么是依赖性 521
A.2 动态可执行文件和共享对象 521
A.3 RPM软件包和共享库依赖性 523
A.4 手动解决依赖性问题 524
A.5 自动解决依赖性故障 527
A.5.1 使用Yum来安装RPM软件包 527
A.5.2 使用Yum安装新的Glibc软件包 527
A.6 关于升级Gilbc的建议 528
A.7 总结 529
附录B 开源监控软件比较 531
附录C 本书第一版读者评价 532