危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览19379092

35互联虚拟主机配置揭秘

只要把服务器接入到了互联网上,就会面临着各种威胁,如何才能把服务器设置的更安全,是每一位网管最为关心的事情,我最近使用的35互联虚拟主机就感觉在安全性上做的很不错,那么该虚拟主机是如何配置的呢?下面就结合危险漫步的个人经验来为大家一一揭开,35互联的虚拟主机有着不同的操作系统,本文我介绍的是Windows Server 2003+Accesa数据库。

一、准备工作

关于计算机的硬件情况我就不多说了,在安装系统前要先给硬盘分区,至于如何分就是个人的习惯了,但要说明一点的是,分区要一次性完成,不要先分成FAT32然后再转成NTFS,要一次性分成NTFS格式。安装系统时,服务器名以及一些其它参数可以按照个人习惯来设置,在安装过程中选定你需要的系统服务,象DNS、DHCP等如果没有特别需要的话,最好不要安装。安装常用的软件,比如压缩软件、杀毒软件、网络防火墙等,杀毒软件最好不要使用Nod32,因为它会导至网站访问速度变慢,特别是数据库由.mdb改为asp时,打开网页至少要慢七八秒,最后就是要把系统补丁更新到最新的。

二、务器权限与安全配置

1、删除多余的网络协议

在本地连接的属性中只保留"Internet协议(TCP/IP)"这一项,其它的协议全部删除。选中"Internet协议(TCP/IP)",点击"属性"→"高级",选择"WINS"→"禁用TCP/IP上的NetBIOS"。

2、禁止Dump fiie的产生

Dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料,然而它也能够为入侵者提供一些敏感信息,比如一些应用程序的密码等。右键单击"我的电脑"→"属性"→"高级"→"启动和故障恢复"一"设置",把写入调试信息设置为"无"就行了。

3、关闭华医生Dr.Watson

在"开始"→"运行"栏中输入"Drwtsn32",或者是选择"开始"→"程序"→"附件"→"系统工具"→"系统信息"→"工具"→"Dr Watson"来调出系统中的华医生Dr.Watson,只保留"转储全部线上下文"选项,否则一旦程序出错,硬盘就会读很久,并占用大量空间。如果以前我们的电脑有过这种情况,那么可以查找user.dmp文件,删除后就可以节省出几十MB的空间了。

4、禁止建立空连接,禁止系统自动启动一些服务等

禁止建立空连接,禁止系统自动启动服务器共享,禁止系统自动启动管理共享,防止SYN洪水攻击,禁止响应ICMP路由通告报文,防止ICMP重定向报文的攻击,不支持IGMP协议,由于这些设置都是通过修改注册表来实现的,因此为了操作上的方便,我们可以直接导人445.reg这个注册表文件,至于具体修改的注册表键值大家可以参考445.reg文件,顺序与前面的项目相同。

5、关闭不需要的端口

445端口的关闭也是通过修改注册表来实现,我一并放到了445.reg文件里,对于135端口的关闭,大家请按照以下的操作来进行:在"开始"→"运行"栏中输入"dcomcnfg"调出组件服务,选择"组件服务"下的"计算机"选项,在右边的窗口中右键单击"我的电脑",选择"属性",在弹出的"我的电脑属性"对话框中,选择"默认属性",取消掉"在此计算机上启用分布式COM"前面的勾。再选择"默认协议"选项,选中"面向连接的TCP/IP",单击"移除"按钮,最后点击"确定"按钮,设置完成,重新启动后就可以关闭135端口了。

6、磁盘权限

(1)对于每个硬盘的根目录只保留Adminstrators组用户为全部权限(也可以选择加ASYSTEM用户),其他用户全部删除。

(2)进入系统盘,具体的权限设置如下:系统盘、WINDOWS目录只保留Administrators、SYSTEM、User用户,其中Administrators和SYSTEM用户为全部权限,Users用户为默认权限不作修改,其他目录删除掉Everyone用户。系统盘\Documents and Settirgs目录只给Administrators组用户完全控制权限,由于"Documents and Settings"下的所有目录不会继承前面设置的权限,因此我们要分别进行设置,都只给Administraiors用户完全控制权限,而且要一个一个目录的去仔细检查。比如"C:\Documents and Settings\All Users\Documents"目录,我们设置ALL users目录只有Administrator用户拥有权限,但是再来查看一下Documents目录的权限,发现还是有很多用户有权限,所以都要进行单独的设置才行。"C:\Windows\Temp"目录要设置everyone用户为读取和写入权限,否则可能会导致网站无法正常运行或者运行速度很慢。

