服务器安全配置(只针对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、STATSCANNER等。正确配置账户的权限,密码至少应不少于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\SystemCurrentControlSet\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