本VPS安全设置仅是针对个人客户或者企业建立网站,不针对安装虚拟主机系统的客户。
很多客户不懂得安全设置,购买后感觉vps速度不错,使用一段时间后感觉vps运行缓慢,就怨这怨那,有的购买几天就中了木马。因此安全设置是非常必要的。
切记:修改完设置、磁盘权限、目录权限后,必须重新启动IIS,才能生效
一、设置和管理账户
1、系统管理员账户最好少建,更改默认的管理员帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。
2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码
3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。
4、[开始]→[管理工具]→[本地安全策略],打开“本地安全设置”对话框。,选择“账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定锁定时间30分钟”,“复位锁定计数设为30分钟”。
5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用
6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留以下三个用户。
①Internet来宾账户(IUSR_ 开头的用户)。属于Guests组,默认二个用户,Guest用户默认禁用,IUSR_开头的用户。该组默认有以下权限,如下图
②启动IIS进程账户(IWAM_ 开头的用户)。属于IIS_WPG组,也叫IIS工作进程组,该组默认有四个用户,包括 Local System(本地系统)、Local Service(本地服务)、Network Service(网络服务)和 IWAM 帐户,该组默认有以下权限,如下图
③如果你使用了Asp还要保留Aspnet账户。该用户隶属于Users组,默认四个用户,该组默认有以下权限,如下图tcp ip协议的安全隐患
特注:更改用户或者用户组的权限后,不会互相影响权限。
7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。
8、远程桌面连接配置。
开始 > 程序 > 管理工具 > 终端服务配置 > 连接
选择右侧”RDP-tcp”连接右击 属性 > 权限 删除(除system外)所有用户组 添加单一的允许使用的管理员账户,这样即使服务器被创建了其它的管理员.也无法使用终端服务。
9、修改windows 2003 远程登录端口值的方法 (更改两处注册表)
(1) 打开注册表,进入以下路径:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Terminal Server\Wds\rdpwd\Tds\tcp],看见PortNamber值了吗?其默认值是3389,修改成所希望的端口即 可,例如6111。
(2) 再打开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal S
erver\WinStations\RDP_Tcp],将PortNumber的值(默认是3389)修改成端口6111。
修改完毕,重新启动电脑,以后远程登录的时候使用端口6111就可以了。
可以下载端口修改软件修改,没有可以我索要。
二、网络服务安全管理
 禁止C$、D$、ADMIN$一类的缺省共享
方法一:
建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
net share ipc$ /del
net share admin$ /del
方法二:修改注册表,(注意修改注册表前一定要先备份一下注册表,备份方法。在 运行>regedit,选择 文件》导出 ,取个文件名,导出即可,如果修改注册表失败,可以到导出的注册表文件双击运行即可。)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右边的
窗口中新建Dword值,名称设为AutoShareServer值设为0 
三、打开相应的审核策略
  [开始]→[管理工具]→[本地安全策略],打开“本地安全设置”对话框,选[本地策略]下的[审核策略],在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。
  推荐的要审核的项目是:
  登录事件 成功 失败
  账户登录事件 成功 失败
  系统事件 成功 失败
  策略更改 成功 失败
  对象访问 失败
  目录服务访问 失败
  特权使用 失败
五、其它安全相关设置
  1、隐藏重要文件/目录
  可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击“CheckedValue”,选择修改,把数值由1改为0
关于常规的如安全的安装系统,设置和管理帐户,关闭多余的服务,审核策略,修改终端管理端口, 以及配置MS-SQL,删除危险的存储过程,用最低权限的public帐户连接等等,都不说了
  正文开始:先说关于系统的NTFS磁盘权限设置,大家可能看得都多了,但是2003服务器有些细节地方需要注意的,我看很多文章都没写完全。
  C盘只给administrators 和system权限,其他的权限不给,其他的盘也可以这样设置(本人实际测试必须加上users组的默认权限),这里给的system权限也不一定需要给,只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了。
  切记:Windows目录要加上给users组的默认权限,否则ASP和ASPX等应用程序就无法运行。以前有朋友单独设置Instsrv和temp等目录权限,其实没有这个必要的。
 另外
