1系统补丁及时更新;启用Windows自带防火墙,并开放80 21 3306 52013 端口.(想开什么端口自己加)
修改3389远程连接端口
修改注册表. 依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 )
注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口
修改完毕.重新启动服务器.设置生效.
2.删除以下的注册表主键:
WScript.Shell
WScript.Shell.1
Shell.application
Shell.application.1
WSCRIPT.NETWORK
WSCRIPT.NETWORK.1
修改注册表,让系统更强壮
1、隐藏重要文件/目录可以修改注册表实现完全隐藏
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0
2、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
新建EnablePMTUDiscovery REG_DWORD 0
新建NoNameReleaseOnDemand REG_DWORD 1
新建EnableDeadGWDetect REG_DWORD 0
新建KeepAliveTime REG_DWORD 300,000
新建PerformRouterDiscovery REG_DWORD 0
新建EnableICMPRedirects REG_DWORD 0
3. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
4. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
5. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
6、禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
7、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦
8. 删除默认共享
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
9. 禁止建立空连接
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。
regsvr32 /u wshom.ocx回车、regsvr32 /u wshext.dll回车
3.删除没有必要的储存过程
use master
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_dropextendedproc 'Sp_OACreate'
EXEC sp_dropextendedproc 'Sp_OADestroy'
EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
EXEC sp_dropextendedproc 'Sp_OAGetProperty'
EXEC sp_dropextendedproc 'Sp_OAMethod'
EXEC sp_dropextendedproc 'Sp_OASetProperty'
EXEC sp_dropextendedproc 'Sp_OAStop'
EXEC sp_dropextendedproc 'Xp_regaddmultistring'
EXEC sp_dropextendedproc 'Xp_regdeletekey'
EXEC sp_dropextendedproc 'Xp_regdeletevalue'
EXEC sp_dropextendedproc 'Xp_regenumvalues'
EXEC sp_dropextendedproc 'Xp_regread'
EXEC sp_dropextendedproc 'Xp_regremovemultistring'
EXEC sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
(本人建议直接找对应的DLL文件删除比较保险)
4.禁用Workstation服务,防止ASP木马列出用户.
5.关闭默认共享防止LAN内IPC入侵。可以用批处理来实现.如下:
echo off
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
保存为bat放到C:\Documents and Settings\All Users\「开始」菜单\程序\启动 即可
6.定时重启IIS服务及SQL服务.释放资源.可以用计划任务来实现.怎么弄自己想去。
7.设置终端登陆权限,只允许授权用户登陆.开始-程序-管理工具-终端服务配置-RDP-属性-权限
Administrator chadmin system 完全控制,
禁用Guest账号,为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
不过尽管这样还是有一定的不安全,克隆个帐户就得了,即,创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。任何时候都不要把共享文件的用户设置成“Everyone”组
.建议限制IP登陆.尽管这样还是不安全滴,人家可以映射终端端口.最好的就是把服务器搞得上没得网.用IP安全策略可以做到.
8.Serv-U改一下本地管理密码,防止本地溢出.设置一下FTP域安全性,选择允许SSL/TLS和规则会话.
本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败
审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
安装和配置 IIS 服务:
1. 仅安装必要的 IIS 组件。(禁用不需要的如FTP 和 SMTP 服务)
2. 仅启用必要的服务和 Web Service 扩展,推荐配置:
UI 中的组件名称
设置
设置逻辑
后台智能传输服务 (BITS) 服务器扩展
启用
BITS 是 Windows updates 和“自动更新”所使用的后台文件传输机制。如果使用 Windows updates 或“自动更新”在 IIS 服务器中自动应用 Service Pack 和热修补程序,则必须有该组件。
公用文件
启用
IIS 需要这些文件,一定要在 IIS 服务器中启用它们。
文件传输协议 (FTP) 服务
禁用
允许 IIS 服务器提供 FTP 服务。专用 IIS 服务器不需要该服务。
FrontPage 2002 Server Extensions
禁用
为管理和发布 Web 站点提供 FrontPage 支持。如果没有使用 FrontPage 扩展的 Web 站点,请在专用 IIS 服务器中禁用该组件。
Internet 信息服务管理器
启用
IIS 的管理界面。
Internet 打印
禁用
提供基于 Web 的打印机管理,允许通过 HTTP 共享打印机。专用 IIS 服务器不需要该组件。
NNTP 服务
禁用
在 Internet 中分发、查询、检索和投递 Usenet 新闻文章。专用 IIS 服务器不需要该组件。
SMTP 服务
禁用
支持传输电子邮件。专用 IIS 服务器不需要该组件。
万维网服务
启用
为客户端提供 Web 服务、静态和动态内容。专用 IIS 服务器需要该组件。
万维网服务子组件
UI 中的组件名称
安装选项
设置逻辑
Active Server Page
启用
提供 ASP 支持。如果 IIS 服务器中的 Web 站点和应用程序都不使用 ASP,请禁用该组件;或使用 Web 服务扩展禁用它。
Internet
数据连接器
禁用
通过扩展名为 .idc 的文件提供动态内容支持。如果 IIS 服务器中的 Web 站点和应用程序都不包括 .idc 扩展文件,请禁用该组件;或使用 Web 服务扩展禁用它。
远程管理 (HTML)
禁用
提供管理 IIS 的 HTML 界面。改用 IIS 管理器可使管理更容易,并减少了 IIS 服务器的攻击面。专用 IIS 服务器不需要该功能。
远程桌面 Web 连接
禁用
包括了管理终端服务客户端连接的 Microsoft ActiveX® 控件和范例页面。改用 IIS 管理器可使管理更容易,并减少了 IIS 服务器的攻击面。专用 IIS 服务器不需要该组件。
服务器端包括
禁用
提供 .shtm、.shtml 和 .stm 文件的支持。如果在 IIS 服务器中运行的 Web 站点和应用程序都不使用上述扩展的包括文件,请禁用该组件。
WebDAV
禁用
WebDAV 扩展了 HTTP/1.1 协议,允许客户端发布、锁定和管理 Web 中的资源。专用 IIS 服务器禁用该组件;或使用 Web 服务扩展禁用该组件。
万维网服务
启用
为客户端提供 Web 服务、静态和动态内容。专用 IIS 服务器需要该组件
3. 将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。
4. 在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)
5. 在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件
6. Web站点权限设定(建议)
Web 站点权限:
授予的权限:
读
允许
写
不允许
脚本源访问
不允许
目录浏览
建议关闭
日志访问
建议关闭
索引资源
建议关闭
执行
推荐选择 “仅限于脚本”
7. 建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。
8. 程序安全:
1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
2) 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
3) 防止ASP主页.inc文件泄露问题;
4) 防止UE等编辑器生成some.asp.bak文件泄露问题。
SERV-U FTP 服务器的设置:
一般来说,不推荐使用srev-u做ftp服务器,主要是漏洞出现的太频繁了,但是也正是因为其操作简单,功能强大,过于流行,关注的人也多,才被发掘出bug来,换做其他的ftp服务器软件也一样不见得安全到哪儿去。
当然,这里也有款功能跟serv-u同样强大,比较安全的ftp软件:Ability FTP Server
设置也很简单,不过我们这里还是要迎合大众胃口,说说关于serv-u的安全设置。
首先,6.0比从前5.x版本的多了个修改本地LocalAdministrtaor的密码功能,其实在5.x版本里可以用ultraedit-32等编辑器修改serv-u程序体进行修改密码端口,6.0修补了这个隐患,单独拿出来方便了大家。不过修改了管理密码的serv-u是一样有安全隐患的,两个月前臭要饭的就写了新的采用本地sniff方法获取serv-u的管理密码的exploit,正在网上火卖着,不过这种sniff的方法,同样是在获得 webshell的条件后还得有个能在目录里有"执行"的权限,并且需要管理员再次登陆运行serv-u administrator的时候才能成功。所以我们的管理员要尽量避上以上几点因素,也是可以防护的。
另外serv-u的几点常规安全需要设置下:
选中"Block "FTP_bounce"attack and FXP"。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个"PORT"命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
另外在"Block anti time-out schemes"也可以选中。其次,在"Advanced"选项卡中,检查 "Enable security"是否被选中,如果没有,选择它们。
IIS的安全:
删掉c:/inetpub目录,删除iis不必要的映射
首先是每一个web站点使用单独的IIS用户,譬如这里,新建立了一个名为www.315safe.com ,权限为guest的。
在IIS里的站点属性里"目录安全性"---"身份验证和访问控制"里设置匿名访问使用下列Windows 用户帐户"的用户名密码都使用www.315safe.com 这个用户的信息.在这个站点相对应的web目录文件,默认的只给IIS用户的读取和写入权限(后面有更BT的设置要介绍)。
在"应用程序配置"里,我们给必要的几种脚本执行权限:ASP.ASPX,PHP, ASP,ASPX默认都提供映射支持了的,对于PHP,需要新添加响应的映射脚本,然后在web服务扩展将ASP,ASPX都设置为允许,对于 php以及CGI的支持,需要新建web服务扩展,在扩展名(X):下输入 php ,再在要求的文件(E):里添加地址 C:/php/sapi/php4isapi.dll ,并勾选设置状态为允许(S)。然后点击确定,这样IIS就支持PHP了。支持CGI同样也是如此。
要支持ASPX,还需要给web根目录给上users用户的默认权限,才能使ASPX能执行。
另外在应用程序配置里,设置调试为向客户端发送自定义的文本信息,这样能对于有ASP注入漏洞的站点,可以不反馈程序报错的信息,能够避免一定程度的攻击。
在自定义HTTP错误选项里,有必要定义下譬如404,500等错误,不过有有时候为了调试程序,好知道程序出错在什么地方,建议只设置404就可以了。
可以在每天凌晨的时候回收一下工作进程。
新建立一个站,采用默认向导,在设置中注意以下在应用程序设置里:执行权限为默认的纯脚本,应用程序池使用独立的名为:315safe的程序池。
名为315safe的应用程序池可以适当设置下"内存回收":这里的最大虚拟内存为:1000M,最大使用的物理内存为256M,这样的设置几乎是没限制这个站点的性能的。
在应用程序池里有个"标识"选项,可以选择应用程序池的安全性帐户,默认才用网络服务这个帐户,大家就不要动它,能尽量以最低权限去运行大,隐患也就更小些。在一个站点的某些目录里,譬如这个"uploadfile"目录,不需要在里面运行asp程序或其他脚本的,就去掉这个目录的执行脚本程序权限,在"应用程序设置"的"执行权限"这里,默认的是"纯脚本",我们改成"无",这样就只能使用静态页面了。依次类推,大凡是不需要asp运行的目录,譬如数据库目录,图片目录等等里都可以这样做,这样主要是能避免在站点应用程序脚本出现bug的时候,譬如出现从前流行的upfile漏洞,而能够在一定程度上对漏洞有扼制的作用。
在默认情况下,我们一般给每个站点的web目录的权限为IIS用户的读取和写入,如图:
但是我们现在为了将SQL注入,上传漏洞全部都赶走,我们可以采取手动的方式进行细节性的策略设置。
1. 给web根目录的IIS用户只给读权限。如图:
然后我们对响应的uploadfiles/或其他需要存在上传文件的目录额外给写的权限,并且在IIS里给这个目录无脚本运行权限,这样即使网站程序出现漏洞,入侵者也无法将asp木马写进目录里去,呵呵,不过没这么简单就防止住了攻击,还有很多工作要完成。如果是MS-SQL数据库的,就这样也就OK了,但是Access的数据库的话,其数据库所在的目录,或数据库文件也得给写权限,然后数据库文件没必要改成.asp的。这样的后果大家也都知道了把,一旦你的数据库路径被暴露了,这个数据库就是一个大木马,够可怕的。其实完全还是规矩点只用mdb后缀,这个目录在IIS里不给执行脚本权限。然后在IIS里加设置一个映射规律,如图:
这里用任意一个dll文件来解析.mdb后缀名的映射,只要不用asp.dll来解析就可以了,这样别人即使获得了数据库路径也无法下载。这个方法可以说是防止数据库被下载的终极解决办法了。