1、Windows Server防木马权限设置IIS服务器安全配置整理Windows Server2003防木马权限设置IIS服务器安全配置整理 一、 系统的安装 、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。 、IIS6.0的安装 开始菜单控制面板添加或删除程序添加/删除Windows组件 应用程序 ASP.NET(可选) |启用网络 COM+ 访问(必选) |Internet 信息服务(IIS)Internet 信息服务管理器(必选) |公用文件(必选) |万维网服务Active Server pages(必选) |Internet 数据连
2、接器(可选) |WebDAV 发布(可选) |万维网服务(必选) |在服务器端的包含文件(可选) 然后点击确定下一步安装。(具体见本文附件1) 、系统补丁的更新 点击开始菜单所有程序Windows Update 按照提示进行补丁的安装。 、备份系统 用GHOST备份系统。 、安装常用的软件 例如:杀毒软件、解压缩软件等;安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。 6、先关闭不需要的端口 开启防火墙 导入IPSEC策略 在” 网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数
3、据包计划程序。在高级tcp/ip设置里-NetBIOS设置禁用tcp/IP上的NetBIOS(S)。在高级选项里,使用Internet连接防火墙,这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。 修改3389远程连接端口 修改注册表. 开始-运行-regedit 依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/ TERMINAL SERVER/WDS/RDPWD/TDS/TCP 右边键值中 PortNumber 改为你想用的端口号.注
4、意使用十进制(例 10000 ) HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/ WINSTATIONS/RDP-TCP/ 右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 10000 ) 注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口 修改完毕.重新启动服务器.设置生效. 二、用户安全设置 1、禁用Guest账号 在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字
5、母的长字符串,然后把它作为Guest用户的密码拷进去。 2、限制不必要的用户 去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。 3、把系统Administrator账号改名 大家都知道,Windows 2003 的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。 4、创建一个陷阱用户 什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的
6、权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。 如下图Administrator 已经不是管理员,是陷阱用户。 5、把共享文件的权限从Everyone组改成授权用户 任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。 6、开启用户策略 使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 (该项为可选) 7、不让系统显示上次登录的用户名 默认情况下,登录对话框中会显示上次
7、登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLMSoftwareMicrosoftWindows TCurrentVersionWinlogonDont-DisplayLastUserName”,把REG_SZ的键值改成1。 密码安全设置 1、使用安全密码 一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。 2、设置屏幕保护密码 这是一个很简单也很有必要的
8、操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。 3、开启密码策略 注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为6位 ,设置强制密码历史为5次,时间为42天。 4、考虑使用智能卡来代替密码 对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。 三、系统权限的设置 、磁盘权限 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定) 系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限 系统盘Documents an
9、d Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限 系统盘Documents and SettingsAll Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限 系统盘WindowsSystem32cacls.exe、cmd.exe、net.exe、net1.exe、ftp.exe、tftp.exe、telnet.exe 、netstat.exe、regedit.exe、at.exe、attrib.exe、del文件只给 Administrators 组和SYSTEM 的完全 控制权限 另将System32cmd
10、.exe、ftp.exe转移到其他目录或更名 Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看,包括下面的所有子目录。 删除c:inetpub目录 、本地安全策略设置 开始菜单管理工具本地安全策略 A、本地策略审核策略 审核策略更改成功失败 审核登录事件成功失败 审核对象访问失败 审核过程跟踪无审核 审核目录服务访问失败 审核特权使用失败 审核系统事件成功失败 审核账户登录事件成功失败 审核账户管理成功失败 B、本地策略用户权限分配 关闭系统:只有Administrators组、其它全部删除。 通过终端服务允许登陆:只加入
11、Administrators,Remote Desktop Users组,其他全部删除 C、本地策略安全选项 交互式登陆:不显示上次的用户名启用 网络访问:不允许SAM帐户和共享的匿名枚举 启用 网络访问:不允许为网络身份验证储存凭证启用 网络访问:可匿名访问的共享全部删除 网络访问:可匿名访问的命全部删除 网络访问:可远程访问的注册表路径全部删除 网络访问:可远程访问的注册表路径和子路径全部删除 帐户:重命名来宾帐户重命名一个帐户 帐户:重命名系统管理员帐户重命名一个帐户 、禁用不必要的服务 开始-运行-services.msc (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代
12、如下手工设定,) TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享 文件、打印和登录到网络 Server支持此计算机通过网络的文件、打印、和命名管道共享 Computer Browser 维护网络上计算机的最新列表以及提供这个列表 Task scheduler 允许程序在指定时间运行 Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息 Distributed File System: 局域网管理共享文件,不需要可禁用 Distributed linktracki
13、ng client:用于局域网更新连接信息,不需要可禁用 Error reporting service:禁止发送错误报告 Microsoft Serch:提供快速的单词搜索,不需要可禁用 NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要可禁用 PrintSpooler:如果没有打印机可禁用 Remote Registry:禁止远程修改注册表 Remote Desktop Help Session Manager:禁止远程协助 Workstation 关闭的话远程NET命令列不出用户组 以上是在Windows Server 20
14、03 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。 、修改注册表 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) 修改注册表,让系统更强壮 4.1、隐藏重要文件/目录可以修改注册表实现完全隐藏 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Current-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0 4.2
15、、防止SYN洪水攻击 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 新建DWORD值,名为SynAttackProtect,值为2 新建EnablePMTUDiscovery REG_DWORD 0 新建NoNameReleaseOnDemand REG_DWORD 1 新建EnableDeadGWDetect REG_DWORD 0 新建KeepAliveTime REG_DWORD 300,000 新建PerformRouter
16、Discovery REG_DWORD 0 新建EnableICMPRedirects REG_DWORD 0 4.3. 禁止响应ICMP路由通告报文 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfacesinterface 新建DWORD值,名为PerformRouterDiscovery 值为0 4.4. 防止ICMP重定向报文的攻击 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetS
17、ervicesTcpipParameters 将EnableICMPRedirects 值设为0 4.5. 不支持IGMP协议 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 新建DWORD值,名为IGMPLevel 值为0 4.6、禁止IPC空连接 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是
18、基于空连接的,禁止空连接就好了。 Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous 把这个值改成”1”即可。 4.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_MACHINESYSTEMCurrentControlSe
19、tServicesTcpip Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦 4.8. 删除默认共享 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) 有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters:AutoShareSer
20、ver类型是REG_DWORD把值改为0即可 4.9. 禁止建立空连接 (如下设置,我们已经写一个CMD脚本,按要求复制运行即可以取代如下手工设定,) 默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接: Local_MachineSystemCurrentControlSetControlLSA-RestrictAnonymous 的值改成”1”即可。 4.10. 建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中 net share c$ /del net share d$ /del net share e$ /del
21、 net share f$ /del net share ipc$ /del net share admin$ /del 5、IIS站点设置: 5.1、将IIS目录数据与系统磁盘分开,保存在专用磁盘空间内。 5.2、启用父级路径 5.3、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp, aspx html htm 等必要映射即可) 5.4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件 5.5、Web站点权限设定(建议) 读 允许 写 不允许 脚本源访问 不允许 目录浏览 建议关闭 日志访问 建议关闭 索引资源 建议关闭
22、执行 推荐选择 “纯脚本” 5.6、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。 5.7、程序安全: 1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限; 2) 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。 3) 防止ASP主页.inc文件泄露问题
23、; 4) 防止UE等编辑器生成some.asp.bak文件泄露问题。 6、IIS权限设置的思路 要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。 在IIS的【站点属性或者虚拟目录属性目录安全性匿名访问和验证控制编辑匿名访问编辑】填写刚刚创建的那个用户名。 设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。 7、卸载最不安全的组件 (注意: 按实际要求删除,删除后用不了FSO的) (如下设置,我们已经写一个CMD脚本,按要求复
24、制运行即可以取代如下手工设定,) 最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:WINDOWS ) regsvr32/u C:WINDOWSSystem32wshom.ocx del C:WINDOWSSystem32wshom.ocx regsvr32/u C:WINDOWSsystem32shell32.dll del C:WINNTWINDOWSshell32.dll 然后运行一下,WScript.Shell, Shell.application, WScript.Networ
25、k就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“安全”了。 为了方便大家,和减示错误,大部份步骤可以用如下脚本代替,我已经改成脚本cmd,新建一个txt文把,把如下代码,复制到里面后,把扩展名改为.cmd 双击运行,运行后,请按提示backup。 代码如下 echo off ECHO. ECHO. ECHO. ECHo. ECHo 你现在使用整理的一建做安全脚本 ECHo. ECHO. ECHO. ECHO. ECHO. - ECHo 请按提示操作备份好注册表,否则修改后无法还原,本人不负责. ECHO. ECHO YES=next set NO=exi
26、t (this time 30 Second default for n) ECHO. - CHOICE /T 30 /C yn /D n if errorlevel 2 goto end if errorlevel 1 goto next :next if EXIST backup (echo.)else md backup if EXIST temp (rmdir /s/q temp|md temp) else md temp if EXIST backupbackupkey.reg (move backupbackupkey.reg backupbackupkey_old.reg ) e
27、lse goto run :run regedit /e tempbackup-reg1.key1 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet regedit /e tempbackup-reg2.key2 HKEY_CLASSES_ROOT copy /b /y /v tempbackup-reg1.key1+tempbackup-reg2.key2 backupbackupkey.reg if exist backupwshom.ocx (echo 备份已存在) else copy /v/y %SystemRoot%System32wshom.ocx
28、 backupwshom.ocx if exist backupshell32.dll (echo 备份已存在) else copy /v/y %SystemRoot%system32shell32.dll backupshell32.dll ECHO 备份已经完成 ECHO. goto next2 :next2 ECHO. ECHO. - ECHo 修改权限system32目录中不安全的几个exe文件,改为只有Administrators才有权限运行 ECHO YES=next set NO=this set ignore (this time 30 Second default for y
29、) ECHO. - CHOICE /T 30 /C yn /D y if errorlevel 2 goto next3 if errorlevel 1 goto next21 :next21 xcacls.exe %SystemRoot%system32net.exe /t /g Administrators:F /y /C xcacls.exe %SystemRoot%system32net1.exe /t /g Administrators:F /y /C xcacls.exe %SystemRoot%system32cmd.exe /t /g Administrators:F /y /C xcacls.exe %SystemRoot%system32tftp.exe /t /g Administrators:F /y /C xcacls.exe %SystemRoot%system32netstat.exe /t /g Administrators:F /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1