桃花岛主 lv-3

windows服务器的常用安全配置(web安全,信息安全,目录权限,安全策略,安全配置)

-- windows服务器的常用安全配置(web安全,信息安全,目录权限,安全策略,安全配置)
【官网】:#

应用场景

无论是自己的托管服务器还是虚拟主机,云服务器,在如今的社会环境下,十分需要注意起码的安全规范。

基础资源

windows server 服务器

使用须知

这里给出一些基本的规范,安全没有尽头,需要维护人员不断的关注,改进,优化

配置步骤

>改掉不注重服务器安全的陋习

<关于网站与Dedecms等开源项目>
1.)关注更新,谨慎维护:因为免费开源系统,版本老,各种上传漏洞,注入漏洞.
2.)  设置目录,遵循原则:避免为了省事,快速调试通过,就随便把一个顶级目录设置为,(web用户甚至every one+完全控制)的权限.

<关于企业内部web项目>
1.) 开启的调试开关:调试开关一开,各种sql语句,连接地址,数据表都暴露无遗,只要故意输入个错误参数就会触发.
2.) 同目录日志输出:禁止在php的同目录下打印文件,这就意味着当前目录,同时具备: 写入权限,执行权限.
3.) FTP目录权限大+弱密码: 超过需求的FTP权限,外加弱密码,很容易被突破.  还要禁止有目录上翻的预览权限,FTP一般都涉及核心系统.

>未雨绸缪,避免不必要的损失。

1.)windows相关漏洞补丁,需要及时更新. 服务器账号密码要足够复杂,定期更新,只给负责人不给其它人。
2.)利用好阿里云安全:  日常有时间多观察下阿里云的风险提示,尝试学习下怎么修复这些风险,漏洞。
开启自动隔离,以及对核心服务器开启安全优先。
3.)规范好目录及FTP的管理:   避免(FTP目录权限松和随意+用户密码是弱密码)出现,这样是很脆弱的。
日志目录: 写入   (不要给执行权限)
代码目录: 执行     (不要有写入权限)
上传目录: 写入,读取 (不要有执行权限)
注:所有目录及FTP的设置都是针对最底下一层的目录,而不是针对顶级目录。
4.)所有业务系统,产品中的涉及的第三方平台,开放平台,统计账号,API,SDK,支付账号等都要基于公司邮箱进行申请,避免员工离职带来的交接难题。
5.)各种重要的平台,控制台等账号密码不要用弱密码或公用密码,避免被一锅端。
6.)开源,免费产品与核心的系统分开在不同的服务器部署,并且及时关注开源免费产品的安全补丁的修复,更新版本等。
7.)适当增加一些cdn,防止ip暴露.
8.)业余适当了解:学习一些web,服务器安全方面的基础知识,避免因为设置不当导致重大漏洞.
9.)如果有UGC内容,也就是用户提交内容的情况,需要做好实名认证,并做好敏感词替换(避免黄赌毒信息),避免被监管机构打击。
10.)数据库要设置IP白名单,角色要划分好。所有权限都给与满足需求的情况下的最低权限。
11.)平常建立定期备份机制,最好是自动的。以便万一被攻击了也可以恢复。包括:配置好的程序,数据库等

>已经被攻击了之后怎么办。

1.)尝试临时使用安装安全狗:    安全狗是一个专门的服务端,网站相关的安全工具,可以扫描木马,网页挂马等.
1.1)如果有涉及访问网站需要验证或刷新之后才正常,则可以单独关闭掉cc防护。
1.2)安全狗安装路径的同级目录:SafeDogUpdateCenter文件夹里有个文件名叫safedog_user.psf的文件。这个是安全用户证书。删了就可以重新登录新的用户.
1.3) 运维中发现安全狗开启cc防护和ddos防护后可能会有异常,建议处理好了之后卸载安全狗。
2.)尽可能重装系统.
3.)重新下载一个最新版的dedecms或其它在用的开源系统进行部署,之后把数据库恢复过去.  新版本,官方估计修复了一些漏洞.
4.)在新服务器或重装后的服务器上,用svn下载下来的代码编译上传,之后调整配置,以前的项目程序都不要了.
5.)修改各种敏感,重要的密码,秘钥等等, 可能之前的程序,配置文件已泄露.
6.)如果服务器上有开源的和自己开发的,有条件要对服务器进行划分(内部的,外部网站的, 大型产品平台),将开源与内部系统分开。

常见问题

快速入门

>通用设置的一般生效处理.

>>磁盘,目录相关权限设置后需要重启WWW服务.

实践发现,如果不重启”World Wide Web Publishing Service”则会导致出现即便phpinfo都无法执行,提示”找不到的文件启用文件监视的解决方法”。

>基于云平台及第三方安全服务的处理.

   >>善用云平台及主流知名的安全方案.

>>阿里云OSS的权限设置.

 >>>控制员工只能访问单独bucket.

  <步骤1>添加一个:自定义授权策略.

