虚拟主机安全设置2


一.虚拟主机需要的软件及环境
1.Serv-U5.0.11(似乎不安全,但是也未必)
2.Mysql数据库
3.Mssql数据库
4.PcAnyWhere远程控制
5.杀毒软件,我一般使用诺顿8.0
6.php5
7.ActivePerl5.8
以上各种软件,除Mssql数据库以为,其他的都应去官方网站下载推荐版本安装。下面开始就是安装设置了,从系统安装完开始。假设系统安装的windows2000高级服务器版,系统分为c盘,d盘和e盘,全部是ntfs格式。
二.系统端口设置
虚拟主机,一般同时使用PcanyWhere和终端服务进行控制,终端服务要更改端口,比如修改成8735端口。根据要开放的服务,去设置TCP/IP筛选。为什么不使用本地安全策略了?个人认为TCP/IP筛选比较严格,因为这里是除非明确允许否则拒绝,而本地安全策略是除非明确拒绝否则允许。如果我理解不当,还请指教。TCP/IP筛选设置如下:
TCP端口只允许21,80,5631,8735,10001,10002,10003,10004,10005;IP协议只允许6;UDP端口我没有做过详细测试,不敢乱说,以后测试了再补上。TCP/IP端口里面的10001-10005是设置Serv-U的PASV模式使用的端口,当然也可以使用别的。
本地连接属性里面,卸载所有的其他协议,只留下Internet协议(TCP/IP),顺便把administrator帐号改个复杂点的名字,并且在本地安全策略里面设置不显示上次登陆帐号,对帐号锁定做出合适的设置。然后重新启动计算机,这步设置已经完成。
三.系统权限设置
现在开始安装软件,所有的软件都安装在d盘,e盘作数据备份使用。先安装Serv-U到d:\Serv-U,并且汉化顺便破解,嘿嘿。然后依次安装到d盘。现在开始设置权限。首先二话不说,c盘,d盘和e盘的安全里面把Everyone删除,添加改名后的administrator和system,让他们完全控制。高级里面重置所有子对象的权限并允许传播可继承权限。这样系统所有的文件,目录全部是由改名后的administrator和system控制了,并且自动继承上级目录的权限,下面开始为每个目录设置对应的权限。
运行asp,建立数据库连接需要使用C:\Program Files\Common Files目录下面的文件。在这里,设置C:\Program Files\Common Files权限,加入everyone,权限为读取,列出文件夹目录,读取及运行。还可以使用高级标签进行更加严格的设置,但是我没有做过,不敢胡说。
运行php,需要设置c:\winnt\php.ini的权限,让everyone有读取权限即可。如果php的session目录设置为c:\winnt\temp目录,此目录应该让everyone有读取写入权限。为提高性能,php设置为使用isapi解析,d:\php目录让everyone有读取,列出文件夹目录,读取及运行权限。至于php.ini的设置,这里我就不说了。第一我不很懂,第二我只讲系统权限设置。
运行cgi,设置d:\perl让everyone有读取,列出文件夹目录,读取及运行权限。顺便说下,cgi设置为使用isapi方式解析有利于安全和性能。
现在说下让人头大的Serv-U的设置了。这东西功能确实强大,但是安全性不怎么好,需要我们来改造。最首先的是溢出攻击,5.0.11好象已经没有这个缺陷了。其次是修改ini配置文件,这里已经没有权限修改了,略过不提。据我所知现在唯一的办法就是使用默认的管理帐号和密码添加有写入执行权限的帐号来执行木马了。把默认帐号密码修改掉就完了,这个东西直接使用editplus之类的编辑器打开ServUDaemon.exe和ServUAdmin.exe修改就可以了。如果懒得麻烦,随便什么语言写个程序都很容易作到。我以前写过一个这样的东西,方便自己设置。现在Serv-U基本上没有什么问题了。
至于数据库,权限已经不用设置了,直接继承d盘根目录就可以。至于里面的帐号密码该怎么设置,我也懒得说了。
现在最后一点,就是设置c:\winnt\system32目录和他下面的一些东西了。很多程序运行需要这里的动态连接库,而且这里文件太多,我也没有弄明白所有的,把目录c:\winnt\system32给everyone赋予读取,列出文件夹目录,读取及运行即可。其实,这样做是不安全的,但是别慌,我们还没有完。在这个目录下面,我们还需要对几个特别程序进行单独的设置。首先就是cacls.exe,嘿嘿,先把这个设置了在说别的。这东东是设置权限用的,让它不继承父目录权限,并且让它拒绝任何人访问,因为我们一般不使用这个鸟东西。其他的要设置的程序列表如下:net.exe,cmd.exe,ftp.exe,tftp.exe,telnet.exe,这几个程序设置成只允许改名后的administrator访问。
――――――――――――――――――――――――�C第一步完―――――――――――――――――――――――――――――――――�C
―――――――――――――――――――――――――-第二步――――――――――――――――――――――――――――――――�C
现在绝大多数的虚拟主机都禁用了 ASP 的标准组件:FileSystemObject,因为这个组件为 ASP 提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作(当然,这是指在使用默认设置的 Windows NT / 2000 下才能做到)。但是禁止此组件后,引起的后果就是所有利用这个组件的 ASP 将无法运行,无法满足客户的需求。
  如何既允许 FileSystemObject 组件,又不影响服务器的安全性(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)呢?这里介绍本人在实验中获得的一种方法,下文以 Windows 2000 Server 为例来说明。
