第一章 总则
第一条 为加强武汉学院信息系统的系统安全管理工作,确保系统安全高效运行,特制定本规范。
第二条 武汉学院所有系统管理员必须遵照系统安全管理规范对系统进行检查和配置,单位应对各部门的规范执行情况进行有效的监督和管理,实行奖励与惩罚制度。对违反管理办法规定的行为要及时指正,对严重违反者要立即上报。
第二章 适用范围
第三条 本规范适用于武汉学院信息系统内网和外网建设、使用、管理和第三方使用人员。
第四条 本规范适用于各主流主机操作系统的安全配置,其中Unix系统安全配置适用于AIX、HP-UX、SCO Open Server和Linux等Unix操作系统,Windows系统安全配置适用于Windows2000/XP/2003/2008操作系统,其他操作系统安全配置在此规范中仅给出了安全配置指导,请查阅相关资料并同系统供应商确认后作出详细配置。
第三章 遵循原则
第五条 系统安全应该遵循以下原则:
第六条 有限授权原则:应限定网络中每个主体所必须的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小。
第七条 访问控制原则:对主体访问客体的权限或能力的限制,以及限制进入物理区域(出入控制)和限制使用计算机系统和计算机存储数据的过程(存取控制)。
第八条 日志使用原则:日志内容应包括软件及磁盘错误记录、登录系统及退出系统的时间、属于系统管理员权限范围的操作。
第九条 审计原则:计算机系统能创建和维护受保护客体的访问审计跟踪记录,并能阻止非授权的用户对它访问或破坏。
第十条 分离与制约原则:将用户与系统管理人员分离;将系统管理人员与软件开发人员分离;将系统的开发与系统运行分离;将密钥分离管理;将系统访问权限分级管理。
第十一条 最小化安装原则:操作系统应遵循最小化安装原则,仅安装需要的组件和应用程序,以降低可能引入的安全风险。
第四章 UNIX系统安全规范
第十二条 UNIX系统的安全管理主要分为四个方面:
(一) 防止未授权存取:这是计算机安全最重要的问题,即未被授权使用系统的人进入系统。用户安全意识、良好的口令管理(由系统管理员和用户双方配合)、登录活动记录和报告、用户和网络活动的周期检查、这些都是防止未授权存取的关键。
(二) 防止泄密:这也是计算机安全的一个重要问题。防止已授权或未授权的用户存取相互的重要信息。文件系统查帐、SU登录和报告、用户安全意识、加密都是防止泄密的关键。
(三) 防止用户拒绝系统的管理:这一方面的安全应由操作系统来完成。一个系统不应被一个有意试图使用过多资源的用户损害。不幸的是,UNIX不能很好地限制用户对资源的使用,一个用户能够使用文件系统的整个磁盘空间,而UNIX基本不能阻止用户这样做。系统管理员最好用PS命令,记程序DF和DU 周期地检查系统。查出过多占用CPU的进程和大量占用磁盘的文件。
(四) 防止丢失系统的完整性:该安全方面与一个好的系统管理员的实际工作(例如:周期地备份文件系统,系统崩溃后运行FSCK检查,修复文件系统,当有新用户时,检测该用户是否可能使用了使系统崩溃的软件)和保持一个可靠的操作系统有关(即用户不能经常性地使系统崩溃)。
第十三条 用户账号控制:UNIX每个用户有唯一的用户名、用户ID和口令,文件属主取决于用户ID;root可以更改文件属主;系统缺省root为超级用户;系统用户admin、sys、bin等不允许登录;需要共享同一类文件的用户可以归入同一个组。
第十四条 大多数默认安装的UNIX/Linux系统,没有对账户口令进行强制限制,因此为了保证系统的安全应该调整系统的策略对账户的密码进行长度和复杂性的限制。
第十五条 root账户安全。root是UNIX系统中最为特殊的一个账户,它具有最大的系统权限,能够控制系统的所有资源。su命令通常要在任何都不可读的文件中记录所有想成为root的企图,还可用记数据或ps命令识别运行su命令的用户。如此,系统管理员作为 root运行程序时应当特别小心,对于root账户的使用应该注意以下问题:
(一) 严格限制使用root特权的人数;
(二) 不要作为root或以自己的登录户头运行其他用户的程序,首先用su命令进入用户的户头;
(三) 不要把当前工作目录排在PATH路径表的前边,那样容易招引特洛伊木马。当系统管理员用su命令进入root时,他的PATH将会改变,就让PATH保持这样,以避免特洛伊木马的侵入;
(四) 输入/usr/bin/su执行su命令,用户和管理员应养成使用/usr/bin/su的习惯。若有su源码,将其改成必须用全路径名运行(即su要确认argv[0]的头一个字符是"/"才运行);
(五) 不要未注销户头就离开终端,特别是作为root用户时更不能这样。当系统管理员作为root用户时,命令提示符是"$",这个提示符对某些人来说可能是个红灯标志;
(六) 不允许root在除控制台外的任何终端登录(这是login的编译时的选项),如果没有login源码,就将登录名root改成别的名,造成破坏者不能在root登录名下猜测各种可能的口令,从而非法进入root的户头;
(七) 确认su命令记下了想运行su企图的记录/var/adm/sulog,该记录文件的许可方式是600,并属root所有。这是非法者喜欢选择来替换成特洛伊木马的文件;
(八) 不要让某人作为root运行,即使是几分钟,即使是系统管理员在一旁注视着也不行;
(九) root口令应由系统管理员以不公开的周期更改;
(十) 不同的机器采用不同的root口令;
(十一) Linux系统把root的权限进行了更细粒度的划分,更小的单位成为能力(capability),为了安全可以使用能力约束集放弃部分root的权限。
第十六条 系统账户安全。在Unix系统上,大多数系统账户平时是没什么用的,包括:bin daemon adm lp mail news uucp operator games gopher rpc等,即使不把它们删除,也不要让它们拥有真正的shell。检查/etc/passwd文件,检查这些账户的最后一个字段(shell)是否被置为/sbin/nologin或/bin/false。另外,还要禁止这些账户使用系统的ftp服务,把这些系统用户放入/etc/ftpusers或者/etc/ftpd/ftpusers文件。
第十七条 基线控制。基线是一个系统快照数据库,保存操作系统文件、应用和用户。通过基线检查,对比系统当前和原始的快照,可以快速检测系统非授权及没有记录的变化,系统出现非授权的修改表示系统可能遭到入侵。系统中的配置文件、可执行文件、动态连接库等不会经常变动的文件应该纳入基线控制的范畴,而/tmp、/var等系统目录,以及其它一些经常发生变动的文件不可以进行基线控制。在UNIX系统中经常用到的基线控制工具包括:Tripwire、AIDE等。
第十八条 补丁管理。补丁对于系统安全和稳定具有重要的意义,因此应该密切关注每个系统的补丁。各种UNIX/Linux系统的厂商都会不定期地针对新出现的漏洞发布安全补丁或者软件升级包,下表是一些常见UNIX/Linux系统的补丁发布方式和获取手段:
操作系统 |
补丁类型 |
修补方式 |
Solaris |
单个补丁和补丁集 |
pkgadd、installpatch |
Linux(Redhat、RedFlag、Turbo) |
替代的升级软件包 |
rpm |
HP-UX |
单个补丁和补丁集 |
swinstall |
AIX |
单个补丁和补丁集 |
instfix |
第十九条 文件/目录控制。UNIX文件和目录有一组许可权位,采用标准的读、写和执行来定义三个级别的许可权:用户(文件属主)、组和其他人,另外附加的三种许可权位是SUID、SGID和t(粘着位)。带SUID 位的可执行文件意味着文件运行时,其进程以文件的有效UID运行。Shell程序不支持SUID,SUID对目录无意义;带SGID位的可执行文件意味着文件运行时,其进程以文件属组的有效GID运行;带SGID的目录表示在该目录下创建的文件/目录将继承目录的组ID,而忽略创建者的属组;UNIX中的粘着位对文件无意义,带粘着位的目录意味着:即使对目录具有写许可权(如/tmp),用户也不能随便删除目录下的文件,除非是文件属主或目录属主。
第二十条 系统日志。安全性日志是系统安全的重要保障,系统管理员应经常使用其做安全性检查。
第二十一条 网络服务安全。服务器的服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www 和ftp 服务器的机器,应该只开放80 和25 端口,而将其他无关的服务如:fingerauth 等服务关掉,以减少系统漏洞。
第二十二条 inetd启动的服务。inetd 在系统启动时可由启动程序(/etc/rc.d/init.d/inet)启动。inetd 监视文件(/etc/inetd.conf)中所设置的端口并等待连接要求(请求包)。一旦有连接请求时,判断与inetd.conf 所指定的端口相对应的服务,进而启动提供该服务的服务器程序,连接请求本身当连接终止时,被启动的服务也随之停止运行, 从而节省了大量的系统资源。
通过inetd启动的服务多属于没有必要的网络服务,这些网络服务或者本身的安全非常低,例如:rlogin、rsh等;或者提供此种网络服务的软件存在安全缺陷,因此为了系统的安全和稳定,需要关闭这些服务。比较便捷的方式是重新创建一个/etc/inetd.conf文件,在里面加入必须的网络服务,例如:telnet、ftp等。
第二十三条 网络服务的访问控制。对于启用的服务,应该使用TCP_Wrapper进行封装,实现基于IP地质的访问控制。TCP_Wrapper(tcpd)在inetd 接到客户的请求时启动,具有存取管理启动目标服务器程序的功能。tcpd 启动时, 可读入允许/etc/hosts.allow 服务的主机和禁止/etc/hosts.deny 主机的设置文件。
第二十四条 其他服务。除了由inetd/xinetd启动的服务之外,系统在缺省的情况下会自动启用一些没用的服务,例如:LPD、Sendmail、NFS。这些服务给系统带来了极大的安全隐患,而且系统功能越单纯,结构越简单,可能出现的漏洞越少,因此越容易进行安全维护。因此,应该禁止这些不必要的服务,检查/etc/rc.d/目录下的各个目录中的文件,删除不必要的文件。
第二十五条 替代不安全的服务。在UNIX系统中,很多服务经常会被用到,但是本身安全性比较低。例如,telnet服务使用明文进行网络的数据传输,很容易遭到网络窃听,泄漏用户名、密码等敏感数据。因此,需要使用更为安全的ssh协议进行替代,SSH是一个使用加密连接的安全的远程管理/数据传输协议。它可以用来替代telnet, r命令、ftp等传统的不安全的协议/命令。OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,几乎可以用于所有的UNIX/Linux系统。
第二十六条 at/cron安全。在UNIX/Linux下使用cron和at进行任务日程安排。在多数系统上通常只有系统管理员才需要运行这些。
第五章 windows系统安全规范
第二十七条 windows系统安全基本原则:
(一) 所有磁盘分区都是NTFS文件系统。
(二) 管理员账户有一个强口令。
(三) 禁止所有不必要的服务。
(四) 删除或禁止所有不必要的账号。
(五) 关闭所有不必要的共享目录。
(六) 设置访问控制列表。
(七) 设置严格的安全策略。
(八) 安装最新的服务包和补丁程序。
(九) 安装反病毒软件。
第二十八条 Windows安全流程。下面的图表显示了帮助实现服务器安全(获得安全)和保持其安全性(保持安全)所需的步骤。
第二十九条 Windows系统修补流程。
n 分析:了解当前环境和潜在的威胁。确定必须部署的修补程序以减少对您的环境的威胁。
n 规划:确定应部署哪些修补程序以抵御潜在的威胁和弥补已经发现的漏洞。确定执行测试和部署任务的人选和执行步骤。
n 测试:检查可用的修补程序并根据您的环境对它们进行分类,测试所有已经确定的修补程序,以确保它们可以在您的环境中工作,并且不会产生任何副作用。了解修补程序的作用以及它会对您的环境产生何种影响。验证它是否能按规划的要求运行。
n 部署:部署正确的修补程序以保护您的环境安全。
n 监视:在部署修补程序后检查所有系统,以确认没有任何副作用。
n 审查:作为日常管理过程的一部分,您需要定期审查已发布的新修补程序、您的环境以及您的单位需要哪些修补程序。如果您在审查过程中发现需要新的修补程序,请重新开始管理过程的第一个步骤。
第三十条 服务器基准策略。服务器基准策略配置设定的一些方面包括:
n 审计策略,确定如何在您的服务器上执行审计。
n 安全选项,使用注册表值确定特定的安全设置。
n 注册表访问控制列表,确定谁可以访问注册表。
n 文件访问控制列表,确定谁可以访问文件系统。
n 服务配置,确定哪些服务需要启动、停止、禁用等。
第三十一条 审计策略。程序、安全性和系统事件日志的设置都在该策略中配置并应用到域中的所有成员服务器。各日志的大小都设置为 10 兆字节 (MB),而且各日志都配置为不改写事件。所以,管理员必须定期查看日志并根据需要进行归档或清理。
第三十二条 有效的账户锁定策略有助于防止攻击者猜出账户的密码。
第三十三条 安全选项策略:
n 对匿名连接的附加限制 对服务器的任何匿名访问都将被禁止,而且对任何资源都将要求显式访问。
n LAN Manager 身份验证级别 通过使用 NTLMv2 对 Windows 9x 和 Windows NT 强制执行一个更安全的身份验证协议。
n 在关机时清理虚拟内存页面交换文件 如果启用此选项,Windows 2000 将在关机时清理页面交换文件,将存储在那里的所有信息清除掉。
n 禁用 Lmhash 创建 相比之下LM散列运算的能力比NTLM弱,因而易在猛烈攻击下被攻破。如果没有需要LM身份验证的客户机,则应禁用LM散