Windows为我们提供很多设置、选项和配置区域,可能有100多个很重要的安全配置因素需要考虑,不过在本文中我们将重点探讨十大安全配置要素,这些要素都是管理员容易忽视的安全问题。
1.服务账户限制工作站登录
服务账户是用来支持那些仅在有限数量计算机中运行的服务的,因此限制服务可以登录的范围是很有必要的,这可以帮助增强整体安全抵御能力,并且当受到服务账户本身的攻击时可以将攻击限制到那些允许服务账户登录的计算机上。
对服务账户可以登录的工作站的限制的设置位于用户被配置的地方,也就是Active Directory内的Active Directory Users and Computers,当你找到服务账户,右键单击服务账户并选择属性。然后将自动转入账户属性,在这里选择Log On To button,随后将出现登陆工作站对话框,如下图1所示:
图1:这个配置允许管理员限制服务账户可以登录的位置。
2.管理员不能从网络访问计算机
这取决于企业管理员账户的使用方式,有安全专家指导的管理员应该知道只有当执行灾难恢复时才能使用管理员账户。在灾难恢复的情况下,你将需要登陆来执行灾难恢复,而不是从网络来登录。如果你可以从网络登录,你应该使用一般管理员账户。另外,你也可以限制管理员账户只能从本地登录,而无法从网络访问。
这个设置是在GPO中,当然,所有的GPO链接和应用程序规则都适用。你会想将GPO链接到适当的企业部门,然后打开GPO到以下路径:Computer Configuration|Windows Settings|Security Settings|Local Policies|User Rights Assignment|Deny access to this computer from the network,如下图所示。
图2: 你可以限制管理员账户只能从本地登录到服务器。
3.确认Local Administrators Group中的成员
当你赋予用户管理控制服务器或者用户桌面的权力,将会发生奇怪的事情。从大体上来看,这通常都容易受到互联网安全威胁。解决方案是什么呢?从本地管理员组移除Domain Admins和本地管理员。
为了确保这些账户在本地管理员组中,在每个服务器和桌面中,你都可以适用组策略。你需要访问组策略参数选择(Group Policy Preferences),然后打开组策略对象到以下节点:Computer Configuration\Preferences\Control Panel Settings\Local Users and Groups\New\Local Group,如图3所示。
图3: 确保本地管理员的组员是安全的
4.重新设置本地管理员密码
现在我最喜欢的问题就是“上次你重新设置每台计算机的本地管理员密码是什么时候?”,每次几乎都得到相同的答案,“安装过程中”,“三年前”,“从没有设置”,这些都是不能接受的。这是很关键的配置,企业应该至少一到三个月设置一次密码。如果没有定期重新设置本地管理员密码的话,蠕虫病毒和攻击者将有机可乘。现在只需使用组策略参数设置就可以简单设置密码重置。
要配置此设置,你需要设置一个符合组策略参数的组策略对象。
注意:
和上一个设置一样,这个设置必须在运行Windows Sever 2008或者Vista SP1的计算机上进行,不过也向后兼容Windows XP SP2和 Windows Server 2003 SP1。
如果你打开编辑器中的GPO到Configuration\Preferences\Control Panel Settings\Local Users and Groups\New\Local User,如图4所示。
图4:你可以从GPO未每台计算机重新设置本地管理员密码
5.为管理员启用UAC
我知道很多人不喜欢UAC,然而对于大多数企业而言,最好启用UAC来保障最高的安全水平,在这里就不再阐述UAC的重要性问题,但是UAC绝对是管理员保障企业安全的不二选择。
要配置这个设置,你需要进入组策略对象的编辑模式,然后你需要打开以下节点:Computer Configuration|Windows Settings|Security Settings|Local Policies|Security Options|User Account Control:内置管理员账户的管理员批准模式以及用户账号控制。在管理员批准模式中的行为提示信息如下图所示。
图5: UAC有两个设置可以控制管理员使用功能的方式
很多IT部门都会抱怨微软公司产品不安全,但是只要管理员肯花时间来配置,系统将变得非常安全。
6. 移除LanManager使用
当你在考虑windows系统的所有安全功能时,你需要记住过去验证是由LanManager处理的,有时候也称为LM。而且很糟糕的是,微软公司在很多操作系统中仍然支持LM,这将对企业安全防御造成严重影响。LM是最糟糕的验证协议,因为它试图保护密码hash。因此,企业管理员应该采取一切防御措施杜绝在windows系统环境中使用LM。
为了防止LM的使用,你需要进行两个不同的设置配置,首先是防止LM hash被通过网络发送出去,其次防止LM hash被存储在账户数据库中。
为了防止LM hash被发送出去,你可以配置一个组策略对象政策,建议你将该政策放在GPO中与域节点链接,在以下位置Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options,你可以找到LAN Manager Authentication Level政策,如图6所示。
图6: LAN Manager验证基本可以使用组策略设置
请注意在图6中,设置为仅发送NTLMv2响应,这是6个级别中的第三级别(在其他情况可能是第四级别,不过根据配置的注册表值,第1级别为level 0),在下图中,可以看到6个级别,level0-5。
图7: LAN Manager验证级别的六种级别
理想情况下,你需要将级别设置为第5级,Send NTLMv2 response only,但是你会发现有些传统客户或者传统软件与此相冲突,因此在设置级别前,你需要在企业环境中进行测试。
第二个LM保护设置也是在相同的GPO路径,该设置在大多数版本的Windows和Active Directory中都没有配置,它可以帮助保护位于服务器和计算机的Active Directory数据库或者本地安全账户管理器(SAM)中的LM hash。该设置如下图所示,可以防止LM hash被存储在账户数据库中。
图8: LM hash的存储可以被组策略所控制
该设置只有两个选项:启用或者禁用。理想情况下,你需要选择启用。这样的话,当用户下次修改密码时,就不会将LM hash值存储在数据库中。
7. 为管理员设置粒化密码
可能很多读者都在期待这一部分。我知道有超过90%的Windows管理员都期望这项技术早日面市,这项技术被称为“粒化密码政策(FGPP)”,它允许在相同AD域中设置多个密码政策。这也就意味着IT管理员至少可以有20字符长度的密码。财务用户至少可以使用15个字符长度的密码,而行政人员可以使用至少2字符长度的密码。
这里有个技巧,这不是使用组策略配置的!没错,你在原始AD数据库中配置FGPP,最好的方法就是使用ADSIEdit.msc,不过有些供应商提供的解决方案可以为你提供更简单的设置方法。
在这里,我提供一些基本的设置要求:
1. 所有域控制器必须运行Windows Server 2008或者更高版本
2. 域必须在 Windows Server 2008功能级别
3. 你必须让一个部门内的用户位于一个组内,这也是FGPP设置权限的途径。
当了除了使用组策略的内置密码政策以及粒化密码政策解决方案外也还有其他选择,这些解决方案需要第三方安装,不过他们不仅能取代微软提供的密码解决方案,还能够为企业提供更加细化的密码管理。每个管理员都知道,基本的密码控制都无法与先进的密码破解技术相抗衡,因此,可以选择像Specops密码政策等解决方案来部署密码控制:
• 包括用户可以使用的词典列表
• 强制执行4字符密码
• 提高14字符密码长度限制
• 为密码格式创建自定义规则
• 与用户进行良好的沟通,当用户试图输入复杂密码时,告诉他们如何设置符合要求的密码。
总结
彻底处理好Lan Manager的问题可能还需要很长的时间,如果攻击者只需要获取单个管理员级别用户的访问权限,就能导致整个网络受到破坏,那么我们就必须采取一切预防措施来提高防御能力,如本文中提及到的配置要素。你需要考虑所有LM的基本要素:防止在服务器和计算机上的AD和本地SAM中LM hash的网络拦截和存储。建立良好的深度密码政策是很重要的,这也是为什么微软为用户提供粒化密码政策的原因。在单个AD域部署多个不同密码政策的功能可以为企业提供更好的安全的粒度控制,并且可以节约成本。