下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的目录。
打开“计算机管理”→“本地用户和组”→“用户”,在右栏中点击鼠标右键,在弹出的菜单中选择“新用户”:
  在弹出的“新用户”对话框中根据实际需要输入“用户名”、“全名”、“描述”、“密码”、“确认密码”,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”。本例是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号“IUSR_VHOST1”,即:所有客户端使用 http://xxx.xxx.xxxx/ 访问此虚拟主机时,都是以这个身份来访问的。输入完成后点“创建”即可。可以根据实际需要,创建多个用户,创建完毕后点“关闭”:
现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:
在弹出的“IUSR_VHOST1”(即刚才创建的新帐号)属性对话框中点“隶属于”选项卡:
刚建立的帐号默认是属于“Users”组,选中该组,点“删除”:
  现在出现的是如下图所示,此时再点“添加”:
 
在弹出的“选择 组”对话框中找到“Guests”,点“添加”,此组就会出现在下方的文本框中,然后点“确定”:
  出现的就是如下图所示的内容,点“确定”关闭此对话框:
  打开“Internet 信息服务”,开始对虚拟主机进行设置,本例中的以对“第一虚拟主机”设置为例
进行说明,右击该主机名,在弹出的菜单中选择“属性”弹出一个“第一虚拟主机属性”的对话框,从对话框中可以看到该虚拟主机用户的使用的是“F:\VHOST1”这个文件夹:
  暂时先不管刚才的“第一虚拟主机 属性”对话框,切换到“资源管理器”,找到“F:\VHOST1”这个文件夹,右击,选“属性”→“安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),首先将最将下的“允许将来自父系的可继承权限传播给该对象”前面的对号去掉:
此时会弹出如下图所示的“安全”警告,点“删除”:
  此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用“删除”将其清空),然后点“添加”按钮。
  将如图中所示的“Administrator”及在前面所创建的新帐号“IUSR_VHOST1”添加进来,将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将“Guests”组、“IUSR_机器名”这些匿名访问的帐号添加上去!
  再切换到前面打开的“第一虚拟主机 属性”的对话框,打开“目录安全性”选项卡,点匿名访问和验证控制的“编辑”:
  在弹出的“验证方法”对方框(如下图所示),点“编辑”:
  弹出了“匿名用户帐号”,默认的就是“IUSR_机器名”,点“浏览”:
  在“选择 用户”对话框中找到前面创建的新帐号“IUSR_VHOST1”,双击:
  此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:
  再确定一遍密码:
  OK,完成了,点确定关闭这些对话框。
  经此设置后,“第一虚拟主机”的用户,使用 ASP 的 FileSystemObject 组件也只能访问自己的目录:F:\VHOST1 下的内容,当试图访问其他内容时,会出现诸如“没有权限”、“硬盘未准备好”、“500 服务器内部错误”等出错提示了。
  另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取。如果要允许其读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择“属性”→“安全”,将这个用户的帐号添加到列表中,并至少给予“读取”权限。由于该卷下的子目录都已经设置为“禁止将来自父系的可继承权限传播给该对象”,所以不会影响下面的子目录的权限设置。虚拟主机安全设置