在c:/Documents and Settings/这里相当重要,后面的目录里的权限根本不会继承从前的设置,如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会出现everyone用户有完全控制权限,这样入侵者可以跳转到这个目录,写入脚本或者文件,再结合其他漏洞来提升权限;譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点,甚至社会工程学等等N多方法,从前不是有牛人发飑说:"只要给我一个webshell,我就能拿到 system",这也的确是有可能的。在用做web/ftp服务器的系统里,建议是将这些目录都设置的锁死。其他每个盘的目录都按照这样设置,每个盘都只给adinistrators权限。
  另外,还将:,,,,,at.exe,,,这些文件都设置只允许administrators访问。
把不必要的服务都禁止掉,尽管这些不一定能被攻击者利用得上,但是按照安全规则和标准上来说,多余的东西就没必要开启,减少一份隐患。以下服务建议禁止掉。方法:“我的电脑”右键“管理”打开“计算机管理”对话框,展开“服务和应用程序”,选“服务”项。
  Computer Browser:维护网络计算机更新,禁用
  Distributed File System: 局域网管理共享文件,不需要禁用
  Distributed linktracking client:用于局域网更新连接信息,不需要禁用
  Error reporting service:禁止发送错误报告
  Microsoft Serch:提供快速的单词搜索,不需要可禁用
  NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用
  PrintSpooler:如果没有打印机可禁用
  Remote Registry:禁止远程修改注册表
  Remote Desktop Help Session Manager:禁止远程协助
在"网络连接"里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了 Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用 "Internet连接防火墙",这是windows 2003 自带的防火墙,
在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
  这里我们按照所需要的服务开放响应的端口。在2003系统里,不推荐用TCP/IP筛选里的端口过滤功能,譬如在使用FTP服务器的时候,如果仅仅只开放21端口,由于FTP协议的特殊性,在进行FTP传输的时候,由于FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003
系统上增加的windows连接防火墙能很好的解决这个问题,所以都不推荐使用网卡的TCP/IP过滤功能。
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 ,权限为guest的。
在IIS里的站点属性里"目录安全性"---"身份验证和访问控制"里设置匿名访问使用下列Windows 用户帐户"的用户名密码都使用www.315safe 这个用户的信息.在这个站点
相对应的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就可以了。
IIS6.0由于运行机制的不同,出现了应用程序池的概念。一般建议10个左右的站点共用一个应用程序池,应用程序池对于一般站点可以采用默认设置,
  可以在每天凌晨的时候回收一下工作进程。
  新建立一个站,采用默认向导,在设置中注意以下在应用程序设置里:执行权限为默认的纯脚本,应用程序池使用独立的名为: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来解析就可以了,这样别人即使获得了数据库路径也无法下载。这个方法可以说是防止数据库被下载的终极解决办法了。
网站访问错误之一解决方法
解决方法:重新给 windows 目录加上users组的可读权限,写权限不需要。
在配置IIS的时候,如果安全稍微做的好一些。就会出现各式各样的问题。比如,常见的访问网页会弹出用户名密码的登陆界面,或者是访问某种页面比如html,asp没事情,但是访问jsp或者php就有问题,显示401.3 ACL 禁止访问资源等
  通常的解决办法是。   
     第一,看iis中(不管iis5 还是iis6)  ,网站或者目录,包括虚拟目录的属性,看目录安全性选项卡中的 编辑匿名访问和身份验证控制,看看是用的哪个帐号,如果是用的iis匿名帐号(一般是IUSR_机器
名),或者由系统管理员设置了其他帐号,这个帐号很重要,下面成IIS匿名帐号 察看帐号的密码是否是正确的系统设置的密码,实在不行就在计算机管理里面的用户管理,重新把帐号设置一个密码,然后在编辑匿名访问和身份验证控制选项中把密码重新设置一下。
     第二。在资源管理器里面看放置网站或者目录的安全选项。是否IIS匿名帐号有权限访问,一般来说,NT系统中的IUSR_机器名这个帐号都会是在user组里面,有时候禁用了user组,也会引起这个问题,让刚才设置的IIS匿名帐号或者帐号所在的系统组有对目录的访问权限,至少要有读权限。
     第三,在你放置的程序中,看是否含有其他类型的动态语言写的程序,IIS会默认对asp进行解释,对于ASPX来说,要看net执行文件目录是否让IIS匿名帐号有读权限? cgi程序就是perl目录,jsp看是用resin还是用tomcat做的解释,php就是php目录,要保证这些目录

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。