(3)搜索以下的文件,记住在搜索时要选择高级选项,勾选上"搜索隐藏的文件和文件夹",我们修改net.exe、etl.exe、cmd.exe、etstat.exe、regedit.exe、at.exe、

attrib.exe、cacls.exe、icacIs.exe、format.com、regsvr32.exe、xcopy.exe、wscript.exe、cscript.exe、flp.exe、telnet,exe、arp.exe、edlin.exe、ping.exe、route.exe、finger.exe、

rsh.exe、runonce.exe、syskey.exe的权限,删除所有的用户而只保存Adminstrators和SYSTEM为所有权限。

7、删除存在隐患的目录

删除"C:\WINDOWS\Web\printers"目录,这个目录的存在会造成IIS里加入一个.printers的扩展名,可被溢出攻击。删除"C:\WINDOWS\Help\iisHelp"目录,这是默认IIS错误页面,基本上已经没多少人使用了。删除"C:\WINDOWS\system32\inetsrv\iisadmpwd"目录,这个目录是用来管理IIS密码的,比如一些因密码不同步造成500错误的时候就可以使用OWA或Iisadmpwd来修改同步密码,但在这里可以删除掉,因为我们下面讲到的设置将会杜绝因系统设置而造成的密码不同步问题,如果无法删除的话,我们可以进安全模式后再删除,最后就是删除"c:\inetpub"目录。

8、本地安全策略配置

单击"开始"→"程序"→"管理工具"→"本地安全策略",选择"帐户策略"→"密码策略",把"密码最短使用期限改成O天(也就是密码不过期,这样就不会造成IIS密码不同步了)。再选择"帐户策略"下的"帐户锁定策略",把"帐户锁定阈值"设置成5次,"帐户锁定时间"设置成10分钟。选择"本地策略"→"审核策略"。

我们再来选择"本地策略"→"安全选项"。

分别把以上项目设置为"已启用",重命名来宾帐户,并更改成一个复杂的帐户名,重命名系统管理员帐号,并更改成一个自己使用的帐号(同时还可以建立一个无用户组的Administrator陷阱帐户)。

9、重命名不安全组件

对于Wscript这些控件,如果不删除的话,可以通过Asp术马来读取管理员帐号和计算机用户,所以我们重命名这些控件,就可以有效防止Asp木马读取出管理员帐号和计算机用户。

在"开始"→"运行"栏中输人"regedit"打开注册表编辑器,分别对"HKEY_CLASSES_ROOTWScriptShell"

"HKEY_ CLAS SES_ROOTtW Script.Shelll.1"

"HKEY_CLASSES_ROOTWScript.Network"  

"HKEY_CLASSES_ROOT\WScript.Network.1"进行重命名,重命名的名字自己随意设置。为了更好的防止木马,我们需要将W.Shell组件和Shell.application组件加以卸载,打开"开始"→"运行",分别输入以下的命令执行就可以了:

10、禁用不需要的服务

我们直接双击运行DisableSevers.bat,就可以禁用掉那些不需要的服务了,具体禁用了哪些服务,大家可以参考StopServers.bat文件,里面有详细的说明。    

三、FTP服务器配置

大家都知道,使用了Serv-U FTP的服务器如果设置不当的话,就会存在很大的安全隐患,严重的会被直接控制服务器。35互联的虚拟主机使用的是Windows Server 系统自带的FTP,而没有使用Serv-U FTP,那我是怎么判断的呢?我使用ftp命令连接了35互联的虚拟主机,给出的"220 Microsoft FTP Service"虽然还不足以说明这一点,但加上后面IIS6.0建立的FTP站点的特殊要求就足以证明这一点了。

在IIS6.0没有发布前,IIS中并没有可以把用户限制在一个FTP站点的特定目录中的好方法,这就经常会出现一种非常糟糕的情况,即拥有写入权限的用户会把FTP站点主目录中的资源搞得一团糟,虽然我们也可以借助"虚拟目录+NTFS权限"相结合的方法来达到具体设置的目的,但终究是比较麻烦。