如何让asp脚本以system权限运行?
修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低"….
  2.如何防止asp木马?
  基于FileSystemObject组件的asp木马
  cacls %systemroot%system32scrrun.dll /e /d guests //禁止guests使用
  regsvr32 scrrun.dll /u /s //删除
注:这样服务器的FSO就不能用了;
在CMD命令行状态输入以下命令:
关闭命令:RegSvr32 /u C:WINNTSYSTEM32scrrun.dll
打开命令:RegSvr32 C:WINNTSYSTEM32scrrun.dll
基于shell.application组件的asp木马
  cacls %systemroot%system32shell32.dll /e /d guests //禁止guests使用
  regsvr32 shell32.dll /u /s //删除
附:cacls.exe的参数用法
/T――更改当前目录及其所有子目录中指定文件的 ACL;/E―― 编辑 ACL 而不替换;/C――在出现拒绝访问错误时继续;/G user:perm――赋予指定用户访问权限。Perm 可以是R(读取)、W(写入)、C(更改,写入)、F (完全控制);/R user――撤销指定用户的访问权限(仅在与 /E 一起使用);/P user:perm――替换指定用户的访问权限;/D user――拒绝指定用户的访问
3.如何加密asp文件?
  从微软免费下载到sce10chs.exe 直接运行即可完成安装过程。
  安装完毕后,将生成screnc.exe文件,这是一个运行在DOS PROMAPT的命令工具。
  运行screnc �C l vbscript source.asp destination.asp
  生成包含密文ASP脚本的新文件destination.asp
  用记事本打开看凡是""之内的,不管是否注解,都变成不可阅读的密文了
  但无法加密中文。
  4.如何从IISLockdown中提取urlscan?
  iislockd.exe /q /c /t:c:urlscan
  5.如何防止Content-Location标头暴露了web服务器的内部IP地址?
  执行
  cscript c:inetpubadminscriptsadsutil.vbs set w3svc/UseHostName True
  最后需要重新启动iis
  6.如何解决HTTP500内部错误?
  iis http500内部错误大部分原因
  主要是由于iwam账号的密码不同步造成的。
  我们只要同步iwam_myserver账号在com+应用程序中的密码即可解决问题。
  执行
  cscript c:inetpubadminscriptssynciwam.vbs -v
7.如何增强iis防御SYN Flood的能力?
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
  启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后
  安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值
  设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
  "SynAttackProtect"=dword:00000002
  同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态
  的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。
  "TcpMaxHalfOpen"=dword:00000064
  判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
  "TcpMaxHalfOpenRetried"=dword:00000050
  设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。
  项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。
  微软站点安全推荐为2。
  "TcpMaxConnectResponseRetransmissions"=dword:00000001
  设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。
  "TcpMaxDataRetransmissions"=dword:00000003
  设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。
  "TCPMaxPortsExhausted"=dword:00000005
  禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的
  源路由包,微软站点安全推荐为2。
  "DisableIPSourceRouting"=dword:0000002
  限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。
  "TcpTimedWaitDelay"=dword:0000001e
10.如何隐藏iis版本?
  一个黑客可以可以轻易的
telnet到你的web端口,发送get命令来获取很多信息
  iis存放IIS BANNER的所对应的dll文件如下:
  WEB:C:WINNTSYSTEM32INETSRVW3SVC.DLL
  FTP:C:WINNTSYSTEM32INETSRVFTPSVC2.DLL
  SMTP:C:WINNTSYSTEM32INETSRVSMTPSVC.DLL
  你可以用16进制编辑器去修改那些dll文件的关键字,比如iis的Microsoft-IIS/5.0
  具体过程如下:
  1.停掉iis iisreset /stop
  2.删除%SYSTEMROOT%system32dllcache目录下的同名文件
  3.修改

你可能感兴趣的:(职场,设置,虚拟主机,休闲)