以IIS上搭建的dvbbs站点为了,在管理工具>IIS管理器>网站>dvbbs>右键属性:
(1)修改默认日志路径
c:\windows\system32\logfiles
d:\dvbbslog:system读写,Administrator读
(2)网站>属性>高级:协议版本、cookie
(3)删除所有不必要的映射:扩展名asp、html
右键属性>主目录>配置>映射
(4)向客户端发送一下信息:
出错:110监控网站,主目录>配置>调试
(5)IIS权限:不给写入和目录浏览的权限
(6)限制后台登陆IP:
登录后台地址,admin>右键属性>属性>目录安全性>允许:IP网段
(7)删除所有自定义错误:右键属性>自定义错误(帮助文件都在c:\windows\help\iishelp)
(8)日志分析:splunk、biglog、关键字404,and%
(1)禁止Web server和数据库服务器是相同的用户
(2)修改默认库表的位置和默认名字:admin改为其他名字
(3)认证:口令复杂,权限:行、列,数据加密,日志审计
(4)防下载:数据库重定向主页
网站>dvbbs>data>dvbbs7.mdb>右键属性>重定向,勾上上面正确的URL:www.dvbbs.com
如示例依次选择:c:\bbsbak>右键属性>安全性
防Webshell的根本原则:能写不能执行,能执行不能写入(权限)。
(1)删除所有默认权限:安全>高级>父继承
(2)添加管理员Administrator而不是Administrators组,完全控制权限
(3)添加IIS_WPG组:完全控制
(4)添加IUSR_BENET:只读
(5)确定需要写入权限的目录:data(数据)、databackup(备份)、uploadfile、uploadface、给IUSR_BENET写入权限
(6)给以上目录:拒绝执行
IIS管理器>网站>dvbbs>目录>右键属性:权限:无
主要分为以下步骤:
(1)修改网站目录的属主跟Nginx以及php-fpm的用户不是同一个用户,且为非root用户;
(2)设置Nginx以及php-fpm的用户及组为Nobody;
(3)添加Nobody对网站目录的读权限和执行权限;
(4)添加Nobody对网站文件的读权限;
(5)禁止Nobody对/bin/sh的执行权限;
(6)对于有上传功能的网站目录或者需要写功能的目录,赋予Nobody写权限并保证没有执行权限;
(7)通过配置文件nginx.conf设置对于上传目录无php的执行权限,禁止访问某些文件夹或某些文件类型。
主要有以下几个注意点:
(1)为Apache创建专门的非root的用户和组,检查 httpd.conf 配置文件,检查是否使用非专用账户(如 root)运行 apache;
(2)严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容;
(3)配置日志功能,对运行错误、用户访问等进行记录,同时需要对日志文件进行备份保存;
(4)禁止Apache访问Web目录之外的任何文件;
(5)禁止Apache列表显示文件目录结构;
(6)禁止返回错误详细信息,设置错误页面重定向;
(7)合理地通过设置session时间来一定程度上缓解DoS攻击;
(8)隐藏Apache的版本号及其它敏感信息;
(9)关闭TRACE,防止TRACE方法被攻击者恶意利用;
(10)如果服务器上不需要运行 CGI 程序,建议禁用 CGI;
(11)删除缺省安装的无用文件;
(12)禁用PUT、DELETE等危险的非法HTTP 方法;
(13)服务器有多个 IP 地址时,只监听提供服务的 IP 地址。
无论是哪种Web服务器,Web安全加固的原理都是一样的,即需要将Web目录的属主更改为一个非root或Administrator且不能和数据库时同一个的用户,用户名设置为非常见的名字且密码要相当复杂以防暴破,接着应遵循一个原则,即尽量不提供写功能,即使能写也不能执行、能执行也不能写入权限,另外还需要对错误显示的信息进行统一的处理、以免暴露服务端信息,同时还需要平时备份数据、审计Web日志、及时升级相关组件、打补丁以及做做安全压力测试等。