IIS6.O的发布就及时弥补了这种缺陷,因为使用IIS6.0内置的FTP服务创建一个"用户隔离"模式的FTP站点就可以有效解决上述问题了。用户隔离是一项新增功能,用户隔离模式的FTP站点可以使用户在成功连接FTP服务器后直

接进入属于该用户的目录中,并且该用户不能查看或修改其他用户的目录,创建"用户隔离"模式FTP站点的方法如下。

1、创建用户帐号

我们首先需要在FTP站点所在的Windows Server 2003服务器中为FTP用户创建一些用户帐号,用户可以使用这些帐号来连接FTP站点。因为我们创建的是用户隔离模式,所以需要创建本地帐号。

在系统桌面上右键点击"我的电脑",选择"管理",在打开的"计算机管理"窗口中选择"系统工具"下的"本地用户和组",然后右键点击"用户",在弹出的快捷菜单中选择"新用户"。在打开的"新用户"设置窗口中,分别输入用户名和密码(本文中我们就创建用户"riic"),因为在服务器上要存放很多站点,所以可以在"插述"里填上站点域名或说明文字来进行区分。取消掉"用户下次登录时须更该密码"选项,并勾选上"用户不能更该密码"和"密码永不过期"这两项,然后点击"创建"按钮,最后我们还要删除该用号隶属于Users组的权限,要让该用户不隶属于任何组,在后面IIS里也会用到该用户的。

我们再打开下一个"新用户"对话框来继续创建用户,根据需要添加若干个用户,最后创建完毕后就可以点击"关闭"按钮退出了。

2、规划FTP站点目录结构

为了把每个用户隔离在自己的专用目录中,我们需要事先规划FTP站点的目录结构,也就是为每个用户建立一个文件夹,不过这些文件夹并不是随意建立的,而是要遵循一定的规范,因为创建"用户隔离"模式的FTP站点对文件夹的名称和结构都有一定的要求。首先我们必须在NTFS分区中创建一个文件夹作为FTP站点的主目录(本文中我们就建立"web"文件夹),然后在"web"文件夹下再创建一个名为"LocaIUser"(本地用户)的子文件夹,最后在"LocalUser"文件夹下创建若干个与用户帐户相对应的个人文件夹。

提醒一下大家,FTP站点主目录下的子文件夹名称必须为"LocaIUser",并且在其下创建的用户文件夹必须要与相关的用户帐号使用完全相同的名称,否则将无法使用该用户帐号来连接。正是通过这个特殊的要求,再结合我在35主机上放置的WebShell,就足以证明35互联主机的FTP服务器的这种配置方法了。

3,创建"用户隔离"FTP站点

通过创建用户帐号和规划FTP站点目录结构,我们的准备工作已经完成,接下来就开始创建"用户隔离"模式的FTP站点了,具体创建步骤如下。

打开"Internet信息服务(IIS)管理器",在左边窗口中右键点击"FTP站点",在弹出的快捷菜单中选择"新建/FTP站点"命令,打开了"FTP站点创建向导",单击"下一步",在"FTP站点描述"中输入一些描述性语肓(比如"WehFTP"),并单击"下一步",就进入到了"IP地址和端口设置"页面,在"输入此FTP站点使用的IP地址"下拉菜单中选择一个用于访问该FTP站点的lP地址(本文中我们选择的IP地址为"192.168.137.5"),端口保持默认的"21",单击"下一步"按钮,在打开的"FTP用户隔离"页面中点选"隔离用户"单选框。

单击"下一步"按钮后就打开了"FTP站点主目录"页面,点击"浏览"按钮找到我们事先创建的"Web"文件央,并依次点击"下一步"和"确定"按钮,在接下来的"FTP站点访问权限"页面中勾选"写入"复选框,然后依次单击"下一步"和"完成"来完成创建工作。

由于我们前面设置了每个硬盘只保留administrator和system权限,所以要把ftp的文件夹单独指定与文件夹同名的用户的权限,并设置修改、写人权限。好了,

打开浏览器,输入fp的服务器地址,并输入用户名和密码就可以登录并上传文件了,FTP服务器就此配置完成。

使用过虚拟主机的朋友可能会发现,我们在FTP登录后通常会出现的情况,也就是在FTP空间里会有三个文件夹,www为网站目录,logfiles为网站日志,isapi为ISAPI筛选器,但登录我们的FTP空间却是空的,解决的方法很简单,我们在FTP站点的根目录下同样建立以上三个文件夹,对于各个目录功能的具体配置请大家继续往下看。

