第一部分 安全性简介 3
第1章 安全问题 3
目录 3
1.1 安全缺陷的起因 5
1.1.1 网络连通性的增长 5
1.1.2 软件的脆弱性 6
1.1.3 雇员和承包商 7
1.1.4 目的明确而足智多谋的黑客 7
1.1.5 站点策略 8
第2章 安全策略 9
2.1 原则1:侵入系统的黑客很可能是认识的人 9
2.2 原则2:不要轻信任何人,对必须要相信的人也要小心 10
2.3 原则2a:不要过分自信,对每件事情都要确认 10
2.5 原则4:分层保护 11
2.4 原则3:要使潜在的侵入者相信他们会被抓住 11
2.6 原则5:设计安全策略时要假设任何一个保护层完全失效的情况 12
2.7 原则6:把安全性作为最初设计的一部分 13
2.8 原则7:禁用不需要的服务、软件包和功能 13
2.9 原则8:连接网络之前要想清楚并进行保护 14
2.10 原则9:为最坏的情况做准备 14
2.11 9个原则:一种生活方式 15
第二部分 独立的系统 19
第3章 PROM、OpenBoot和物理安全性 19
3.1 什么是PROM 19
3.2 什么是OpenBoot 19
3.2.1 为什么绝对不能让用户接触OpenBoot 20
3.2.2 通过设置安全参数来保护OpenBoot 20
3.2.3 改变OpenBoot安全级别的过程 21
3.2.4 丢失了所有口令——部分恢复过程 22
3.2.5 推荐的启动设备 22
3.2.6 改变OpenBoot徽标 22
3.2.7 恢复丢失的超级用户口令 23
3.3 系统物理安全性考虑因素 25
3.3.1 防止偷窃和访问 25
3.3.2 审查PROM 26
3.3.3 OpenBoot口令 26
3.3.4 CD-ROM驱动器 26
3.3.5 备份介质 26
3.3.6 操作系统版本介质 26
4.1.1 有些应用程序需要开放的权限 29
4.1 什么是文件系统 29
第4章 文件系统 29
3.4 补充信息 29
4.2 理解文件和目录的权限 30
4.2.1 身份:用户、组及其他 30
4.2.2 权限总结:读、写、执行、SetUID、SetGID、粘着位 31
4.3 小结:身份和权限 33
4.4 查看文件和目录权限的方式 34
4.4.1 权限:数值形式 35
4.4.2 设置文件和目录的权限——数值形式 36
4.4.3 设置文件和目录的权限——符号形式 36
4.5 umask及其工作方式 37
4.5.1 Ksh和umask-S 38
4.5.2 默认的文件权限和umask 38
4.5.4 默认的目录权限和umask 39
4.5.5 如何查找具有指定权限设置的文件 39
4.5.3 超级用户的umask 39
4.6 系统设备访问权限 40
4.7 文件系统审核工具 40
4.7.1 ASET 41
4.7.2 COPS 42
4.7.3 Tiger 43
4.7.4 Tripwire 43
4.7.5 lsof(列出打开的文件) 44
4.8 其他安全工具和技术 44
4.8.1 检查/etc/权限 44
4.8.2 保证正确的utmp和utmpx权限 44
4.8.3 使用固定模式工具增强安全性 44
4.8.4 使用fuser命令 45
4.8.5 使用ls命令显示隐藏的文件和文件名中隐藏的字符 45
4.8.8 用fsirand使文件系统I节点号随机化 46
4.8.6 为ls命令取别名 46
4.8.7 为rm命令取别名 46
4.8.9 文件系统配额 47
4.9 文件系统访问控制表 48
4.10 补充信息 49
第5章 用户帐号和环境 51
5.1 简介 51
5.2 用户帐号安全 51
5.2.1 超级用户帐号 52
5.2.2 其他管理性的帐号和组 52
5.2.3 用户帐号 53
5.2.4 用户何时需要超级用户特权 53
5.2.5 PATH和LD_LIBRARY_PATH 53
5.3.2 影像文件 54
5.3 口令文件、影像文件和组文件 54
5.3.1 口令文件 54
5.3.3 口令安全 55
5.3.4 UNIX组 56
5.3.5 /etc/default/passwd文件 58
5.4 成为超级用户 58
5.4.1 直接以超级用户登录 58
5.4.2 su命令 59
5.5 外壳和应用程序的安全性 61
5.5.1 强制启动应用程序 61
5.5.2 在超级用户的外壳提示符中包含系统名称 61
5.5.3 受限制的外壳 62
5.5.4 默认的登录环境 62
5.5.6 程序缓冲区溢出 63
5.5.5 直接写控制台 63
5.5.7 其他进程信息 64
5.6 X-Windows安全性 64
5.6.1 X-Windows屏幕手工锁定 64
5.6.2 X-Windows屏幕自动锁定 65
5.6.3 X-Windows显示器权限 65
5.7 审核工具 67
5.7.1 COPS 67
5.7.2 Crack 67
5.8 补充信息 67
第6章 系统启动和关闭 69
6.1 系统运行级别 69
6.1.1 确定当前运行级别 70
6.2.3 rc机制 71
6.2.2 多用户模式 71
6.2.1 PROM 71
6.2 系统启动 71
6.3 系统关闭 72
6.3.1 init 72
6.3.2 uadmin 73
6.4 关于rc文件的更多信息 73
6.4.1 分析rc文件的例子 73
6.5 审核启动和关闭机制 75
6.5.1 COPS 75
6.5.2 Tripwire 75
6.6.2 改变启动和关闭脚本 76
6.6.3 禁用启动和关闭脚本 76
6.6.4 关于链接的启动文件的更多信息 76
6.6.1 添加启动和关闭脚本 76
6.6 修改启动和关闭机制 76
6.7 补充信息的位置 77
第7章 cron和at 79
7.1 cron 79
7.1.1 什么是cron 79
7.1.2 cron如何工作 80
7.1.3 如何配置cron 80
7.1.4 cron用户配置 81
7.1.5 用户访问cron系统 81
7.2 at 82
7.2.1 什么是at 82
7.2.2 at如何工作 82
7.3.4 cron运行的脚本中存在不确定的PATH 83
7.3.3 cron运行的脚本中存在不安全的PATH 83
7.3.2 将crontab文件留在所有用户都可以看到的地方 83
7.3.1 没有充分屏蔽cron运行的程序 83
7.3 应该避免的常见问题 83
7.2.3 用户访问at系统 83
7.3.5 在cron和at作业中使用标准输入和标准输出 84
7.4 审核工具 84
7.4.1 Tripwire 84
7.4.2 COPS 84
7.5 补充信息 84
第8章 系统日志 87
8.1 什么是系统日志 87
8.2 syslog 87
8.2.1 syslog的功能和安全级别 88
8.2.2 syslog消息分类所用的表示法 88
8.2.3 syslog配置 89
8.2.4 调试syslog 90
8.3 loginlog 93
8.4 sulog 93
8.5 上一次登录 94
8.6 卷管理器日志 94
8.7 安装日志 95
8.8 sysidtool日志 95
8.9 帮助日志记录的工具——Logcheck 95
8.10 补充信息 96
第三部分 网络连接系统 99
第9章 网络接口和网络服务 99
9.1 网络 99
9.2 网络接口 99
9.3.1 ifconfig 100
9.2.1 网络接口特性 100
9.3 网络接口配置 100
9.3.2 ndd 101
9.3.3 利用/etc/notrouter关闭IP转发 103
9.3.4 配置网络适配器 107
9.3.5 混合模式 108
9.4 网络服务 108
9.4.1 非必须的服务 109
9.4.2 网络服务号 109
9.4.3 网络服务配置 109
9.4.4 网络服务的启动方式 111
9.4.5 Daemon网络服务不和inetd一起启动 111
9.5 路由 112
9.5.1 增加静态路由 112
9.5.2 增加动态路由 113
9.6 使用snoop 114
9.7 补充信息 116
第10章 网络/系统体系结构 119
10.1 什么是体系结构 119
10.2 简单和复杂体系结构的比较 119
10.3 体系结构原理 121
10.3.1 原理1:最小化故障点数目(或者缩短关键路径) 121
10.3.2 原理2:把服务尽量设置在靠近它们所服务对象的位置 121
10.3.3 原理3:将服务和对应的应用程序纵向对齐 122
10.3.4 原理4:准备为网络增加分区 122
第11章 电子邮件 125
11.1 电子邮件概述 125
11.1.1 传输代理 125
11.1.3 用户代理 126
11.1.2 递送代理 126
11.2.1 Auth (或Identd)协议 127
11.2.2 邮件代理程序 127
11.2 电子邮件安全性弱点的类型 127
11.2.3 消息源路由 129
11.2.4 隐私 129
11.2.5 可信性 129
11.3 减轻电子邮件的安全性问题 129
11.3.1 只在电子邮件服务器上运行sendmail 129
11.3.2 断开内部邮件服务器与Internet的直接连接 131
11.3.3 禁止带有路由信息的邮件 133
11.3.4 实现邮件加密和数字签名 133
11.3.5 替代Sendmail 134
11.3.7 实现Smrsh 135
11.3.6 删除不必要的电子邮件别名 135
11.3.8 实现ForwardPath 136
11.4 补充信息 136
第12章 打印 139
12.1 打印体系结构 139
12.2 打印子系统目录 140
12.2.1 审核打印子系统的目录 140
12.3 本地打印 140
12.3.1 本地打印设备 140
12.3.2 确定打印机使用的设备 140
12.3.3 打印设备访问权限 141
12.3.4 审核打印设备权限 141
12.4 限制对打印机和打印服务器的访问 141
12.5 补充信息 142
12.4.1 直接访问网络打印机 142
第13章 网络访问控制 143
13.1 网络访问控制原理 143
13.1.1 不必要的网络访问点是对安全性的威胁 143
13.1.2 没有防备的网络接入点是对安全性的威胁 144
13.2 必须的和非必须的服务 144
13.2.1 如何停止运行非必须的服务 146
13.2.2 禁止在/etc/inet/services和/etc/inet/inetd.conf文件中没有定义的服务 147
13.3 加强网络访问控制 148
13.3.1 inetd连接跟踪 148
13.3.2 TCP Wrapper 148
13.3.4 .rhosts文件??r-命令的网关 150
13.3.5 /etc/hosts.equiv文件 150
13.3.3 公共域rpcbind 150
13.3.6 审核.rhosts和hosts.equiv文件 151
13.3.7 对telnet、rsh和rlogin的安全替换 151
13.3.8 X-Windows是不安全的 152
13.3.9 防火墙 152
13.4 测试系统的辅助选项 153
13.4.1 Satan 153
13.4.2 ISS 153
13.5 检测非法入侵 154
13.5.1 Syn 154
13.5.2 Klaxon 154
13.5.3 Courtney 154
13.6.2 DES(Diffie-Hellman)身份验证 155
13.6.1 系统身份验证 155
13.6 身份验证 155
13.5.6 非法入侵检测:紧跟潮流 155
13.5.5 Gabriel 155
13.5.4 Tocsin 155
13.6.3 Kerberos身份验证 156
13.7 虚拟专用网 157
13.7.1 SKIP 157
13.7.2 IPsec 157
13.8 补充信息 158
第14章 域名服务 161
14.1 域名服务DNS 161
14.1.1 /etc/nsswitch.conf 162
14.1.2 /etc/resolv.conf 163
14.2 DNS的安全性漏洞和解决方案 164
14.2.1 在Internte上暴露太多的信息 164
14.2.2 DNS服务器的非法区域传输 166
14.2.3 Nslookup和真正的DNS请求之间的区别 167
14.2.4 公共域DNS (BIND) 167
14.2.5 DIG公共域工具 167
14.2.6 禁止nscd缓存 167
14.2.7 了解BIND的版本 167
14.3 NIS 168
14.3.1 获取并安装INSKIT 169
14.4 NIS安全性漏洞和解决方案 170
14.4.1 将NIS映射从/etc目录中转移出去 170
14.4.2 保护NIS映射目录 170
14.4.3 使用难以猜到的NIS域名 170
14.4.4 实现/var/yp/securenets 170
14.4.6 避免使用非法NIS服务器 171
14.4.5 隐藏影像域 171
14.4.7 不要将根帐号和其他管理帐号包含在NIS中 172
14.4.8 禁止nscd缓存 172
14.4.9 其他NIS安全性漏洞 172
14.5 NIS+ 172
14.5.1 NIS+的默认访问权限 173
14.5.2 主类nobody的访问权限 173
14.5.3 NIS+安全性级别 174
14.5.4 NIS+管理 174
14.5.5 备份NIS+表 175
14.5.6 刷新NIS+事务处理记录 175
14.5.7 不要将根帐号和其他管理帐号包含在NIS+中 175
14.5.8 禁止nscd缓存 175
14.6 域名服务开关 176
14.7 Nscd 177
14.8 补充信息 179
第15章 NFS和Automounter 181
15.1 NFS 181
15.1.1 NFS操作 181
15.1.2 提高NFS共享的安全性 182
15.1.3 提高NFS装入的安全性 183
15.1.4 通过设置Portmon提高NFS的安全性 184
15.1.5 NFS身份验证 184
15.1.6 服务器作为NFS客户机 185
15.1.7 NFS和访问控制列表 185
15.1.9 禁止NFS 186
15.2 Automounter 186
15.1.8 网络上的NFS 186
15.2.1 间接Automounter映射 187
15.2.2 直接Automounter映射 187
15.2.3 Automounter浏览 188
15.2.4 Automounter和域名服务开关 189
15.2.5 禁止Automounter 189
15.3 补充信息 189
第四部分 事故和恢复 193
第16章 系统恢复的准备工作 193
16.1 故障因素 193
16.1.1 自然灾害 193
16.1.2 人为灾害 193
16.1.7 程序员失误 194
16.1.9 有意破坏 194
16.1.8 用户失误 194
16.1.4 硬件故障 194
16.1.6 文档错误 194
16.1.5 UNIX管理员失误 194
16.1.3 内部设施故障 194
16.2 为系统恢复作准备 195
16.2.1 成立事故反应小组 195
16.2.2 系统的文件系统设计 195
16.2.3 文件系统的几何结构 196
16.2.4 磁带备份 196
16.2.5 系统恢复测试 197
16.2.6 软件版本的存储介质 197
16.2.7 系统事件日志 197
16.2.11 保留硬件的备用件 198
16.2.10 硬件和软件服务协议 198
16.2.12 关键服务器PROM的备份 198
16.2.8 Solaris和工具软件的补丁程序 198
16.2.9 CD-ROM驱动器 198
16.2.13 备用的磁盘空间 199
16.2.14 恢复文档 199
16.2.15 联系和交叉培训(Cross-Training) 199
16.3 内部伙伴 200
16.4 外部伙伴 200
16.5 补充信息 200
附录A 安全性信息的在线资源 203
A.1 安全性Web站点 203
第五部分 附录 203
A.2 黑客Web站点 204
A.3 安全性邮寄列表 205
A.4 补丁程序 205
附录B 公共域安全工具的在线资源 207
B.1 TCP/IP安全性工具 207
B.1.1 ISS(Internet security scan,安全性扫描) 207
B.1.2 Satan(Security Administrator's Tool for Analg Zing Networks,分析网络的安全性管理员工具) 207
B.1.3 Cpm(check promiscuous mode,检查混杂模式) 207
B.1.4 tcpdump(network monitoring and data acquisition,网络监视和数据采集) 207
B.2.5 crack(password cracker,口令快客) 208
B.2.4 Kerberos 208
B.2.6 fwtk(fire wall toolkit,防火墙工具) 208
B.2.7 S/Key 208
B.2.2 rpcbind 208
B.2.1 TCP Wrappers 208
B.2 访问控制安全工具 208
B.2.3 Ssh(secure shell,安全外壳) 208
B.3 侵入检测工具 209
B.3.1 Klaxon 209
B.3.2 Courtney 209
B.3.3 Tocsin 209
B.3.4 Gabriel 209
B.3.5 syn 209
B.4 文件系统安全性工具 209
B.4.1 Tiger 209
B.5.2 MD5 210
B.6.2 sendmail V8(Public-domain Sendmail,公共域发送邮件) 210
B.6.1 SMAP(sendmail wrapper,sendmail包装) 210
B.6 电子邮件安全性工具 210
B.5.1 PGP 210
B.5 加密工具 210
B.4.3 COPS 210
B.4.2 Tripwire 210
B.6.3 Postfix (formerly Vmailer,以前的Vmailer) 211
B.6.4 smrsh 211
B.7 DNS工具 211
B.7.1 公共域BIND 211
B.7.2 Dig 211
B.7.3 其他DNS工具 211
B.8 其他工具和资源 211
B.8.1 Logcheck 211
B.8.2 lsof(list open files,开放文件列表) 211
B.9.3 COAST工具 212
B.9.2 CIAC工具 212
B.9.1 CERT工具 212
B.9 安全性工具站点 212
B.8.5 perl 212
B.8.4 fix-modes 212
B.8.3 Patchdiag 212
B.8.6 Washington大学ftpd 212
B.9.4 Doug工具 213
B.9.5 LIST(信息安全技术实验室)安全性工具 213
B.9.6 Sun免费软件站点 213
B.9.7 Wietse Venema的UNIX安全性工具集 213
B.10 黑客工具站点 213
附录C 获得和应用Solaris补丁程序 215
C.1 补丁信息的来源 215
C.2 理解Solaris补丁程序 215
C.3 理解Solaris补丁集 216
C.5.1 安装补丁程序之前 217
C.5.2 要安装的补丁程序 217
C.4 补丁程序的来源 217
C.5 补丁程序安装策略 217
C.5.3 测试补丁程序 218
C.5.4 为补丁程序重新引导系统 218
C.5.5 patchdiag程序 218
C.5.6 补丁程序安装程序,Solaris 2.x-2.5.1 218
C.5.7 Solaris 2.6和Solaris 7的补丁程序安装过程 219
C.5.8 Solaris OS升级 220
C.6 补充信息 220
附录D 推荐读物 223
D.1 参考书 223
D.2 在线出版物和文章 224
D.3 SunSolve出版物 225
D.5 Internet RFC 226
D.4 在线期刊 226
附录E Solaris安全产品 229
E.1 SunScreen ETS 229
E.2 SunScreen SPF 229
E.3 SunScreen SKIP 229
E.4 Sun Security Manager 230
E.5 SunScreen SecureNet 230
E.6 Trusted Solaris 230
E.7 补充信息 231
附录F 实现C2安全措施 233
F.1 什么是C2安全措施 233
F.2 C2安全措施的代价 233
F.3 启用C2安全措施 233
F.4 禁用C2安全措施 234
F.5.3 性能的管理 235
F.5.4 审核事件 235
F.5 管理C2安全措施 235
F.5.2 C2日志的管理 235
F.5.1 C2审核捕获的配置 235
F.5.5 审核跟踪分析 236
F.5.6 可移动存储介质管理 236
F.5.7 设备安置 236
F.5.8 建议 236
F.6 补充信息 237
附录G 验证公共域软件的完整性 239
G.1 使用PGP验证 239
G.2 使用MD5的验证 242
G.3 获得补充信息 243
附录H 攻击词汇表 245
附录I 保护系统安全检查表 251