Web安全加固小结

1、IIS加固:

以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%


2、数据库加固:

(1)禁止Web server和数据库服务器是相同的用户

(2)修改默认库表的位置和默认名字:admin改为其他名字

(3)认证:口令复杂,权限:行、列,数据加密,日志审计

(4)防下载:数据库重定向主页

网站>dvbbs>data>dvbbs7.mdb>右键属性>重定向,勾上上面正确的URL:www.dvbbs.com


3、NTFS加固:

如示例依次选择:c:\bbsbak>右键属性>安全性

防Webshell的根本原则:能写不能执行,能执行不能写入(权限)。

(1)删除所有默认权限:安全>高级>父继承

(2)添加管理员Administrator而不是Administrators组,完全控制权限

(3)添加IIS_WPG组:完全控制

(4)添加IUSR_BENET:只读

(5)确定需要写入权限的目录:data(数据)、databackup(备份)、uploadfile、uploadface、给IUSR_BENET写入权限

(6)给以上目录:拒绝执行

IIS管理器>网站>dvbbs>目录>右键属性:权限:无


4、Nginx加固:

主要分为以下步骤:

(1)修改网站目录的属主跟Nginx以及php-fpm的用户不是同一个用户,且为非root用户;

(2)设置Nginx以及php-fpm的用户及组为Nobody;

(3)添加Nobody对网站目录的读权限和执行权限;

(4)添加Nobody对网站文件的读权限;

(5)禁止Nobody对/bin/sh的执行权限;

(6)对于有上传功能的网站目录或者需要写功能的目录,赋予Nobody写权限并保证没有执行权限;

(7)通过配置文件nginx.conf设置对于上传目录无php的执行权限,禁止访问某些文件夹或某些文件类型。


5、Apache加固:

主要有以下几个注意点:

(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 地址。


6、小结:

无论是哪种Web服务器,Web安全加固的原理都是一样的,即需要将Web目录的属主更改为一个非root或Administrator且不能和数据库时同一个的用户,用户名设置为非常见的名字且密码要相当复杂以防暴破,接着应遵循一个原则,即尽量不提供写功能,即使能写也不能执行、能执行也不能写入权限,另外还需要对错误显示的信息进行统一的处理、以免暴露服务端信息,同时还需要平时备份数据、审计Web日志、及时升级相关组件、打补丁以及做做安全压力测试等。

你可能感兴趣的:(Web安全)