4、FTP用户配额设置

大家都知道,我们通常使用的FTP空间都会有大小限制,那么在服务器上是如何配置的昵?右键点击FTP主目录所在的盘符(比如D盘),选择"属性"(也就是打开本地磁盘的属性对话框),选择"配额",勾选上"启用配额管理"以及"拒绝将磁盘空间给超过配额限制的用户",点击"配额项"按钮,打开了"本地磁盘(D:)的配额项"对话框,在对话框中对建立的FTP用户进行相应的配额设置就行了。

四、iis的配置

这里就随便找了一个网站的配置为例来为大家讲解IIS的配置过程,大家注意:停用IIS默认站点,切勿删除了,删除后有可能会造成IIS的不稳定。

IIS6有一个非常不方便的东西,就是它限制了在线上传不得大于200K,要如何修改昵?首先我们停用IIS服务,选择"开始"→"程序"→"管理工具"→"服务"→"iis admin service"→"停用",使用记事本打开"C:\windows\system32\inetsrv\metabase.xml",找到ASPMaxRequestEntityAllowed处,默认为204800,也就是204800字节(200K),把它修改为想要的数字,比如2048000(也就是2M),然后保存,重启IIS服务就行了。

打开"IIS管理器",选择"网站",点击右键并选择"新建"→"网站",为了区分服务器上的网站,我们可以在网站创建向导的描述里来输入网站的域名,点击"下一步",在"此网站的主机头"处输入网站城名。这里主机头为空的话,我们就只能建立一个网站,在建立第二个网站的时候就会提示端口已经被使用,无法创建。网站的主目录我们设置好.这就是为什么把网站放到www里会正确解析的原因,点击"下一步",网站访问权限勾选上读取、运行脚本(比如asp)除非有特别的需要,否则不需要勾选写入与执行权限。

我们来配置网站,右键单击刚建立的网站,选择"属性",单击启用曰志记录的属性按钮,设置日志文件目录。选择IIS的"主目录"→"配置"→"应用程序扩展"→"映射",只保留asp、asa、aspx,我们再单独添加一个mdb的映射,解析mdb的dll文件我们可以随便数据库也不会被下载,可以说是防止.mdb数据库被下载的制台,右键点击“应用程序池”,选择“新建”——“应用程序池”,在出现的“添加新应用程序池”窗口中输入应用程序池ID: riic.cn。右键点击所创建的应用程序池rliccn,选择“属性”——“标识”,在应用程序池标识处选择“配置”,井点击其右边的“浏览”按钮,查找到iiswk_riic用户,确认并输入iiswk_riic用户的密码和确认密码,。将网站分配到相应的应用程序池,右键单击打开网站属性,切换到“主目录”标签,在应用程序池的下拉菜单处选择应用程序池。

网站运行一段时间后,内存及CPU资源的占用不能及时释放,从而会导致服务器响应速度变慢,应用程序池默认为29小时进行进程的回收,时间比较长,我们需要及时的回收这些资源以更好的发挥性能。在应用程序池属性的回收标签中设置为每天夜间3点回收进程以及内存占用多少兆时进行进程回收,为什么要选择夜间回收进程呢?这是因为回收进程时会占用CPU使用,夜间的访问量会比较少,所以在夜间进行不会影响到访问速度。

六、3389终端安全配置

为了方便虚拟主机的管理,通常大家都会安装远程管理软件,比如Pcanywhere等,但配置不当的话就会给黑客留下后门,其实使用Windows Server自带的终端服务,经过我们细心的配置电可以做到很安全的,而且在速度和稳定性上也都要强于第三方软件。

1、修改终端服务的端口

修改注册表“HKEY LOCAL MACHINE\SYSTEM\CurrentC  ontroISe OCon CronTerminal Serve r\WinSta Lions:RDP-Tcp"以及“HKEY_LOCAL_MACHINE\SYSTEMY

CurrentControtSet\ControI\Terminal Server\Wds\rdpwd Tds\tcp”二个分支下的portriumber键值,更改成我们想要的端口,改好后,客户端连接可以使用“ip:端口号”的形式,比如“192.168,137.5:1218”。

2、隐藏上次登录的用户名

这可以防止被恶意破解3389管理员用户密码,打开注册表找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows NTCurrent Version\Winlogon”,把DontDisplayLastUserNamc的值改为1就可以了。

