一、 Windows 2003安全配置
确保所有磁盘分区为NTFS分区、操作系统、Web主目录、日志分别安装在不同的分区
不要安装不需要的协议,比如IPX/SPX, NetBIOS?
不要安装其它任何操作系统
安装所有补丁(用瑞星安全漏洞扫描下载)
关闭所有不需要的服务
二、IIS的安全配置
三、删除Windows Server 2003默认共享
1、首先编写如下内容的批处理文件:
@echo off
net share C$ /del
net share D$ /del
net share E$ /del
net share F$ /del
net share admin$ /del
以上文件的内容用户可以根据自己需要进行修改。保存为delshare.bat,存放到系统所在文件夹下的system32GroupPolicyUserScriptsLogon目录下。然后在开始菜单→运行中输入gpedit.msc‘回车即可打开组策略编辑器。点击用户配置→Windows设置→脚本(登录/注销)→登录在出现的“登录 属性”窗口中单击“添加”,会出现“添加脚本”对话框,在该窗口的“脚本名”栏中输入delshare.bat,然后单击“确定”按钮即可。重新启动计算机系统,就可以自动将系统所有的隐藏共享文件夹全部取消了,这样就能将系统安全隐患降低到最低限度。
2、禁用IPC连接
IPC$(Internet Process Connection)是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方计算机即可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。它是Windows NT/2000/XP/2003特有的功能,但它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000/XP/2003在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但也为简称为IPC入侵者有意或无意的提供了方便条件,导致了系统安全性能的降低。在建立IPC的连接中不需要任何黑客工具,在命令行里键入相应的命令就可以了,不过有个前提条件,那就是你需要知道远程主机的用户名和密码。打开CMD后输入如下命令即可进行连接:net useipipc$ password /user:usernqme。我们可以通过修改注册表来禁用IPC连接。打开注册表编辑器。找到如下组建HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa中的restrictanonymous子键,将其值改为1即可禁用IPC连接。
四、清空远程可访问的注册表路径
大家都知道,Windows 2003操作系统提供了注册表的远程访问功能,只有将远程可访问的注册表路径设置为空,这样才能有效的防止黑客利用扫描器通过远程注册表读取计算机的系统信息及其它信息。
打开组策略编辑器,依次展开“计算机配置→Windows 设置→安全设置→本地策略→安全选项”,在右侧窗口中找到“网络访问:可远程访问的注册表路径”,然后在打开的窗口中,将可远程访问的注册表路径和子路径内容全部设置为空即可。
五、关闭不必要的端口
对于个人用户来说安装中默认的有些端口确实是没有什么必要的,关掉端口也就是关闭无用的服务。139端口是NetBIOS协议所使用的端口,在安装了TCP/IP 协议的同时,NetBIOS 也会被作为默认设置安装到系统中。139端口的开放意味着硬盘可能会在网络中共享;网上黑客也可通过NetBIOS知道你的电脑中的一切!在以前的Windows版本中,只要不安装Microsoft网络的文件和打印共享协议,就可关闭139端口。但在Windows Server 2003中,只这样做是不行的。
如果想彻底关闭139端口,具体步骤如下: 鼠标右键单击“网络邻居”,选择“属性”,进入“网络和拨号连接”,再用鼠标右键单击“本地连接”,选择“属性”,打开“本地连接 属性”页 ,然后去掉“Microsoft网络的文件和打印共享”前面的“√”。接下来选中“Internet协议(TCP/IP)”,单击“属性”→“高级”→“WINS”,把“禁用TCP/IP上的NetBIOS”选中,即任务完成。对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。
假如你的电脑中还装了IIS,你最好重新设置一下端口过滤。步骤如下:选择网卡属性,然后双击“Internet协议(TCP/IP)”,在出现的窗口中单击“高级”按钮,会进入“高级TCP/IP设置”窗口,接下来选择“选项”标签下的“TCP/IP 筛选”项,点“属性”按钮,会来到“TCP/IP 筛选”的窗口,在该窗口的“启用TCP/IP筛选(所有适配器)”前面打上“√”,然后根据需要配置就可以了。如果你只打算浏览网页,则只开放TCP端口80即可,所以可以在“TCP端口”上方选择“只允许”,然后单击“添加”按钮,输入80再单击“确定”即可。
六、杜绝非法访问应用程序
Windows Server 2003是一种服务器操作系统,为了防止登陆到其中的用户,随意启动服务器中的应用程序,给服务器的正常运行带来不必要的麻烦,我们很有必要根据不同用户的访问权限来限制。
他们去调用应用程序。实际上我们只要使用组策略编辑器作进一步的设置,即可实现这一目的,具体步骤如下: 打开“组策略编辑器”的方法为:依次点击“开始→运行”,在“运行”对话框中键入“gpedit.msc”命令并回车,即可打开“组策略编辑器”窗口。然后依次打开“组策略控制台→用户配置→管理模 板→系统”中的“只运行许可的Windows应用程序”并启用此策略。 然后点击下面的“允许的应用程序列表”边的“显示”按钮,弹出一个“显示内容”对话框,在此单击“添加”按钮来添加允许运行的应用程序即可。
七、设置和管理账户
1、系统管理员账户最好少建,更改默认的管理员帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。
2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码。
3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。
4、在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时间20分钟”,“复位锁定计数设为30分钟”。
5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用
6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了Asp.net还要保留Aspnet账户。
7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。
八、网络服务安全管理
1、禁止C$、D$、ADMIN$一类的缺省共享
打开注册表,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters,在右边的窗口中新建Dword值,名称设为AutoShareServer值设为0
2、解除NetBios与TCP/IP协议的绑定右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用TCP/IP上的NETBIOS
3、关闭不需要的服务,以下为建议选项
九、打开相应的审核策略
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。推荐的要审核的项目是:
登录事件 成功失败
账户登录事件成功 失败
系统事件 成功失败
策略更改 成功失败
对象访问 失败
目录服务访问失败
特权使用 失败
十、其它安全相关设置
1、隐藏重要文件/目录
可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrent-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击“CheckedValue”,选择修改,把数值由1改为0
2、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。
3、防止SYN洪水攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters新建DWORD值,名为SynAttackProtect,值为2
4. 禁止响应ICMP路由通告报文HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters Interfacesinterface新建DWORD值,名为PerformRouterDiscovery 值为0
5. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters将EnableICMPRedirects 值设为0
6. 不支持IGMP协议HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters新建DWORD值,名为IGMPLevel 值为0
7、禁用DCOM:运行中输入 Dcomcnfg.exe。 回车, 单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。
对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。
清除“在这台计算机上启用分布式 COM”复选框。
注:3-6项内容采用的是Server2000设置,没有测试过对2003是否起作用。但有一点可以肯定我用了一段的时间没有发现其它副面的影响。
十一、配置 IIS 服务:
1、不使用默认的Web站点,如果使用也要将 将IIS目录与系统磁盘分开。
2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。
3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
4、删除不必要的IIS扩展名映射。右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml, .shtm, .stm
5、更改IIS日志的路径,右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性
6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。
7、使用UrlScan。UrlScan是一个ISAPI筛选器,它对传入的HTTP数据包进行分析并可以拒绝任何可疑的通信量。如果没有特殊的要求采用UrlScan默认配置就可以了。
但如果你在服务器运行ASP.NET程序,并要进行调试你需打开要%WINDIR%System32InetsrvURLscan 文件夹中的URLScan.ini 文件,然后在UserAllowVerbs节添加debug谓词,注意此节是区分大小的。
如果你的网页是.asp网页你需要在DenyExtensions删除.asp相关的内容。
如果你的网页使用了非ASCII代码,你需要在Option节中将AllowHighBitCharacters的值设为1
在对URLScan.ini 文件做了更改后,你需要重启IIS服务才能生效,快速方法运行中输入iisreset
如果你在配置后出现什么问题,你可以通过添加/删除程序删除UrlScan。
8、利用WIS(Web Injection Scanner)工具对整个网站进行SQL Injection脆弱性扫描.
十二、配置Sql服务器
1、System Administrators 角色最好不要超过两个
2、如果是在本机最好将身份验证配置为Win登陆
3、不要使用Sa账户,为其配置一个超级复杂的密码
4、删除以下的扩展存储过程格式为:
右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。
十三、如果只做服务器,不进行其它操作,使用IPSec
1、管理工具—本地安全策略—右击IP安全策略—管理IP筛选器表和筛选器操作—在管理IP筛选器表选项下点击添加—名称设为Web筛选器—点击添加—在描述中输入Web服务器—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为Tcp——IP协议端口第一项设为从任意端口,第二项到此端口80——点击完成——点击确定。
2、再在管理IP筛选器表选项下点击添加—名称设为所有入站筛选器—点击添加—在描述中输入所有入站筛选—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为任意——点击下一步——完成——点击确定。
3、在管理筛选器操作选项下点击添加——下一步——名称中输入阻止——下一步——选择阻止——下一步——完成——关闭管理IP筛选器表和筛选器操作窗口。
4、右击IP安全策略——创建IP安全策略——下一步——名称输入数据包筛选器——下一步——取消默认激活响应原则——下一步——完成。
5、在打开的新IP安全策略属性窗口选择添加——下一步——不指定隧道——下一步——所有网络连接——下一步——在IP筛选器列表中选择新建的Web筛选器——下一步——在筛选器操作中选择许可——下一步——完成——在IP筛选器列表中选择新建的阻止筛选器——下一步——在筛选器操作中选择阻止——下一步——完成——确定
6、在IP安全策略的右边窗口中右击新建的数据包筛选器,点击指派,不需要重启,IPSec就可生效.
十四、建议
如果你按本文去操作,建议每做一项更改就测试一下服务器,如果有问题可以马上撤消更改。而如果更改的项数多,才发现出问题,那就很难判断问题是出在哪一步上了。
十五、运行服务器记录当前的程序和开放的端口
1、将当前服务器的进程抓图或记录下来,将其保存,方便以后对照查看是否有不明的程序。
2、将当前开放的端口抓图或记录下来,保存,方便以后对照查看是否开放了不明的端口。当然如果你能分辨每一个进程,和端口这一步可以省略。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国