年前一直在赶项目,到最后几日才拿到新服务器新添加的硬盘,重做阵列配置生产环境,还要编写部署文档做好安全策略,交给测试部门与相关部门做上线前最后测试,然后将部署文档交给相关部门同事,让他根据部署文档再做一次系统,以保证以后其他同事能自己正常部署服务器,最后终于赶在放假前最后一天匆忙搞定测试后,简单的指导同事按部署文档将服务器重新部署了一次就先跑路回家了,剩下的就留给加班的同事负责将服务器托管到机房了。年后回来上班后按工作计划开始做文档(主要对之前编写的部署文档进行修正和将相关未添加的安全策略添加进文档中,并在测试环境进行安全测试)。等搞定后要对服务器做最后一次安全检查时,运营部门已将网站推广出去了,真是晕死,都不给人活了......只能是加班加点对已挂到公网的服务器日志和相关设置项做一次体检。当然一检查发现挂出去的服务器有着各种各样的攻击记录,不过还好都防住了,没有什么问题,然后就是继续添加一些防火墙策略和系统安全设置。 接下来还是不停的忙,要写《服务器安全检查指引——日常维护说明》。公司新项目要开发,得对新项目分析需求,编写开发文档,然后搭建前后端开发框架,旧系统要增加新功能,又得写V3、V4不同版本的功能升级开发文档......今天终于忙得七七八八了,回头一看,2月份就这样一眨眼就过去了,看来程序员老得快还是有道理的,时间都不是自己的了。 前面啰哩啰嗦的讲了一大堆费话,现在开始转入正题。 对于服务器的安全,相信很多开发人员都会碰到,但绝大多数人对安全都没有什么概念。记得10年前我刚接手服务器时,仅兴奋,又彷徨,而真正面对时,却无从下手,上百度和谷歌上找,也没有完整的说明介绍,对安全都是一头雾水。刚开始配置的服务器漏洞百出,那时几乎吃睡在机房,也避免不了服务器给黑的事情发生,而且大多被黑后还一无所知,想想都是郁闷~~~当然经验也是在被黑的过程中慢慢升级的,哈哈...... 下面就将写好的《服务器安全部署文档》分享出来,希望能对大家有所帮助。当然本人不是黑客,也不知道所有的攻击手段,所以其中可能存在遗漏的地方,也请大家提出建议。按本文档的安全设置思想配置服务器(不同平台、操作系统不同版本的配置都有一定的不同之处,但安全设置思路是共通的),管理的众多服务器(其中包括各种Web服务器、数据库服务器、流媒体服务器、游戏服务器(Linux系统))从2005年到现在,还没发现给入侵成功的例子,当然也有可能没有非常利害的黑客来进行攻击有关,但从中也可以看到安全方面还是有一些保障的(呵呵...自夸的得多了,都不好意思了)。如果手上没有服务器的朋友,也可以在自己电脑用虚拟机安装配置试试(在我公司技术部,将文档发给大家后,不少同事都尝试按文档指引操作过,对提升服务器安全部署还是相当有帮助的)。当然虚拟机在配置时,有一些地方与实际服务器上操作还是有些细微的差别的。
目录
1. 前言 其实要配置一台安全的服务器,简单来说就几句话: 能不开放的端口和可以不运行的服务全部关闭或禁用; 使用可进行端口通讯访问策略配置的防火墙; 严格控制系统中各种程序对各个目录创建、修改与删除可执行脚本、动态链接库与程序的权限; 对于网站目录,能写入的目录或文件不能有执行权限,有执行权限的目录不可以赋给写入权限。(这条最为关键)
2. 部署环境 略 服务器软件环境:
3. 磁盘阵列配置 具体配置请查看《RAID配置中文手册》,链接地址: 4. 安装操作系统 5.安装软件 由于服务器的相关文件、图片和各种日志文件会不停的创建与删除,服务器运行时间长了以后,磁盘上会存在很多文件碎片,这样就会降低服务器的性能,缩短硬盘寿命。
略 打开服务器管理器,选择角色=》点击“添加角色” 选择Web服务器(IIS) 点下一步后,按下图所选内容进行勾选
运行dotNetFx40_Full_x86_x64.exe安装.net4框架(这个必须在IIS安装完成后才进行安装,这样才会在IIS的相关属性中自动绑定.net4框架) 5.5 安装SQL2008 安装SQL2008前,首先要安装.net3.5框架,打开服务器管理器,点击功能=》添加功能=》勾选.NET Framework3.5.1运行安装 继续安装SQL2008,请先操作第6.1修改系统默认帐户名步骤后的管理员用户再进行下面步骤
按6.1操作后,将SQL2008_CHS.iso载入虚拟光盘,运行安装 这里选择的帐户名是SYSTEM,密码为空 操作到这一步时请注意:
有时候运行到最后一步时会显示安装出错,这时重启后进入控制面板,点击卸载程序,将刚安装的SQL2008删掉后再次重启电脑,进行安装就可以了,当然我试过一次通过,也试过这样操作三四次后才成功,为什么会这样就不知道了。
略 杀毒软件与防火墙的安装,最好将 ”6.14.配置McAfee防火墙” 之前的所有步骤全部完成后才进行,不然可能会造成一些配置或操作无法成功的情况,因为防火墙安装成功后,会阻止系统软件的运行与操作。如果已经安装好了的话,则先打开杀毒软件控制台,将“访问保护”先禁用,而防火墙则先不开启。
防病毒+防火墙组合装 官网卖1年也才是80元,建议大家都购买正版来使用,由于本人是在虚拟机上进行的操作,所以使用的是免费版来做演示 官网购买地址:http://home./store/antivirus-plus
安装防火墙 直接运行McAfeeHIP_ClientSetup.exe (注:正版的安装方法与下面是不一样的,有一些区别) 运行后不会有任何安装界面出来,等待一会后再运行补丁,如下图 双击鼠标左键就可以了,然后进入下图路径,找到已经安装好的防火墙程序 运行McAfeeFire.exe,就可以打开防火墙软件了
修改系统默认帐户名并新建一个Administrator帐户作为陷阱帐户,设置超长密码,并去掉所有用户组。(就是在用户组那里设置为空即可.让这个账号不属于任何用户组),同样改名禁用掉Guest用户。 先对原Administrator用户进行重命名 修改为你自己喜欢的名称 然后新建一个Administrator欺骗帐户,设置混合超长密码 对它进行编辑 删除隶属的组 因这个是欺骗帐户,所以充许网络策略控制访问 将Guest也进行重命名操作
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时间30分钟”,“复位锁定计数设为30分钟”。
所有磁盘除CREATOR OWNER、administrators和system的用户权限全部删除(C盘必须保留Users用户组,理论上来说是要删除Users用户组的,但很多朋友如果这里直接删除,操作不当的话,网站有可能就访问不了,必须对系统目录下的不少目录重新配置权限非常麻烦,所以本文建议保留,只要按下面的一些设置做到位,这里也不会有多大的安全隐患的)
将网站代码与图片复制到指定文件夹里 (由于本站的前后端分开,图片站也是独立的,另外做了一个图片异步跨服务器更新程序,所以有下面四个文件夹) 打开服务器管理器,进入本地用户和组管理,为上面几个网站添加对应的绑定用户,并分别设置超长混合密码,并记录下来,后面备用 注:后来经同事提醒,原来win2008服务器的IIS访问可以使用应用程序池名称做为账号来设置(大家可以参考:http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html),而不用再创建多个独立的账号,不过文档都已经写了,就懒得改了,还是使用Win2003的设置模式来添加帐户 然后将创建好的几个帐户所隶属的默认组删除,添加Guests组 将远程控制去掉 将拨入设置为拒绝 打开IIS,将默认站点删除 对网站点右键,添加网站 创建好对应的站点
点击连接为按钮,设置访问帐户,设置路径凭据为:特定用户,然后输入用户名为刚才创建好的用户名,与相应的密码
设置身份验证 点击应用程序池,将刚创建好的网站对应程序池.NET Framework版本和托管管道模式 .NET Framework版本设置为.NET Framework v4.0.30319 设置网站的默认文档为Index.aspx 设置ISAPI和CGI限制 将Active Server Pages设置为不允许,将ASP.NET v4.0.30319设置为充许 进入C:\Windows\Microsoft.NET\Framework64\v4.0.30319目录,设置Temporary ASP.NET Files文件夹的访问权限 点右键=》属性 添加红框框住的用户,并设置为可修改 进入C:\Windows\Microsoft.NET\Framework64\v2.0.50727目录,对Temporary ASP.NET Files文件夹做同样的操作
然后为当前创建的网站设置相应的文件夹访问权限 添加刚才创建的,并在IIS里绑定的帐户、Authenticated Users和NETWORK SERVICE三个账号 设置权限为默认权限(读取和执行、列出文件夹内容、读取) 启用父路径 双击ASP打开属性编辑,将启用父路径修改为True 附加数据库操作 附加数据库 找到数据库存放位置 删除数据库中原绑定用户 新建登陆名 将数据库链接的用户名与密码填写在SQL新建登陆名对应文本框中,并按下图进行设置 然后点击用户映射,勾选数据,并设置数据库拥有db_owner角色权限(注:点击确定后最好重新检查新建用户的属性,用户映射项,查看db_owner角色权限是否赋值成功,这里经常会出现创建后没有赋值成功的情况,需要手动重新设置过后才可以) 打开网站目录,找到Web.config文件,记事本打开,填上新创建的数据库用户名与密码 运行ASP.NET State Service服务,并将它设置为自动运行 其他几个网站也按上面的步骤与配置进行设置后,打开浏览器就可以正常该问了 将红框框住的两个帐户设置可修改权限 禁用可写入目录的执行权限(也可以将所有不用运行ASPX脚本的目录都禁用执行权限,比如css、js等)
6.5. 配置跨服务器同步更新图片网站 略 6.6. 屏蔽xplog70.dll漏洞 进入安装好的SQL目录搜索 xplog70.dll 然后将找到的文件删除
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-本地策略-安全选项,将
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-本地策略-用户权限分配
在“拒绝通过远程桌面服务登陆”策略中,添加下面用户组和用户 另外,在添加新站点时,也必须将创建的新用户添加到这里
打开注册表
打开服务器管理器,进入“服务”管理,将下列服务禁用(用黄色标识的服务在2008系统中可能不存在)
开启系统防火墙(控制面板=》系统和安全=》Windwos防火墙=》打开或关闭Windows防火墙),如果远程操作的话就要小心,不要将自己的连接也给禁用了 关闭“文件和打印共享”功能 注:如果为了更安全的话,最好是将远程桌面关闭,使用更安全的第三方远程登陆程序。或者修改远程连接端口,一般来说做了前面的设置后,就算留了“肉鸡”在,问题也不是很大。
对我的电脑点击左键=》属性,打开系统属性窗口 修改远程桌面链接端口 将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp项的PortNumber值由3389修改为12345 修改了远程桌面端口后,原防火墙的远程桌面规则就会失效了,需要重新创建规则 设置后重新电脑就马上生效了
打开VirusScan控制台 启用访问保护 打开访问保护属性 添加用户定义的规则 要排除的进程: csc.exe, DTSWizard.exe, Explorer.EXE, FrameworkService.exe, HIPSvc.exe, McScript_InUse.exe, SqlWb.exe, Ssms.exe, vbc.exe, w3wp.exe 要排除的进程: FrameworkService.exe, mmc.exe, svchost.exe
开启防火墙的各项阻止规则 按下面要求,在对应的规则里添加排除的进程
这些规则的添加,需要经常查看“访问保护日志”,看那些程序是我们请允许执行的,但却给防火墙阻止了,将它们到对应的排除进程当中(具体操作如果不懂的可以查查百度,或者查看我下一篇文章《服务器安全检查指引——日常维护说明》,它属性服务器的日常维护内容)
按下面路径进入防火墙文件夹 运行McAfeeFire.exe打开防火墙软件 点击解除锁定,密码默认为abcde12345 解锁后对防火墙的相关选项进行设置 启用防火墙功能——如果是远程桌面操作的话,这一步操作后远程桌面会马上无法联接,需要在服务器本地设置请允许才能再联接上 启用后用远程桌面联接一下,并给予授权 点击充许后,再用远程桌面联接就可以登陆了,其他端口、软件或网站的授权访问也是一样的操作,在给予授权操作时,请仔细留意一下是否是我们请允许的程序访问的,不是的话或不明白的一律给予拒绝,拒绝后发现网站某项功能无法访问或出问题时,再来这里进行排查和修改规则,以保证服务器的安全。
1、更新前一定要经过自测和测试部门人员测试通过; 8. 结束语 服务器的安全无小事,事事须小心,一出问题就是大问题,所以真正操作时需要非常细心+小心。 作为一个服务器维护人员,除了日常的维护工作外,有时间的话还须学习掌握各种常用的黑客工具,熟悉各种攻击手段,多点上上乌云网等这种类型的网站,去看看别人是怎么入侵的,以做到更好的防护。 由于公司网站的一些特殊性,所以发布的内容是经过删减过的,有一些特殊配置和设置没有发布出来,呵呵......不过基本的安全防护描述的差不多了。里面是否还存在有安全问题就不太清楚了,希望有经验的朋友多多指教。 如果你觉本篇文章有帮到你,也请帮忙点推荐。
版权声明: 发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708 或Email给我(1654937#qq.com),大家一起探讨,由于本人工作很繁忙,如果疑问请先留言,回复不及时也请谅解。 更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/ |
|