3、设置指定用户才可以登录终端

为了安全,没有必要让服务器上的所有用户都可以登录,我们可以指定一个管理员帐号允许其登录,比如用户riic,这个用户只要求隶属于Administrators组,如果还有其他用户组的话,后面的设置就会造成远程不能登录等一些其它的原因。打开“管理工具”→“终端服务配置”→“连接”,再选择右边的“RDP-TCP”的属性,找到“权限”选项,删除administrators组,然后再添加我们允许的rnc这个用户,设置除System以外的其他用户组一律不允许登录,其他用户组全部勾选拒绝。

4、启动组策略中的登景项审核机制

“终端服务”默认没有日志记录,需要手动设置,开启方法如下:在RDP-TCP的属性中,找到“权限”选项,点击“高级”,里边有个“审核”。添加Evervone,然后选择需要记录的的事件,一般我们需要审核以下几个事件。

5、制作3389事件查看器以查看登录的IP地址情况

首先我们创建一个名称为338910g.bat的批处理文件。

第一、二行代码用于记录用户登录的日期和时间,第三行代码用于记录终端用户的lP地址。338910g.bat首次运行会自动产生一个338910g.txt的文本文件,之后每次运行都会追加登录的IP地址情况。

打开系统管理工具中的“终端服务器配置”,进入到默认RDP-Tcp属性中,切换到“环境”标签,启用“用户登录时启用下列程序”,在“程序路径和文件名”处填写“c:\338910g.bat”,并在“起始于”处填写“c:\”,设置完成后我们再隐藏338910g.bat和338910g,txt文件。

6、利用组策略的IP安全策略限制3389端口的访问以及屏蔽不需要的端口

虽然我们把3389的端口更改了,但出于安全性考虑,可以指定我们经常使用的IP才可以登录到3389,其它的外网地址通通不允许访问此端口,具体的配置过程如下。

在“开始”——“运行”栏中输入“gpedit.msc”打开组策略,选择“计算机配置”一“Windows设置”一“安全设置”——“IP安全策略,在本地计算机”,在右侧窗口中点击右键,选择“创建IP安全策略”。点击“下一步”.把策略命名为“允许指定的IP访问3389”并点击“下一步”,中间会有一个警告,我们选择“是”,直至完成。

双击“允许指定的IP访问3389”策略,取消使用“添加向导”前的勾并单击“添加”按钮。再一次选择“添加”按钮,在“名称”里命名为“拒绝任何IP访问服务器3389端口”,并取消“使用添加向导”。再次单击“添加”按钮,在“IP筛选器属性”的“源地址”处选择“任何IP地址”,“目标地址”就选择“我的IP地址”。

点击“协议”标签,在协议类型处选择TCP,在“设置IP协议端口”里选择“到此端口”,端口值就设置我们更改后的3389的端口,我这里就为1218,然后就是单击两次确定。选中“拒绝任何IP访问3389端口”,并转到“筛选器操作”标签,取消使用“添加向导”并单击添加按钮,在“新筛选器操作属性”的“安全措施”里选择“阻止”,并在“常规”选项下的名称里输人“阻止网络访问”,单击确定。

确保在“筛选器操作”中选择了“阻止网络访问”,然后单击确定,再次双击“允许指定的IP访问3389”策略,选择“添加”按钮,操作步骤和上面的相似,只是在如下步骤时不一样。在“IP筛选器属性”的“源地址”处选择“一个特定的IP地址”或者“一个特定的IP子网”,“目标地址”就选择“我的IP地址”。

完成后在“规则”中选择“允许指定IP访问本机3389端口”,并转到“筛选器操作”标签,在“筛选器操作”中直接选择“许可”,最后设置完成。在IP安全策略中,右键单击刚才建立的“允许指定IP访问3389”策略,选择所有任务,并选中“指派”,然后刷新组策略。现在,使用正确的IP就可以连接成功,使用没有指定的IP连接就不会成功了,特定的lP地址可以多次添加,利用这种方法同样可以阻止一些不需要对外开放的端口。

到达里,整个虚拟主机的配置过程就全部完成了,我们可以直接把WebShell上传上去,WebShell已经对服务器不构成什么威胁,最多也只是可以操作WebShell所在的网站而已,希望本文对大家能有所帮助,在安全方面或许还有没考虑到的地方,还请大家批评指正,互相学习。

相关推荐