服务器安全配置(只针对WIN系统)
一、
原则关掉所有不使用的服务,不安装所有与服务器无关的软件,打好所有补丁
修改3389
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Terminal Server/Wds/Repwd/Tds/Tcp, 看到那个PortNumber没有?0xd3d,这个是16进制,就是3389啦,我改XXXX这个值是RDP(远程桌面协议)的默认值,也就是说用来配置以后新建的RDP服务的,要改已经建立的RDP服务,我们去下一个键值:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TerminalServer/WinStations这里应该有一个或多个类似RDP-TCP的子健(取决于你建立了多少个RDP服务),一样改掉PortNumber。
修改系统日志保存地址
默认位置为
应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%/system32/config,默认文件大小512KB,管理员都会改变这个默认大小。
安全日志文件:%systemroot%/system32/config/SecEvent.EVT
系统日志文件:%systemroot%/system32/config/SysEvent.EVT
应用程序日志文件:%systemroot%/system32/config/AppEvent.EVT
Internet信息服务FTP日志默认位置:%systemroot%/system32/logfiles/msftpsvc1/,默认每天一个日志
Internet信息服务WWW日志默认位置:%systemroot%/system32/logfiles/w3svc1/,默认每天一个日志
Scheduler(任务计划)服务日志默认位置:%systemroot%/schedlgu.txt
应用程序日志,安全日志,系统日志,DNS服务器日志,它们这些LOG文件在注册表中的:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Eventlog
Schedluler(任务计划)服务日志在注册表中
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/SchedulingAgent
SQL
删掉或改名xplog70.dll
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters]
"AutoShareServer"=dword:00000000
"AutoShareWks"=dword:00000000
// AutoShareWks 对pro版本
// AutoShareServer 对server版本
// 0 禁止管理共享admin$,c$,d$之类默认共享
[HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/LSA]
"restrictanonymous"=dword:00000001
//0x1 匿名用户无法列举本机用户列表
//0x2 匿名用户无法连接本机IPC$共享(可能sql server不能够启动)
本地安全策略
封TCP端口:21(FTP,换FTP端口)23(TELNET),53(DNS),135,136,137,138,139,443,445,1028,1433,3389
可封TCP端口:1080,3128,6588,8080(以上为代理端口).25(SMTP),161(SNMP),67(引导)
封UDP端口:1434(这个就不用说了吧)
封所有ICMP,即封PING
以上是最常被扫的端口,有别的同样也封,当然因为80是做WEB用的
审核策略为
审核策略更改:成功,失败
审核登录事件:成功,失败
审核对象访问:失败
审核对象追踪:成功,失败
审核目录服务访问:失败
审核特权使用:失败
审核系统事件:成功,失败
审核账户登录事件:成功,失败
审核账户管理:成功,失败
密码策略:启用“密码必须符合复杂性要求","密码长度最小值"为6个字符,"强制密码历史"为5次,"密码最长存留期"为30天.
在账户锁定策略中设置:"复位账户锁定计数器"为30分钟之后,"账户锁定时间"为30分钟,"账户锁定值"为30分钟.
安全选项设置:本地安全策略==本地策略==安全选项==对匿名连接的额外限制,双击对其中有效策略进行设置,选择"不允许枚举SAM账号和共享",因为这个值是只允许非NULL用户存取SAM账号信息和共享信息,一般选择此项.
禁止登录屏幕上显示上次登录的用户名
控制面板==管理工具==本地安全策略==本地策略==安全选项
或改注册表
HKEY_LOCAL_MACHINE/SOFTTWARE/Microsoft/WindowsNT/CurrentVesion/Winlogn项中的Don't Display Last User Name串,将其数据修改为1
禁TCP/IP中的禁用TCP/IP上的NetBIOS
修改默认管理用户名(这就不用说了吧),禁用Guest帐号,除了ADMIN组的用户可以远程登陆本机完,别的用户的远程登陆都去掉
WEB目录用户权限设定...
依次做下面的工作:
选取整个硬盘:
system:完全控制
administrator:完全控制(允许将来自父系的可继承性权限传播给对象)
b./program files/common files:
everyone:读取及运行
列出文件目录
读取(允许将来自父系的可继承性权限传播给对象)
c./inetpub/wwwroot:
iusr_machine:读取及运行
列出文件目录
读取 (允许将来自父系的可继承性权限传播给对象)
e./winnt/system32:
选择除inetsrv和centsrv以外的所有目录,
去除“允许将来自父系的可继承性权限传播给对象”选框,复制。
f./winnt:
选择除了downloaded program files、help、iis temporary compressed files、
offline web pages、system32、tasks、temp、web以外的所有目录
去除“允许将来自父系的可继承性权限传播给对象”选框,复制。
g./winnt:
everyone:读取及运行
列出文件目录
读取(允许将来自父系的可继承性权限传播给对象)
h./winnt/temp:(允许访问数据库并显示在asp页面上)
everyone:修改 (允许将来自父系的可继承性权限传播给对象)
(还是WIN2K3好一点,默认就设好了设限)
删除默认IIS目录
删除IIS中除ASA和ASP的所有解析,除非你要用到别的CGI程序(WIN2K3中去不掉的)
定期查看服务器中的日志logs文件
检查ASP程序是否有SQL注入漏洞
解决方法:
在ASP程序中加入
dim listname
if not isnumeric(request("id")) then
response.write "参数错误"
response.end
end if
//作用是检查ID是否为INT数字型
如何让asp脚本以system权限运行?
修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低"....
如何防止asp木马?
基于FileSystemObject组件的asp木马
cacls %systemroot%/system32/scrrun.dll /e /d guests //禁止guests使用
regsvr32 scrrun.dll /u /s //删除
还原:
cacls %systemroot%/system32/scrrun.dll /e /p guests:r
regsvr32 scrrun.dll
基于shell.application组件的asp木马
cacls %systemroot%/system32/shell32.dll /e /d guests //禁止guests使用
regsvr32 shell32.dll /u /s //删除
还原:
cacls %systemroot%/system32/shell32.dll /e /p guests:r
regsvr32 shell32.dll
可以看一下caclsr语法,f是完全控制,c是写入
把ip2K.jpg另存为,改后缀名为RAR,2K和2K3下的安全策略,借用了REISTLIN的东西,3Q,上面有些东西太简单了就没写全.如果你是用固定IP的话,可以在安全策略中加上允许访问和你自己的IP
二、关闭Messenger,Remote Registry Service,Task Scheduler 服务及不需要的服务..
三、安装过程
有选择性地安装组件
不要按Windows 2000的默认安装组件,本着“最少的服务+最小的权限=最大的安全”原则,只选择安装需要的服务即可。例如:不作为Web服务器或FTP服务器就不安装IIS。常用Web服务器需要的最小组件是: Internet 服务管理器、WWW服务器和与其有关的辅助服务。
安装完毕后加入网络
在安装完成Windows 2000操作系统后,不要立即把服务器加入网络,因为这时的服务器上的各种程序还没有打上补丁,存在各种漏洞,非常容易感染病毒和被入侵。
应该在所有应用程序安装完之后依次打上各种补丁,因为补丁程序是针对不同应用程序而安装的,往往要替换或修改某些系统文件,如果先安装补丁再安装应用程序有可能导致补丁不能起到应有的效果。例如IIS的HotFix要求每次更改IIS的配置时都需要重新安装。
还有,如果怕IIS负荷过高导致服务器死机,也可以在性能中打开CPU限制,如将IIS的最大CPU使用率限制在70%。
正确设置和管理账户
1、停止使用用Guest账户,并给Guest 加一个复杂的密码。
2、账户要尽可能少,并且要经常用一些扫描工具查看一下系统账户、账户权限及密码。删除停用的账户,常用的扫描软件有:流光、HSCAN、X-SCAN、STAT SCANNER等。正确配置账户的权限,密码至少应不少于8位,且要数字、大小写字母,以及数字的上档键混用,这样就较难破译。
3、增加登录的难度,在“账户策略→密码策略”中设定:“密码复杂性要求启用”,“密码长度最小值8位”,“强制密码历史5次”,“最长存留期 30天”;在“账户策略→账户锁定策略”设定:“账户锁定3次错误登录”,“锁定时间20分钟”,“复位锁定计数20分钟”等,增加了登录的难度对系统的安全大有好处。
4、把系统Administrator账号改名,名称不要带有Admin等字样; 创建一个陷阱帐号,如创建一个名为“Administrator”的本地帐户,把权限设置成最低,什么事也干不了,并且加上一个超过10位的超级复杂密码。这样可以让那些 Scripts忙上一段时间了,并且可以借此发现他们的入侵企图。
5、不让系统显示上次登录的用户名,具体操作如下:
将注册表中“Hkey/Software/Microsoft/ WindowsNT/ Current Version/Winlogon/Dont Display Last User Name”的键值改为1。
正确地设置目录和文件权限
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,还必须非常小心地设置目录和文件的访问权限。Windows 2000的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全控制的(Full Control),您需要根据应用的需要重新设置权限。在进行权限控制时,请记住以下几个原则:
1、权限是累计的,如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限。
2、拒绝的权限要比允许的权限高(拒绝策略会先执行)。如果一个用户属于一个被拒绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。
3、 文件权限比文件夹权限高。
4、 利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯。
5、 只给用户真正需要的权限,权限的最小化原则是安全的重要保障。
6、 预防ICMP攻击。ICMP的风暴攻击和碎片攻击是NT主机比较头疼的攻击方法,而Windows 2000应付的方法很简单。Windows 2000自带一个Routing & Remote Access工具,这个工具初具路由器的雏形。在这个工具中,我们可以轻易地定义输入输出包过滤器。如设定输入ICMP代码255丢弃就表示丢弃所有的外来ICMP报文。
网络服务安全管理
1、关闭不需要的服务
只留必需的服务,多一些服务可能会给系统带来更多的安全因素。如Windows 2000的Terminal Services(终端服务)、IIS(web服务)、RAS(远程访问服务)等,这些都有产生漏洞的可能。
2、关闭不用的端口
只开放服务需要的端口与协议。
具体方法为:按顺序打开“网上邻居→属性→本地连接→属性→Internet 协议→属性→高级→选项→TCP/IP筛选→属性”,添加需要的TCP、UDP端口以及IP协议即可。根据服务开设口,常用的TCP口有:80口用于Web服务;21用于FTP服务;25口用于SMTP;23口用于Telnet服务;110口用于POP3。常用的UDP端口有:53口-DNS域名解析服务;161口-snmp简单的网络管理协议。8000、4000用于OICQ,服务器用8000来接收信息,客户端用4000发送信息。
3、禁止建立空连接
默认情况下,任何用户可通过空连接连上服务器,枚举账号并猜测密码。空连接用的端口是139,通过空连接,可以复制文件到远端服务器,计划执行一个任务,这就是一个漏洞。可以通过以下两种方法禁止建立空连接:
(1) 修改注册表中 Local_Machine/System/
CurrentControlSet/Control/LSA-RestrictAnonymous 的值为1。
(2) 修改Windows 2000的本地安全策略。设置“本地安全策略→本地策略→选项”中的RestrictAnonymous(匿名连接的额外限制)为“不容许枚举SAM账号和共享”。
首先,Windows 2000的默认安装允许任何用户通过空连接得到系统所有账号和共享列表,这本来是为了方便局域网用户共享资源和文件的,但是,同时任何一个远程用户也可以通过同样的方法得到您的用户列表,并可能使用暴力法破解用户密码给整个网络带来破坏。很多人都只知道更改注册表Local_Machine/System/CurrentControlSet/Control/LSA-RestrictAnonymous = 1来禁止空用户连接,实际上Windows 2000的本地安全策略里(如果是域服务器就是在域服务器安全和域安全策略里)就有RestrictAnonymous选项,其中有三个值:“0”这个值是系统默认的,没有任何限制,远程用户可以知道您机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum)等;“1”这个值是只允许非NULL用户存取SAM账号信息和共享信息;“2”这个值只有Windows 2000才支持,需要注意的是,如果使用了这个值,就不能再共享资源了,所以还是推荐把数值设为“1”比较好。
网络服务安全配置
1、修改默认端口。终端服务的默认端口为3389,可考虑修改为别的端口。修改方法为:
服务器端:打开注册表,在“HKLM/SYSTEM/Current ControlSet/Control/Terminal Server/Win Stations”处找到类似RDP-TCP的子键,修改PortNumber值。
客户端:按正常步骤建一个客户端连接,选中这个连接,在“文件”菜单中选择导出,在指定位置会生成一个后缀为.cns的文件。打开该文件,修改“Server Port”值为与服务器端的PortNumber对应的值。然后再导入该文件(方法:菜单→文件→导入),这样客户端就修改了端口。
2、安全配置Internet 服务管理器。对IIS服务安全配置如下:
(1)停止默认的Web服务,建立新的Web服务,将其主目录设为其他(非inetpub)目录,最好不和主系统点用一个分区。如果使用系统默认的Web服务,那么通过较简单的攻击,就可以黑掉服务器。
(2) 删除原默认安装的Inetpub目录(在安装系统的盘上)。
(3) 删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
3、不要设置Frontpage服务器扩展服务,如果开设,那么就可以远程在Frontpage下打开您的主页文件进行修改。
4、删除不必要的IIS扩展名映射。方法是:右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。如不用到其他映射,只保留.asp、.asa两映射即可。
安全的管理数据文件
1、常备份,要经常把要数据备份到专用的备份服务器,备份完毕后,可将备份服务器与网络隔离。
2、关闭默认共享。Windows 2000安装好以后,系统会创建一些隐藏的共享(如C$、D$等),在命令态下可用net share命令查看它们,这些共享要删除。不过当机器重新启动后,这些共享又会重新开启,需每次启动后都删除。
3、正确设置文件的共享权限 ,设置共享文件时,要注意把共享文件的权限从“everyone”组改成“授权用户”,包括打印共享,这样即使连接上去看到也无法查阅。
4、防止文件名欺骗,用显示所有文件名和文件夹以及显示文件类型扩展名来有效地防止文件名欺骗。如防止以.txt或.exe为扩展名的恶意文件被显示为.txt文件,大意打开该文件被攻,双击“我的电脑→工具→文件夹选项→查看”,选择“显示所有文件和文件夹”属性设置,去掉“隐藏已知文件类型扩展名”属性设置。
5、启用Terminal Service的安全日志,系统默认是不启用的。可以通过“Terminal Service Configration→权限→高级”中配置安全审核,记录登录、注销事件就可以了。
启用日志,利用软件随时检测网络流量
发现有异常随时查看日志文件,是不是有人在攻击。
四、Windows 服务的最佳化说明
Alerter
微软: 通知选取的使用者及计算机系统管理警示。如果停止这个服务,使用系统管理警示的程序将不会收到通知。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrative Alerts),除非你的计算机用在局域网络上
依存: Workstation
建议: 已停用
Application Layer Gateway Service
微软: 提供因特网联机共享和因特网联机防火墙的第三方通讯协议插件的支持
补充: 如果你不使用因特网联机共享 (ICS) 提供多台计算机的因特网存取和因特网联机防火墙 (ICF) 软件你可以关掉
依存: Internt Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 已停用
Application Management (应用程序管理)
微软: 提供指派、发行、以及移除的软件安装服务。
补充: 如上说的软件安装变更的服务
建议: 手动
Automatic Updates
微软: 启用重要 Windows 更新的下载及安装。如果停用此服务,可以手动的从 Windows Update 网站上更新操作系统。
补充: 允许 Windows 于背景自动联机之下,到 Microsoft Servers 自动检查和下载更新修补程序
建议: 已停用
Background Intelligent Transfer Service
微软: 使用闲置的网络频宽来传输数据。
补充: 经由 Via HTTP1.1 在背景传输资料的?#124;西,例如 Windows Update 就是以此为工作之一
依存: Remote Procedure Call (RPC) 和 Workstation
建议: 已停用
ClipBook (剪贴簿)
微软: 启用剪贴簿检视器以储存信息并与远程计算机共享。如果这个服务被停止,剪贴簿检视器将无法与远程计算机共享信息。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到
依存: Network DDE
建议: 已停用
COM+ Event System (COM+ 事件系统)
微软: 支持「系统事件通知服务 (SENS)」,它可让事件自动分散到订阅的 COM 组件。如果服务被停止,SENS 会关闭,并无法提供登入及注销通知。如果此服务被停用,任何明显依存它的服务都无法启动。
补充: 有些程序可能用到 COM+ 组件,像 BootVis 的 optimize system 应用,如事件检视器内显示的 DCOM 没有启用
依存: Remote Procedure Call (RPC) 和 System Event Notification
建议: 手动
COM+ System Application
微软: 管理 COM+ 组件的设定及追踪。如果停止此服务,大部分的 COM+ 组件将无法适当?#092;作。如果此服务被停用,任何明确依存它的服务将无法启动。
补充: 如果 COM+ Event System 是一台车,那么 COM+ System Application 就是司机,如事件检视器内显示的 DCOM 没有启用
依存: Remote Procedure Call (RPC)
建议: 手动
Computer Browser (计算机浏览器)
微软: 维护网络上更新的计算机清单,并将这个清单提供给做为浏览器的计算机。如果停止这个服务,这个清单将不会被更新或维护。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 一般家庭用计算机不需要,除非你的计算机应用在区网之上,不过在大型的区网上有必要开这个拖慢速度吗?
依存: Server 和 Workstation
建议: 已停用
Cryptographic Services
微软: 提供三个管理服务: 确认 Windows 档案签章的 [类别目录数据库服务]; 从这个计算机新增及移除受信任根凭证授权凭证的 [受保护的根目录服务]; 以及协助注册这个计算机以取得凭证的 [金钥服务]。如果这个服务被停止,这些管理服务将无法正确工作。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 简单的说就是 Windows Hardware Quality Lab (WHQL)微软的一种认证,如果你有使用 Automatic Updates ,那你可能需要这个
依存: Remote Procedure Call (RPC)
建议: 手动
DHCP Client (DHCP 客户端)
微软: 透过登录及更新 IP 地址和 DNS 名称来管理网络设定。
补充: 使用 DSL/Cable 、ICS 和 IPSEC 的人都需要这个来指定动态 IP
依存: AFD 网络支持环境、NetBT、SYMTDI、TCP/IP Protocol Driver 和 NetBios over TCP/IP
建议: 手动
Distributed Link Tracking Client (分布式连结追踪客户端)
微软: 维护计算机中或网络网域不同计算机中 NTFS 档案间的连结。
补充: 维护区网内不同计算机之间的档案连结
依存: Remote Procedure Call (RPC)
建议: 已停用
Distributed Transaction Coordinator (分布式交易协调器)
微软: 协调跨越多个资源管理员的交易,比如数据库、讯息队列及档案系统。如果此服务被停止,这些交易将不会发生。如果服务被停用,任何明显依存它的服务将无法启动。
补充: 如上所说的,一般家庭用计算机用不太到,除非你启用的 Message Queuing
依存: Remote Procedure Call (RPC) 和 Security Accounts Manager
建议: 已停用
DNS Client (DNS 客户端)
微软: 解析并快取这台计算机的网域名称系统 (DNS) 名称。如果停止这个服务,这台计算机将无法解析 DNS 名称并寻找 Active Directory 网域控制站的位置。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 如上所说的,另外 IPSEC 需要用到
依存: TCP/IP Protocol Driver
建议: 手动
Error Reporting Service
微软: 允许对执行于非标准环境中的服务和应用程序的错误报告。
补充: 微软的应用程序错误报告
依存: Remote Procedure Call (RPC)
建议: 已停用
Event Log (事件记录文件)
微软: 启用 Windows 为主的程序和组件所发出的事件讯息可以在事件检视器中检视。这个服务不能被停止。
补充: 允许事件讯息显示在事件检视器之上
依存: Windows Management Instrumentation
建议: 自动
Fast User Switching Compatibility
微软: 在多使用者环境下提供应用程序管理。
补充: 另外像是注销画面中的切换使用者功能
依存: Terminal Services
建议: 手动
Help and Support
微软: 让说明及支持中心能够在这台计算机上执行。如果这个服务停止,将无法使用说明及支持中心。如果这个服务被停用,它的所有依存服务将无法启动。
补充: 如果不使用就关了吧
依存: Remote Procedure Call (RPC)
建议: 已停用
Human Interface Device Access
微软: 启用对人性化接口装置 (HID) 的通用输入存取,HID 装置启动并维护对这个键盘、远程控制、以及其它多媒体装置上事先定义的快捷纽的使用。如果这个服务被停止,这个服务控制的快捷纽将不再起作用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如上所提到的
依存: Remote Procedure Call (RPC)
建议: 已停用
IMAPI CD-Burning COM Service
微软: 使用 Image Mastering Applications Programming Interface (IMAPI) 来管理光盘录制。如果这个服务被停止,这个计算机将无法录制光盘。如果这个服务被停用,任何明确地依赖它的服务将无法启动。
补充: XP 整合的 CD-R 和 CD-RW 光驱上拖放的烧录功能,可惜比不上烧录软件,关掉还可以加快 Nero 的开启速度
建议: 已停用
Indexing Service (索引服务)
微软: 本机和远程计算机的索引内容和档案属性; 透过弹性的查询语言提供快速档案存取。
补充: 简单的说可以让你加快搜查速度,不过我想应该很少人和远程计算机作搜寻吧
依存: Remote Procedure Call (RPC)
建议: 已停用
Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
微软: 为您的家用网络或小型办公室网络提供网络地址转译、寻址及名称解析服务和/或防止干扰的服务。
补充: 如果你不使用因特网联机共享(ICS)或是 XP 内含的因特网联机防火墙(ICF)你可以关掉
依存: Application Layer Gateway Service、Network Connections、Network Location Awareness(NLA)、Remote Access Connection Manager
建议: 已停用
IPSEC Services (IP 安全性服务)
微软: 管理 IP 安全性原则并启动 ISAKMP/Oakley (IKE) 及 IP 安全性驱动程序。
补充: 协助保护经由网络传送的数据。IPSec 为一重要环节,为虚拟私人网络 (VPN) 中提供安全性,而 VPN 允许组织经由因特网安全地传输数据。在某些网域上也许需要,但是一般使用者大部分是不太需要的
依存: IPSEC driver、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
建议: 手动
Logical Disk Manager (逻辑磁盘管理员)
微软: 侦测及监视新硬盘磁盘,以及传送磁盘区信息到逻辑磁盘管理系统管理服务以供设定。如果这个服务被停止,动态磁盘状态和设定信息可能会过时。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 磁盘管理员用来动态管理磁盘,如显示磁盘可用空间等和使用 Microsoft Management Console(MMC)主控台的功能
依存: Plug and Play、Remote Procedure Call (RPC)、Logical Disk Manager Administrative Service
建议: 自动
Logical Disk Manager Administrative Service (逻辑磁盘管理员系统管理服务)
微软: 设定硬盘磁盘及磁盘区,服务只执行设定程序然后就停止。
补充: 使用 Microsoft Management Console(MMC)主控台的功能时才用到
依存: Plug and Play、Remote Procedure Call (RPC)、Logical Disk Manager
建议: 手动
Messenger (信差)
微软: 在客户端及服务器之间传输网络传送及 [Alerter] 服务讯息。这个服务与 Windows Messenger 无关。如果停止这个服务,Alerter 讯息将不会被传输。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 允许网络之间互相传送提示讯息的功能,如 net send 功能,如不想被骚扰话可关了
依存: NetBIOS Interface、Plug and Play、Remote Procedure Call (RPC)、Workstation
建议: 已停用
MS Software Shadow Copy Provider
微软: 管理磁盘区阴影复制服务所取得的以软件为主的磁盘区阴影复制。如果停止这个服务,就无法管理以软件为主的磁盘区阴影复制。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 如上所说的,用来备份的?#124;西,如 MS Backup 程序就需要这个服务
依存: Remote Procedure Call (RPC)
建议: 已停用
Net Logon
微软: 支持网域上计算机的账户登入事件的 pass-through 验证。
补充: 一般家用计算机不太可能去用到登入网域审查这个服务
依存: Workstation
建议: 已停用
NetMeeting Remote Desktop Sharing (NetMeeting 远程桌面共享)
微软: 让经过授权的使用者可以使用 NetMeeting 透过公司近端内部网络,由远程访问这部计算机。如果这项服务停止的话,远程桌面共享功能将无法使用。如果服务停用的话,任何依赖它的服务将无法启动。
补充: 如上说的,让使用者可以将计算机的控制权分享予网络上或因特网上的其它使用者,如果你重视安全性不想多开后门,就关了吧
建议: 已停用
Network Connections (网络联机)
微软: 管理在网络和拨号联机数据夹中的对象,您可以在此数据夹中检视局域网络和远程联机。
补充: 控制你的网络联机
依存: Remote Procedure Call (RPC)、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 手动
Network DDE (网络 DDE)
微软: 为动态数据交换 (DDE) 对在相同或不同计算机上执行的程序提供网络传输和安全性。如果这个服务被停止,DDE 传输和安全性将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 一般人好像用不到
依存: Network DDE DSDM、ClipBook
建议: 已停用
Network DDE DSDM (网络 DDE DSDM)
微软: 讯息动态数据交换 (DDE) 网络共享。如果这个服务被停止,DDE 网络共享将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 一般人好像用不到
依存: Network DDE
建议: 已停用
Network Location Awareness (NLA)
微软: 收集并存放网络设定和位置信息,并且在这个信息变更时通知应用程序。
补充: 如果不使用 ICF 和 ICS 可以关了它
依存: AFD网络支持环境、TCP/IP Procotol Driver、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 已停用
NT LM Security Support Provider (NTLM 安全性支持提供者)
微软: 为没有使用命名管道传输的远程过程调用 (RPC) 程序提供安全性。
补充: 如果不使用 Message Queuing 或是 Telnet Server 那就关了它
依存: Telnet
建议: 已停用
Performance Logs and Alerts (效能记录文件及警示)
微软: 基于事先设定的排程参数,从本机或远程计算机收集效能数据,然后将数据写入记录或?#124;发警讯。如果这个服务被停止,将不会收集效能信息。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 没什么价值的服务
建议: 已停用
Plug and Play
微软: 启用计算机以使用者没有或很少的输入来识别及适应硬件变更,停止或停用这个服务将导致系统不稳定。
补充: 顾名思义就是 PNP 环境
依存: Logical Disk Manager、Logical Disk Manager Administrative Service、Messenger、Smart Card、Telephony、Windows Audio
建议: 自动
Portable Media Serial Number
微软: Retrieves the serial number of any portable music player connected to your computer
补充: 透过联机计算机重新取得任何音乐拨放序号?没什么价值的服务
建议: 已停用
Print Spooler (打印多任务缓冲处理器)
微软: 将档案加载内存中以待稍后打印。
补充: 如果没有打印机,可以关了
依存: Remote Procedure Call (RPC)
建议: 已停用
Protected Storage (受保护的存放装置)
微软: 提供受保护的存放区,来储存私密金钥这类敏感数据,防止未授权的服务、处理、或使用者进行存取。
补充: 用来储存你计算机上密码的服务,像 Outlook、拨号程序、其它应用程序、主从架构等等
依存: Remote Procedure Call (RPC)
建议: 自动
QoS RSVP (QoS 许可控制,RSVP)
微软: 提供网络讯号及区域流量控制安装功能给可识别 QoS 的程序和控制小程序项。
补充: 用来保留 20% 频宽的服务,如果你的网络卡不支持 802.1p 或在你计算机的网域上没有 ACS server ,那么不用多说,关了它
依存: AFD网络支持环境、TCP/IP Procotol Driver、Remote Procedure Call (RPC)
建议: 已停用
Remote Access Auto Connection Manager (远程访问自动联机管理员)
微软: 当程序参照到远程 DNS 或 NetBIOS 名称或地址时,建立远程网络的联机。
补充: 有些 DSL/Cable 提供者,可能需要用此来处理登入程序
依存: Remote Access Connection Manager、Telephony
建议: 手动
Remote Access Connection Manager (远程访问联机管理员)
微软: 建立网络联机。
补充: 网络联机用
依存: Telephony、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)、Remote Access Auto Connection Manager
建议: 手动
Remote Desktop Help Session Manager
微软: 管理并控制远程协助。如果此服务停止的话,远程协助将无法使用。停止此服务之前,请先参阅内容对话框中的 [依存性]标签。
补充: 如上说的管理和控制远程协助,如果不使用可以关了
依存: Remote Procedure Call (RPC)
建议: Disable
Remote Procedure Call (RPC) (远程过程调用,RPC)
微软: 提供结束点对应程序以及其它 RPC 服务。
补充: 一些装置都依存它,别去动它
依存: 太多了,自己去看看
建议: 自动
Remote Procedure Call (RPC) Locator (远程过程调用定位程序)
微软: 管理 RPC 名称服务数据库。
补充: 如上说的,一般计算机上很少用到,可以尝试关了
依存: Workstation
建议: Disable
Remote Registry (远程登录服务)
微软: 启用远程使用者修改这个计算机上的登录设定。如果这个服务被停止,登录只能由这个计算机上的使用者修改。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 基于安全性的理由,如果没有特别的需求,建议最好关了它,除非你需要远程协助修改你的登录设定
依存: Remote Procedure Call (RPC)
建议: 已停用
Removable Storage (卸除式存放装置)
微软: None
补充: 除非你有 Zip 磁盘驱动器或是 USB 之类可携式的硬件或是 Tape 备份装置,不然可以尝试关了
依存: Remote Procedure Call (RPC)
建议: Disable
Routing and Remote Access (路由和远程访问)
微软: 提供连到局域网络及广域网络的公司的路由服务。
补充: 如上说的,提供拨号联机到区网或是 VPN 服务,一般用户用不到
依存: Remote Procedure Call (RPC)、NetBIOSGroup
建议: 已停用
Secondary Logon
微软: 启用在其它认证下的起始程序。如果这个服务被停止,这类的登入存取将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 允许多个使用者处理程序,执行分身等
建议: 自动
Security Accounts Manager (安全性账户管理员)
微软: 储存本机账户的安全性信息。
补充: 管理账号和群组原则(gpedit.msc)应用
依存: Remote Procedure Call (RPC)、Distributed Transaction Coordinator
建议: 自动
Server (服务器)
微软: 透过网络为这台计算机提供档案、打印、及命名管道的共享。如果停止这个服务,将无法使用这些功能。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 简单的说就是档案和打印的分享,除非你有和其它计算机分享,不然就关了
依存: Computer Browser
建议: 已停用
Shell Hardware Detection
微软: 为自动播放硬件事件提供通知。
补充: 一般使用在记忆卡或是CD装置、DVD装置上
依存: Remote Procedure Call (RPC)
建议: 自动
Smart Card (智慧卡)
微软: 管理这个计算机所读取智能卡的存取。如果这个服务被停止,这个计算机将无法读取智能卡。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你不使用 Smart Card ,那就可以关了
依存: Plug and Play
建议: 已停用
Smart Card Helper (智能卡协助程序)
微软: 启用对这个计算机使用的旧版非随插即用智能卡读取头的支持。如果这个服务被停止,这个计算机将不支持旧版读取头。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你不使用 Smart Card ,那就可以关了
建议: 已停用
SSDP Discovery Service
微软: 在您的家用网络上启用通用随插即用装置的搜索。
补充: 如上说的,通用随插即用服务 (Universal Plug and Play, UPnP) 让计算机可以找到并使用网络上的装置,经由网络联机透过 TCP/IP 来搜索装置,像网络上的扫瞄器、数字相机或是打印机,亦即使用 UPnP 的功能,基于安全性没用到的大可关了
依存: Universal Plug and Play Device Host
建议: 已停用
System Event Notification (系统事件通知)
微软: 追踪诸如 Windows 登入、网络、和电源事件的系统事件。通知这些事件的 COM+ 事件系统订阅者。
补充: 如上所说的
依存: COM+ Event System
建议: 自动
System Restore Service
微软: 执行系统还原功能。若要停止服务,从我的计算机->内容,[系统还原] 中关闭系统还原
补充: 将计算机回复至先前的状态,不使用就关了
依存: Remote Procedure Call (RPC)
建议: 已停用
Task Scheduler (工作排程器)
微软: 让使用者能够在这个计算机上设定和排定自动的工作。如果停止这个服务,这些工作在它们排定的时间时将不会执行。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 设定排定自动的工作,像一些定时磁盘扫瞄、病毒定时扫瞄、更新等等
依存: Remote Procedure Call (RPC)
建议: 自动
TCP/IP NetBIOS Helper (TCP/IP NetBIOS 协助程序)
微软: 启用 [NetBIOS over TCP/IP (NetBT)] 服务及 NetBIOS 名称解析的支持。
补充: 如果你的网络不使用 NetBios 或是 WINS ,你大可关闭
依存: AFD 网络支持环境、NetBt
建议: 已停用
Telephony (电话语音)
微软: 为本机计算机上及经由局域网络连接到正在执行此服务的服务器上,控制电话语音装置和 IP 为主语音联机的程序,提供电话语音 API (TAPI) 支持。
补充: 一般的拨号调制解调器或是一些 DSL/Cable 可能用到
依存: Plug and Play、Remote Procedure Call (RPC)、Remote Access Connection Manager、Remote Access Auto Connection Manager
建议: 手动
Telnet
微软: 启用一个远程使用者来登入到这台计算机和执行应用程序,以及支持各种 TCP/IP Telnet 客户端,包含以 UNIX 为基本和以 Windows 为基本的计算机。如果服务停止了,远程使用者可能无法存取应用程序。如果服务停用了,任何明确地依存于这项服务的其它服务将会启动失败。
补充: 允许远程使用者用 Telnet 登入本计算机,一般人会误解关了就无法使用BBS,这其实和BBS无关,基于安全性的理由,如果没有特别的需求,建议最好关了
依存: NT LM Security Support Provider、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
建议: 已停用
Terminal Services (终端机服务)
微软: 允许多位使用者互动连接到同一部计算机、桌面的显示器及到远程计算机的应用程序。远程桌面的加强 (包含系统管理员的 RD)、快速切换使用者、远程协助和终端机服务器。
补充: 远程桌面或是远程协助的功能,不需要就关了
依存: Remote Procedure Call (RPC)、Fast User Switching Compatibility、InteractiveLogon
建议: 已停用
Themes
微软: 提供使用者经验主题管理。
补充: 很多人使用布景主题,不过如果没有使用的人,那就可以关闭
建议: 自动
Uninterruptible Power Supply (不断电供电系统)
微软: 管理连接到这台计算机的不断电电源供应 (UPS)。
补充: 不断电电源供应 (UPS)一般人有用到吗?除非你的电源供应器有具备此功能,不然就关了
建议: 已停用
Universal Plug and Play Device Host
微软: 提供主机通用随插即用装置的支持。
补充: 用来侦测安装通用随插即用服务 (Universal Plug and Play, UPnP)装置,像是数字相机或打印机
依存: SSDP Discovery Service
建议: 已停用
Volume Shadow Copy
微软: 管理及执行用于备份和其它目的的磁盘区卷影复制。如果这个服务被停止,卷影复制将无法用于备份,备份可能会失败。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如上所说的,用来备份的?#124;西,如 MS Backup 程序就需要这个服务
依存: Remote Procedure Call (RPC)
建议: 已停用
WebClient
微软: 启用 Windows 为主的程序来建立、存取,以及修改因特网为主的档案。如果停止这个服务,这些功能将无法使用。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 使用 WebDAV 将档案或数据夹上载到所有的 Web 服务,基于安全性的理由,你可以尝试关闭
依存: WebDav Client Redirector
Windows Audio
微软: 管理用于 Windows 为主程序的音讯装置。如果这个服务被停止,音讯装置和效果将无法正常?#092;作。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你没有声卡可以关了他
依存: Plug and Play、Remote Procedure Call (RPC)
建议: 自动
Windows Image Acquisition (WIA) (Windows影像取得程序)
微软: 为扫描仪和数字相机提供影像撷取服务。
补充: 如果扫描仪和数字相机内部具有支持WIA功能的话,那就可以直接看到图档,不需要其它的驱动程序,所以没有扫描仪和数字相机的使用者大可关了
依存: Remote Procedure Call (RPC)
建议: 已停用
Windows Installer (Windows 安装程序)
微软: 根据包含在 .MSI 档案内的指示来安装,修复以及移除软件。
补充: 是一个系统服务,协助使用者正确地安装、设定、追踪、升级和移除软件程序,可管理应用程序建立和安装的标准格式,并且追踪例如档案群组、登录项目及快捷方式等组件
依存: Remote Procedure Call (RPC)
建议: 手动
Windows Management Instrumentation (WMI)
微软: 提供公用接口及对象模型,以存取有关操作系统、装置、应用程序及服务的管理信息。如果这个服务已停止,大多数的 Windows 软件将无法正常?#092;作。如果这个服务已停用,所有依存于它的服务都将无法启动。
补充: 如上说的,是一种提供一个标准的基础结构来监视和管理系统资源的服务,由不得你动他
依存: Event Log、Remote Procedure Call (RPC)
建议: 自动
Windows Management Instrumentation Driver Extensions (Windows Management Instrumentation 驱动程序延伸)
微软: 提供系统管理信息给予/取自驱动程序。
补充: Windows Management Instrumentation 的延伸,提供信息用的
建议: 手动
Windows Time (Windows 时间设定)
微软: 维护在网络上所有客户端及服务器的数据及时间同步处理。如果这个服务停止,将无法进行日期及时间同步处理。如果这个服务被停用,所有依存的服务都会停止。
补充: 网络对时校准用的,没必要就关了
建议: 已停用
Wireless Zero Configuration
微软: 为 802.11 适配卡提供自动设定
补充: 自动配置无线网络装置,言下之意就是说,除非你有在使用无线网络适配卡装置,那么你才有必要使用这个网络零管理服务
依存: NDIS Usermode I/O Protocol、Remote Procedure Call (RPC)
建议: 已停用
WMI Performance Adapter
微软: 提供来自 WMIHiPerf 提供者的效能链接库信息。
补充: 如上所提
依存: Remote Procedure Call (RPC)
建议: 已停用l
Workstation (工作站)
微软: 建立并维护到远程服务器的客户端网络联机。如果停止这个服务,这些联机将无法使用。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 因特网联机中所必要的一些功能
依存: Alerter、Background Intelligent Transfer Service、Computer Browser、Messenger、Net Logon、Remote Procedure Call (RPC) Locator
建议: 自动
“Clipbook Server”(文件夹服务器):这个服务允许你们网络上的其他用户看到你的文件夹。在这里我要强烈建议你把它改为手动启动,然后再使用其他程序在你的网络上发布信息。
“Messenger”(消息):在网络上发送和接收信息。如果你关闭了Alerter,你可以安全地把它改为手动启动。
“Printer Spooler”(打印后台处理程序):如果你没有配置打印机,建议改为手动启动或干脆关闭它。
“Error Reporting Service”(错误报告):服务和应用程序在非标准环境下运行时提供错误报告。建议改为手动启动。
“Fast User Switching Compatibility”(快速用户切换兼容性):建议改为手动启动。
“Automatic Updates”(自动更新):这个功能前面已经讲过了,在这里可以改为手动启动。
“Net Logon”(网络注册):处理象注册信息那样的网络安全功能。你可以把它设改为手动启动。
“Network DDE和Network DDE DSDM”(动态数据交换):除非你准备在网上共享你的Office,否则你应该把它改为手动启动。注:这和在通常的商务设定中使用Office不同(如果你需要DDE,你就会知道)。
“NT LM Security Support”(NT LM安全支持提供商):在网络应用中提供安全保护。建议你把它改为手动启动。
“Remote Desktop Help Session Manager”(远程桌面帮助会话管理器):建议改为手动启动。
“Remote Registry”(远程注册表):使远程用户能修改此计算机上的注册表设置。建议改为手动启动。
“Task Scheduler”(任务调度程序):使用户能在此计算机上配置和制定自动任务的日程,它计划每星期的碎片整理等。 除非你实在太懒了,连在电脑上开一下都不想,建议改为手动启动。
“Uninterruptible Power Supply”(不间断电源):它管理你的UPS。如果你没有的话,把它改为手动启动或干脆关闭它。
“Windows Image Acquisition (WIA)”(Windows 图像获取 (WIA)):为扫描仪和照相机提供图像捕获,如果你没有这些设备,建议改为手动启动或干脆关闭它。
五、安装好一台服务器后,推荐使用扫描工具先扫描本机有哪些漏洞,然后按照需要开启或者关闭某些端口, win2000安装SP4以上补丁,winXP安装sp2补丁
扫描工具推荐是用X-SCAN
经常 开始--运行--Windows Update 是个良好的习惯
六、win2000下关闭无用端口
每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,win2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。
“控制面板”的“管理工具”中的“服务”中来配置。
1、关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。
2、关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。
3、关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。
4、关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。
5、关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。
6、还有一个很重要的就是关闭server服务,此服务提供 RPC 支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的共他操作。
7、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。
关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。
七、Win2000 Server的安全配置,经过精心配置的Win2000服务器可以防御90%以上的入侵和渗透,但是,就象上一章结束时我所提到的:系统安全是一个连续的过程,随着新漏洞的出现和服务器应用的变化,系统的安全状况也在不断变化着;同时由于攻防是矛盾的统一体,道消魔长和魔消道长也在不断的转换中,因此,再高明的系统管理员也不能保证一台正在提供服务的服务器长时间绝对不被入侵。
所以,安全配置服务器并不是安全工作的结束,相反却是漫长乏味的安全工作的开始,本文我们将初步探讨Win2000服务器入侵检测的初步技巧,希望能帮助您长期维护服务器的安全。
本文中所说的入侵检测指的是利用Win2000 Server自身的功能及系统管理员自己编写的软件/脚本进行的检测,使用防火墙(Firewall)或入侵监测系统(IDS)的技巧并不在本文的讨论范围之内。
现在假定:我们有一台Win2000 Server的服务器,并且经过了初步的安全配置(关于安全配置的详情可以参阅Win2000 Server安全配置入门<一>),在这种情况下,大部分的入侵者将被拒之门外。(哈哈,我管理员可以回家睡大觉去了)慢着,我说的是大部分,不是全部,经过初步安全配置的服务器虽然可以防御绝大多数的Script kid(脚本族-只会用别人写的程序入侵服务器的人),遇到了真正的高手,还是不堪一击的。虽然说真正的高手不会随便进入别人的服务器,但是也难保有几个品行不端的邪派高手看上了你的服务器。(我真的这么衰么?)而且,在漏洞的发现与补丁的发布之间往往有一段时间的真空,任何知道漏洞资料的人都可以乘虚而入,这时,入侵检测技术就显得非常的重要。
入侵的检测主要还是根据应用来进行,提供了相应的服务就应该有相应的检测分析系统来进行保护,对于一般的主机来说,主要应该注意以下几个方面:
1、 基于80端口入侵的检测
WWW服务大概是最常见的服务之一了,而且由于这个服务面对广大用户,服务的流量和复杂度都很高,所以针对这个服务的漏洞和入侵技巧也最多。对于NT来说,IIS一直是系统管理员比较头疼的一部分(恨不得关了80端口),不过好在IIS自带的日志功能从某种程度上可以成为入侵检测的得力帮手。IIS自带的日志文件默认存放在System32/LogFiles目录下,一般是按24小时滚动的,在IIS管理器中可以对它进行详细的配置。(具体怎么配我不管你,不过你要是不详细记录,回头查不到入侵者的IP可不要哭)
现在我们再假设(怎么老是假设呀,烦不烦?)别急呀,我不能为了写这篇文章真的去黑掉一台主机,所以只好假设了,我们假设一台WEB服务器,开放了WWW服务,你是这台服务器的系统管理员,已经小心地配置了IIS,使用W3C扩展的日志格式,并至少记录了时间(Time)、客户端IP(Client IP)、方法(Method)、URI资源(URI Stem)、URI查询(URI Query),协议状态(Protocol Status),我们用最近比较流行的Unicode漏洞来进行分析:打开IE的窗口,在地址栏输入:127.0.0.1/scripts/..%c1% 1c../winnt/system32/cmd.exe?/c+dir 默认的情况下你可以看到目录列表(什么?你已经做过安全配置了,看不到?恢复默认安装,我们要做个实验),让我们来看看IIS的日志都记录了些什么,打开Ex010318.log(Ex代表W3C扩展格式,后面的一串数字代表日志的记录日期):07:42:58 127.0.0.1 GET /scripts/../../winnt/system32/cmd.exe /c+dir 200上面这行日志表示在格林威治时间07:42:58(就是北京时间23:42:58),有一个家伙(入侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为"/",实际的情况会因为Windows语言版本的不同而有略微的差别)运行了cmd.exe,参数是/c dir,运行结果成功(HTTP 200代表正确返回)。(哇,记录得可真够全的,以后不敢随便乱玩Unicode了)
大多数情况下,IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论),所以,一个优秀的系统管理员应该擅长利用这点来发现入侵的企图,从而保护自己的系统。但是,IIS的日志动辄数十兆、流量大的网站甚至数十G,人工检查几乎没有可能,唯一的选择就是使用日志分析软件,用任何语言编写一个日志分析软件(其实就是文本过滤器)都非常简单,不过考虑到一些实际情况(比如管理员不会写程序,或者服务器上一时找不到日志分析软件),我可以告诉大家一个简单的方法,比方说你想知道有没有人从80端口上试图取得你的Global.asa文件,可以使用以下的CMD命令:find "Global.asa" ex010318.log /i这个命令使用的是NT自带的find.exe工具(所以不怕紧急情况找不着),可以轻松的从文本文件中找到你想过滤的字符串,"Global.asa"是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽略大小写。因为我无意把这篇文章写成微软的Help文档,所以关于这个命令的其他参数以及它的增强版FindStr.exe的用法请去查看Win2000的帮助文件。
无论是基于日志分析软件或者是Find命令,你都可以建立一张敏感字符串列表,包含已有的IIS漏洞(比如"+.htr")以及未来将要出现的漏洞可能会调用的资源(比如Global.asa或者cmd.exe),通过过滤这张不断更新的字符串表,一定可以尽早了解入侵者的行动。
需要提醒的是,使用任何日志分析软件都会占用一定的系统资源,因此,对于IIS日志分析这样低优先级的任务,放在夜里空闲时自动执行会比较合适,如果再写一段脚本把过滤后的可疑文本发送给系统管理员,那就更加完美了。同时,如果敏感字符串表较大,过滤策略复杂,我建议还是用C写一个专用程序会比较合算。
2、 基于安全日志的检测
通过基于IIS日志的入侵监测,我们能提前知道窥伺者的行踪(如果你处理失当,窥伺者随时会变成入侵者),但是IIS日志不是万能的,它在某种情况下甚至不能记录来自80端口的入侵,根据我对IIS日志系统的分析,IIS只有在一个请求完成后才会写入日志,换言之,如果一个请求中途失败,日志文件中是不会有它的踪影的(这里的中途失败并不是指发生HTTP400错误这样的情况,而是从TCP层上没有完成HTTP请求,例如在POST大量数据时异常中断),对于入侵者来说,就有可能绕过日志系统完成大量的活动。
而且,对于非80 Only的主机,入侵者也可以从其它的服务进入服务器,因此,建立一套完整的安全监测系统是非常必要的。
Win2000自带了相当强大的安全日志系统,从用户登录到特权的使用都有非常详细的记录,可惜的是,默认安装下安全审核是关闭的,以至于一些主机被黑后根本没法追踪入侵者。所以,我们要做的第一步是在管理工具-本地安全策略-本地策略-审核策略中打开必要的审核,一般来说,登录事件与账户管理是我们最关心的事件,同时打开成功和失败审核非常必要,其他的审核也要打开失败审核,这样可以使得入侵者步步维艰,一不小心就会露出马脚。仅仅打开安全审核并没有完全解决问题,如果没有很好的配置安全日志的大小及覆盖方式,一个老练的入侵者就能够通过洪水般的伪造入侵请求覆盖掉他真正的行踪。通常情况下,将安全日志的大小指定为50MB并且只允许覆盖7天前的日志可以避免上述情况的出现。
设置了安全日志却不去检查跟没有设置安全日志几乎一样糟糕(唯一的优点是被黑了以后可以追查入侵者),所以,制定一个安全日志的检查机制也是非常重要的,作为安全日志,推荐的检查时间是每天上午,这是因为,入侵者喜欢夜间行动(速度快呀,要不你入侵到一半的时候连不上了,那可是哭都哭不出来)上午上班第一件事正好看看日志有没有异常,然后就可以放心去做其他的事了。如果你喜欢,也可以编写脚本每天把安全日志作为邮件发送给你(别太相信这个了,要是哪个高手上去改了你的脚本,每天发送"平安无事"……)
除了安全日志,系统日志和应用程序日志也是非常好的辅助监测工具,一般来说,入侵者除了在安全日志中留下痕迹(如果他拿到了Admin权限,那么他一定会去清除痕迹的),在系统和应用程序日志中也会留下蛛丝马迹,作为系统管理员,要有不放过任何异常的态度,这样入侵者就很难隐藏他们的行踪。
3、 文件访问日志与关键文件保护
除了系统默认的安全审核外,对于关键的文件,我们还要加设文件访问日志,记录对他们的访问。
文件访问有很多的选项:访问、修改、执行、新建、属性更改......一般来说,关注访问和修改就能起到很大的监视作用。
例如,如果我们监视了系统目录的修改、创建,甚至部分重要文件的访问(例如cmd.exe,net.exe,system32目录),那么,入侵者就很难安放后门而不引起我们的注意,要注意的是,监视的关键文件和项目不能太多,否则不仅增加系统负担,还会扰乱日常的日志监测工作
(哪个系统管理员有耐心每天看四、五千条垃圾日志?)
关键文件不仅仅指的是系统文件,还包括有可能对系统管理员/其他用户构成危害的任何文件,例如系统管理员的配置、桌面文件等等,这些都是有可能用来窃取系统管理员资料/密码的。
4、 进程监控
进程监控技术是追踪木马后门的另一个有力武器,90%以上的木马和后门是以进程的形式存在的(也有以其他形式存在的木马,参见《揭开木马的神秘面纱三》),作为系统管理员,了解服务器上运行的每个进程是职责之一(否则不要说安全,连系统优化都没有办法做),做一份每台服务器运行进程的列表非常必要,能帮助管理员一眼就发现入侵进程,异常的用户进程或者异常的资源占用都有可能是非法进程。除了进程外,DLL也是危险的东西,例如把原本是exe类型的木马改写为dll后,使用rundll32运行就比较具有迷惑性。
5、 注册表校验
一般来说,木马或者后门都会利用注册表来再次运行自己,所以,校验注册表来发现入侵也是常用的手法之一。一般来说,如果一个入侵者只懂得使用流行的木马,那么由于普通木马只能写入特定的几个键值(比如Run、Runonce等等),查找起来是相对容易的,但是对于可以自己编写/改写木马的人来说,注册表的任何地方都可以藏身,靠手工查找就没有可能了。(注册表藏身千变万化,例如需要特别提出来的FakeGina技术,这种利用WINNT外嵌登录DLL(Ginadll)来获得用户密码的方法最近比较流行,一旦中招,登录用户的密码就会被记录无遗,具体的预防方法我这里就不介绍了。)应对的方法是监控注册表的任何改动,这样改写注册表的木马就没有办法遁形了。监控注册表的软件非常多,很多追查木马的软件都带有这样的功能,一个监控软件加上定期对注册表进行备份,万一注册表被非授权修改,系统管理员也能在最短的时间内恢复。
6、端口监控
虽然说不使用端口的木马已经出现,但是大部分的后门和木马还是使用TCP连接的,监控端口的状况对于由于种种原因不能封锁端口的主机来说就是非常重要的了,我们这里不谈使用NDIS网卡高级编程的IDS系统,对于系统管理员来说,了解自己服务器上开放的端口甚至比对进程的监控更加重要,常常使用netstat查看服务器的端口状况是一个良好的习惯,但是并不能24小时这样做,而且NT的安全日志有一个坏习惯,喜欢记录机器名而不是IP(不知道比尔盖子怎么想的),如果你既没有防火墙又没有入侵检测软件,倒是可以用脚本来进行IP日志记录的,看着这个命令:
netstat -n -p tcp 10>>Netstat.log,这个命令每10秒钟自动查看一次TCP的连接状况,基于这个命令我们做一个Netlog.bat文件:
time /t>>Netstat.log
Netstat -n -p tcp 10>>Netstat.log
这个脚本将会自动记录时间和TCP连接状态,需要注意的是:如果网站访问量比较大,这样的操作是需要消耗一定的CPU时间的,而且日志文件将越来越大,所以请慎之又慎。(要是做个脚本就完美无缺,谁去买防火墙?:)
一旦发现异常的端口,可以使用特殊的程序来关联端口、可执行文件和进程(如inzider就有这样的功能,它可以发现服务器监听的端口并找出与该端口关联的文件,inzider可以从http://www.nttoolbox.com下载到),这样无论是使用TCP还是UDP的木马都无处藏身。
7、终端服务的日志监控
单独将终端服务(Terminal Service)的日志监控分列出来是有原因的,微软Win2000服务器版中自带的终端服务Terminal Service是一个基于远程桌面协议(RDP)的工具,它的速度非常快,也很稳定,可以成为一个很好的远程管理软件,但是因为这个软件功能强大而且只受到密码的保护,所以也非常的危险,一旦入侵者拥有了管理员密码,就能够象本机一样操作远程服务器(不需要高深的NT命令行技巧,不需要编写特殊的脚本和程序,只要会用鼠标就能进行一切系统管理操作,实在是太方便、也实在是太可怕了)。虽然很多人都在使用终端服务来进行远程管理,但是,并不是人人都知道如何对终端服务进行审核,大多数的终端服务器上并没有打开终端登录的日志,其实打开日志审核是很容易的,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击左下角的"高级",看见上面那个"审核"了么?我们来加入一个Everyone组,这代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败就足够了,审核太多了反而不好,这个审核是记录在安全日志中的,可以从"管理工具"->"日志查看器"中查看。现在什么人什么时候登录我都一清二楚了,可是美中不足的是:这个破烂玩艺居然不记录客户端的IP(只能查看在线用户的IP),而是华而不实的记录什么机器名,倒!要是别人起个PIG的机器名你只好受他的嘲弄了,不知道微软是怎么想的,看来还是不能完全依赖微软呀,我们自己来吧?写个程序,一切搞定,你会C么?不会?VB呢?也不会?Delphi?……什么?你什么编程语言都不会?我倒,毕竟系统管理员不是程序员呀,别急别急,我给你想办法,我们来建立一个bat文件,叫做TSLog.bat,这个文件用来记录登录者的IP,内容如下:
time /t >>TSLog.log
netstat -n -p tcp | find ":3389">>TSLog.log
start Explorer
我来解释一下这个文件的含义:
第一行是记录用户登录的时间,time /t的意思是直接返回系统时间(如果不加/t,系统会等待你输入新的时间),然后我们用追加符号">>"把这个时间记入TSLog.log作为日志的时间字段;
第二行是记录用户的IP地址,netstat是用来显示当前网络连接状况的命令,-n表示显示IP和端口而不是域名、协议,-ptcp是只显示tcp协议,然后我们用管道符号"|"把这个命令的结果输出给find命令,从输出结果中查找包含":3389"的行(这就是我们要的客户的IP所在的行,如果你更改了终端服务的端口,这个数值也要作相应的更改),最后我们同样把这个结果重定向到日志文件TSLog.log中去,于是在SLog.log文件中,记录格式如下:
22:40
TCP 192.168.12.28:3389 192.168.10.123:4903 ESTABLISHED
22:54
TCP 192.168.12.28:3389 192.168.12.29:1039 ESTABLISHED
也就是说只要这个TSLog.bat文件一运行,所有连在3389端口上的IP都会被记录,那么如何让这个批处理文件自动运行呢?我们知道,终端服务允许我们为用户自定义起始的程序,在终端服务配置中,我们覆盖用户的登录脚本设置并指定TSLog.bat为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本(相当于shell环境)是Explorer(资源管理器),所以我在TSLog.bat的最后一行加上了启动Explorer的命令startExplorer,如果不加这一行命令,用户是没有办法进入桌面的!当然,如果你只需要给用户特定的Shell:
例如cmd.exe或者word.exe你也可以把start Explorer替换成任意的shell。这个脚本也可以有其他的写法,作为系统管理员,你完全可以自由发挥你的想象力、自由利用自己的资源,例如写一个脚本把每个登录用户的IP发送到自己的信箱对于重要的服务器也是一个很好的方法。正常情况下一般的用户没有查看终端服务设置的权限,所以他不会知道你对登录进行了IP审核,只要把TSLog.bat文件和TSLog.log文件放在比较隐蔽的目录里就足够了,不过需要注意的是这只是一个简单的终端服务日志策略,并没有太多的安全保障措施和权限机制,如果服务器有更高的安全要求,那还是需要通过编程或购买入侵监测软件来完成的。
8、陷阱技术
早期的陷阱技术只是一个伪装的端口服务用来监测扫描,随着矛和盾的不断升级,现在的陷阱服务或者陷阱主机已经越来越完善,越来越象真正的服务,不仅能截获半开式扫描,还能伪装服务的回应并记录入侵者的行为,从而帮助判断入侵者的身份。
我本人对于陷阱技术并不是非常感兴趣,一来从技术人员角度来说,低调行事更符合安全的原则;二来陷阱主机反而成为入侵者跳板的情况并不仅仅出现在小说中,在现实生活中也屡见不鲜,如果架设了陷阱反而被用来入侵,那真是偷鸡不成了。
记得CoolFire说过一句话,可以用来作为对陷阱技术介绍的一个结束:在不了解情况时,不要随便进入别人的系统,因为你永远不能事先知道系统管理员是真的白痴或者伪装成白痴的天才......
入侵监测的初步介绍就到这里,在实际运用中,系统管理员对基础知识掌握的情况直接关系到他的安全敏感度,只有身经百战而又知识丰富、仔细小心的系统管理员才能从一点点的蛛丝马迹中发现入侵者的影子,未雨绸缪,扼杀入侵的行动