<步骤2>将自定义授权策略应用到权限管理中。

[]

 

>服务器自身防止webshell的措施.

 >>windows账户管理.

  禁用guest账户。

  可以给Administrator重命名。并设置超长且字符混合的密码。

  >>仅允许指定用户远程协助.

[教训]public服务器被入侵后检查发现,  上述仅允许运行使用网络级别身份验证这块没有勾选

  >>IIS安装的安全勾选.

[教训]public服务器被攻击后,发现基本身份验证和windows身份验证都没安装

  >>用户组策略设置.

  >>>删除从网络访问此计算机策略中的everyone选项.

在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-本地策略-用户权限分配“从网络访问此计算机”策略中的“Everyone”删除

  >>>拒绝通过远程桌面的账号

“拒绝通过远程桌面服务登陆”策略中,添加下面用户组和用户

 >>根目录不要放到系统目录(c).

  网站程序的根目录尽量不要放在系统盘下,防止黑客取得网站目录的访问权限后,最容易取得对系统目录的访问.

  >>后台目录需要避免常用词(admin,houtai.manage等).

   黑客会根据大家的习惯去试探,之后得到后台地址,再根据现有网上爆出的漏洞进行处理。因此后台目录需要搞得复杂一点。

  >>服务器及站点的权限设置.

     >>>磁盘权限及关联设置.

  确保所有盘符都是NTFS格式,如果不是,可以用命令 convert d:/fs:ntfs 转换为NTFS格式。

所有磁盘根目录只给system和administrators(有时可以允许CREATOR OWNER)权限,其它删除。

 [1]如果条件允许,在关键软件安装完了后可以重命名用户组.

 [2]有时如果站点目录和php-cgi.exe等所在目录都在同一个磁盘,由于磁盘设置的权限比较小了,因此还需要授予php所在的目录(iusr,iis_iusrs权限),否则会导致php网站无法运行(提示找不到的文件启用文件监视的解决方法).

 [参考]https://www.jb51.net/article/86402.htm

    >>>不同类别的系统风险隔离.

     SVN,OA,销售系统级别的产品,与网站(dedecms等)开源产品不要放到一个服务器上。

    >>>站点的用户设置.

   [步骤1] WebRoot权限直接继承磁盘权限即可.

   [步骤2]WebRoot/x.com网站权限

  [1]严禁给web站点目录授予everyone权限,如果发现请立刻删除

  [教训]public服务器被webshell入侵后,检查发现磁盘根目录有everyone权限

  每个网站对应一个目录,并为这个网站目录加上IUSR和IIS_IUSRS权限,都只给“列出文件夹内容”和“读取”权限. //该操作已实测有效,另外不同版本IIS在这个账号上稍有不同(比如有些是 network service).这里以windows server2008,server2012为例。

   代码目录:  仅仅可执行(禁止写入)

   上传/日志目录:仅仅写入(禁止执行).

 [步骤3]给上传目录,日志目录设置写入权限.

对上传目录作单独设置。上传目录还需要给IUSR,IIS_IUSRS组再添加“修改”、“写入”权限。 

 [步骤4]拒绝上传或日志文件有执行权限.

<目标>

 服务器上所有动态生成的文件的目录,都需要设置拒绝执行的权限。

 

<步骤1>

<步骤2>

 

https://jingyan.baidu.com/article/72ee561a429a44e16038df4d.html

 

  >>>线上站点禁止长时间开启调试模式.

    关闭调试模式,可以杜绝暴露数据库详细信息。

>>转移cmd.exe webshell基于的.exe程序.

WebShell入侵上传的文件,主要是通过调用系统上的一些命令,如cmd.exe、net.exe、 netstat.exe、tftp.exe、telnet.exe等程序来实现访问权限的提升,所以我们可以采用将这些命令移动位置、重命令的方法

>>修改注册表,禁止webshell权限.

>>>反注册(解除注册)webshell等组件.

1.)wscript.shell对象(恢复时,命令去掉/u)

cmd下或直接运行:regsvr32 /u %windir%\system32\WSHom.Ocx

                     regsvr32 /u  %windir%\system32\wshext.dll

2.)卸载FSO对象,在cmd下或直接运行恢复时去掉/u):

regsvr32.exe /u %windir%\system32\scrrun.dll

regsvr32 /u  %windir%\system32\scrrun.dll

   []有些网站需要就不能删除.

3.)卸载stream对象,在cmd下或直接运行(恢复时,去掉/u):

regsvr32 /s /u “C:\ProgramFiles\CommonFiles\System\ado\msado15.dll”

4.)禁止guest账户执行shell组件:

<方案1>regsvr32 /u shell32.dll

<方案2>Shell.Application可以使用禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:cacls c:\windows\system32\shell32.dll /e /d guests

禁止guests用户执行cmd.exe的命令是:

cacls c:\windows\system32\cmd.exe /e /d guests

[]cacls是设置目录权限的命令,/e是编辑非覆盖,/d是拒绝。

参考资料